我的设备有2个外部扬声器。我怎么能分开测试呢?
1个仅在左侧播放声音的功能,仅在右侧播放声音的功能。
用Google搜索没有成功。也许我使用的是错误的条款。
也许使用WIN32 API设置余额?
答案 0 :(得分:4)
如果您正在谈论立体声扬声器系统设置中的2个扬声器,那么您的解决方案很简单。
创建仅在左声道播放的声音,然后播放。然后,创建一个只在右声道播放的声音,播放它。
您可以使用Audacity创建声音。
就.NET API而言,你可以试试http://windowsmedianet.sourceforge.net/
你可能需要的是http://msdn.microsoft.com/en-us/library/ms712636(VS.85).aspx,因为它们整齐地包裹着它们。
编辑:
BTW,你可以使用waveOutOpen打开同一个设备两次,并且一旦播放LEFT声音文件,并在两个独立的waveOutOpen设备处理器上独立播放RIGHT声音文件,它们都指向同一个物理设备。根据声音的类型,声音将根据您的选择在您选择的扬声器上出现。此外,如果您想以编程方式创建声音,只有LEFT频道意味着音频文件中的每个其他PCM样本都应为0。
我不建议使用余额,因为混音器API很难理解,并且你会意外地为两个播放的样本设置API。
更多信息:
您可以使用http://msdn.microsoft.com/en-us/library/system.media.soundplayer(VS.80).aspx播放WAV文件。如果您没有WAV文件,但想要播放来自MemoryStream
的内容,请找到一种在音频样本数据前面插入某种形式的WAV标题的方法。你不会是第一个尝试它的人:)
答案 1 :(得分:1)
我认为.NET本身并没有足够的控制力去做你要求的事情。您可能不得不使用第三方库。查看NAudio它一定能够做你想做的事。