angular - 如何以编程方式更改电子内部 Angular 中的音频输出设备?
问题描述
我正在使用 Angular 11 和 Electron 12 开发桌面应用程序。该应用程序必须能够发出声音,并且用户必须能够更改应用程序使用的音频输出设备。
因此,我尝试使用setSinkId
WebRTC 实验功能。Electron 使用支持此功能的 Chromium。所以,在 Electron 中webPreferences
我启用了experimentalFeatures
.
现在,问题在于 Typescript (v4.2.3) 无法识别该setSinkId
功能。
我尝试在 Angular 组件中执行此操作:
但如您所见,我收到以下错误消息:
我知道,可能 Typescript 还不支持这个功能。但是,如何在 Electron 中更改 Angular 中的音频输出设备?
解决方案
尤其是在为 Electron TypeScript 的默认类型开发应用程序时,这里并不是很有帮助。setSinkId()
在 Chromium 中受支持,因此在 Electron 中也可用。
您可以通过显式添加setSinkId()
.
const audio = <HTMLAudioElement & { setSinkId (deviceId: string): void }> new Audio();
audio.setSinkId('the-id-of-the-device');
推荐阅读
- android - android:翻转布局而不翻转其中的内容
- c++ - 访问向量向量的元素时出现分段错误
- python - Django 如何验证表单?
- php - 将 PHP 变量作为道具传递给 Vue 选项卡组件
- java - maven 战争插件不会忘记旧文件和依赖项,并创建一个包含已删除文件和依赖项的战争
- regex - 复制与某个范围内的数字模式匹配的文件
- cuda - cuda nvcc 使 __device__ 有条件
- redis - Spring数据redis在反序列化List类型时返回null
- android - Google Play Protect 突然不允许安装 apk
- cumulocity - 将自定义 Angular 6 应用程序部署到 Cumulocity 租户