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