【发布时间】:2021-02-24 21:48:38
【问题描述】:
我正在使用 WebRTC(本机 Mac 和本机 Windows -- 不是 JS)并尝试更改默认播放和录制设备,但遇到了很多麻烦。这开始让我发疯了,因为它应该非常简单。
问题:在 Mac 和 Windows 上进行通话时,本机更改音频播放和录音设备的推荐方法是什么?
这是我尝试过的:
方法一
Mac
我注意到音频设备模块会监听 Core Audio API 通知并正确调整播放和录音设备。这可行,但我不确定这是否是更换设备的推荐方法。
窗口
我找不到设置默认音频播放/录音设备的系统范围的方法。我可以告诉MIGHT工作的唯一方法是获取对音频设备模块的引用并手动调用SetPlayoutDevice / SetRecordingDevice...这导致下面的方法2:
方法二
Mac
如果可能,我宁愿使用SetPlayoutDevice (link) / SetRecordingDevice (link) 来更改音频输入/输出(这样 Mac 和 Windows 的工作方式相同)。
测试真实音频 IO 设备的unit tests 表明我们应该能够在调用SetPlayoutDevice 后调用StartPlayout 和StopPlayout——但这会使我的应用程序冻结。我在没有调用StopPlayout 和StartPlayout 的情况下尝试了它,但它似乎没有做任何事情。这是有道理的,因为看起来只修改了内部状态,但没有修改任何内容。
问:如何更改 Mac 上的默认音频播放设备和录音设备?
窗口
我还没有机会在 Windows 上试用此功能,但 Mac 无法正常工作让我觉得这里缺少一些东西。
【问题讨论】: