如何在Angular Inside Electron中以编程方式更改音频输出设备?

j13ufse2  于 2022-12-08  发布在  Electron
关注(0)|答案(1)|浏览(223)

我正在用Angular 11和Electron 12开发一个桌面应用程序。该应用程序必须能够发出声音,用户必须能够更改应用程序使用的音频输出设备。
因此,我尝试使用setSinkId WebRTC实验特性。Electron使用支持此特性的Chromium。因此,在Electron webPreferences中,我启用了experimentalFeatures
现在,问题是Typescript(v4.2.3)无法识别setSinkId特性。
我尝试在Angular 组件中执行此操作:

但如您所见,我收到以下错误消息:

我知道,可能Typescript还不支持这个功能。但是,我如何在Angular Inside Electron中更改音频输出设备呢?

ujv3wf0j

ujv3wf0j1#

特别是在为Electron开发应用程序时,TypeScript的默认类型在这里没有太大帮助。setSinkId()在Chromium中受支持,因此在Electron中也可用。
通过显式地添加setSinkId()的类型定义,可以对TypeScript有一点帮助。

const audio = <HTMLAudioElement & { setSinkId (deviceId: string): void }> new Audio();

audio.setSinkId('the-id-of-the-device');

相关问题