Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/323.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# SoundPlayer:如何选择输出设备?_C#_.net_Audio - Fatal编程技术网

C# SoundPlayer:如何选择输出设备?

C# SoundPlayer:如何选择输出设备?,c#,.net,audio,C#,.net,Audio,如何为应用程序选择输出设备?我正在使用该类来播放wav文件。您应该放弃使用SoundPlayer来播放类似的内容(以及除了播放公共系统声音之外的任何其他内容)。我建议你去使用它,它允许你寻找什么,还有更多。我需要同样的功能。以下是我使用的解决方案(与Neverbirth建议的相同) 要列出所有设备,请执行以下操作: for (int n = -1; n < WaveOut.DeviceCount; n++) { var caps = WaveOut.GetCapabilities(

如何为应用程序选择输出设备?我正在使用该类来播放wav文件。

您应该放弃使用SoundPlayer来播放类似的内容(以及除了播放公共系统声音之外的任何其他内容)。我建议你去使用它,它允许你寻找什么,还有更多。

我需要同样的功能。以下是我使用的解决方案(与Neverbirth建议的相同)

要列出所有设备,请执行以下操作:

for (int n = -1; n < WaveOut.DeviceCount; n++)
{
    var caps = WaveOut.GetCapabilities(n);
    Console.WriteLine($"{n}: {caps.ProductName}");
}
别忘了清理资源:

wav.Dispose();
output.Dispose();

更多信息和

它始终在默认WAV输出设备上播放。如果你有不寻常的硬件,请访问superuser.com或制造商论坛。看起来不错。。。但是为什么要从-1开始迭代呢?您也不应该使用.Dispose()。使用“using”。-1:看看官方网站,就是这样做的。Dispose:您可能希望播放wav文件,继续执行代码,并且只在以后进行Dispose(例如:用户按下停止按钮或wave完成)。若你们把代码放在一个using中,一旦你们离开using子句,wav将被停止。如果要阻止并等待wav完全播放,using子句是OK的。
wav.Dispose();
output.Dispose();