-1

我正在开发一个基于 WPF 的应用程序,它也使用 DirectShow。我需要实现一个功能,我必须在其中一个选定设备上传输视频音频。为了澄清我的问题,假设我们有许多音频设备连接到系统,因此必须允许用户在他/她选择的设备上播放视频文件中的音频。另外,我如何枚举连接到系统的音频设备?我不知道如何将音频传输到不同的设备?我是 DirectShow 开发的新手,请帮我解决这个问题。欢迎任何想法建议。

谢谢。

4

1 回答 1

1

来自MSDN

要枚举用户系统上可用的音频设备,请使用带有音频渲染器类别 (CLSID_AudioRendererCategory) 的 ICreateDevEnum 接口。对于每个音频设备,音频渲染器类别包含两个过滤器实例。其中一个对应于 DirectSound Renderer,另一个对应于 Audio Renderer (WaveOut) 过滤器。DirectSound 实例具有友好名称“DirectSound: DeviceName”,其中 DeviceName 是设备的名称。WaveOut 实例具有友好名称 DeviceName。

音频渲染器类别包含两个额外的过滤器实例,名为“默认 DirectSound 设备”和“默认 WaveOut 设备”。这些对应于用户通过控制面板选择的默认声音设备。它们实际上是到上一段中描述的一对的映射。例如,如果系统有两个音频设备,设备 A 和设备 B,则音频渲染器类别将包含以下内容:

在 .NET 中,您通过 [supposedly] DirectShow.NET 库对此 API 进行了包装。

于 2012-06-04T07:44:04.740 回答