【发布时间】:2021-07-13 01:32:24
【问题描述】:
我正在尝试通过 C# 中的 MediaCapture 录制两个音频输入(网络摄像头 + 麦克风)和一个视频输入(网络摄像头)。只有 1 个音频和 1 个视频输入就像一个魅力,但该类本身不允许指定两个音频输入设备 ID。
一个例子:
var captureDeviceSettings = new MediaCaptureInitializationSettings
{
VideoDeviceId = videoDeviceId, #Webcam video input
AudioDeviceId = audioDeviceId, #Webcam audio input
StreamingCaptureMode = StreamingCaptureMode.AudioAndVideo,
}
我考虑过使用音频图和子混合节点,但是我需要为媒体捕获指定设备 ID,子混合节点没有提供。此外,使用音频图的输出设备似乎不是解决方案,我不想将麦克风播放到默认输出设备。试过了,但听起来很可怕。我想创建一个虚拟音频设备,但我不知道如何。
对此有何建议?
【问题讨论】:
-
同时与两个音频设备通话并不容易,但有人说 Audacity 可以做到 (howtogeek.com/61037/…)。但请记住,这些设备在不同的时钟上运行,因此即使您可以有两个不同的音频输入,您也必须做很多工作来同步信号。我想这就是 MediaCapture 对象不允许这样做的原因。如果可能的话,您最好使用具有多个输入的单个音频硬件设备。
-
感谢您的反馈!这两个输入不需要 100% 同步。一个输入来自游戏(网络摄像头),另一个只是来自游戏玩家的典型麦克风。更进一步,相同类型的应用程序在 Swift 的 MacOS 上没有问题。
-
我们正在就您的问题咨询其他工程师,可能会有一些延迟。
标签: c# audio video uwp mediacapture