将声音发送到不同的音频设备

时间:2011-03-24 16:20:28

标签: c# service expression media encoder

是否可以在未设置为默认播放设备的播放设备上播放声音? 我需要通过多个输出设备同时播放多个文件。

有谁知道.net的解决方案? (C#)

谢谢!

3 个答案:

答案 0 :(得分:1)

您必须转到较低级别的API。您可以尝试为Wasapi,ASIO,DirectSound或MediaFoundation找到C#包装器。也许XNA框架可以完成这项工作,这是通过directX管理框架

答案 1 :(得分:1)

好吧,我正在玩类似的问题。

  1. XNA无法将输出发送到特定设备。
  2. 我结束了http://naudio.codeplex.com/,这正是你所需要的。它是Wasapi,ASIO,DirectSound库的C#包装器。它还包括许多非常有用的转换,解码,可视化等类。对于简单的播放器,请查看NAudioDemo示例项目。
  3. 找出CreateWaveOut()方法。这是您应该选择播放设备的地方。 例如:

    MMDevice device = new MMDeviceEnumerator()
         .EnumerateAudioEndPoints(DataFlow.Render, DeviceState.All)
         .FirstOrDefault(d => d.ID == "yourplaybackdeviceid");
    IWavePlayer waveOut = new WasapiOut(device, AudioClientShareMode.Shared, false, latency);
    

    从源代码选项卡下载naudio库,而不是从Download-> Release下载,它不是很实际,而且它有点小错误。

答案 2 :(得分:0)

另一个好工具是bass.net http://www.un4seen.com/