我正在开发一个基于WPF的应用程序,它也使用DirectShow。我需要实现一种功能,我必须在所选设备之一上传输视频音频。为了澄清我的问题,假设我们有许多连接到系统的音频设备,因此必须允许用户在他/她选择的设备上播放视频文件中的音频。另外,如何通过连接到系统的音频设备进行枚举?我不知道如何将音频传输到不同的设备?我是DirectShow开发的新手,请帮我解决这个问题。欢迎任何想法建议。
感谢。
答案 0 :(得分:1)
来自MSDN:
要枚举用户系统上可用的音频设备,请使用 ICreateDevEnum与音频渲染器类别的接口 (CLSID_AudioRendererCategory)。对于每个音频设备,音频 渲染器类别包含两个过滤器实例。其中之一 对应于DirectSound渲染器,另一个对应于 音频渲染器(WaveOut)过滤器。 DirectSound实例有 友好名称“DirectSound:DeviceName”,其中DeviceName是名称 该设备。 WaveOut实例具有友好名称DeviceName。
音频渲染器类别包含两个额外的过滤器实例, 名为“默认DirectSound设备”和“默认WaveOut设备”。这些 对应于用户选择的默认声音设备 控制面板。它们实际上是对其中一对的映射 在前一段中描述。例如,如果系统有 两个音频设备,设备A和设备B,音频渲染器类别 将包含以下内容:
在.NET中,你通过[推测] DirectShow.NET库包装了这个API。