我的设备有两个外部扬声器。我该如何分别测试它们? 需要一个仅在左侧播放声音的功能和一个仅在右侧播放声音的功能。 我已经尝试了谷歌搜索,但没有成功。也许我使用的术语不正确。 也许可以使用WIN32 API设置平衡?
如果您谈论的是立体声扬声器系统设置中的两个扬声器,那么您的解决方案就很简单。创建一个仅在左声道播放的声音,然后播放它。 然后,创建一个仅在右声道播放的声音,播放它。您可以使用Audacity创建声音。就.NET API而言,您可以尝试使用http://windowsmedianet.sourceforge.net/。您可能需要的是http://msdn.microsoft.com/en-us/library/ms712636(VS.85).aspx,因为它们已经整齐地包装好了。编辑:顺便说一下,您可以使用waveOutOpen两次打开同一设备,然后在两个独立的waveOutOpen设备句柄上分别播放LEFT声音文件和RIGHT声音文件,这两个设备句柄都指向同一物理设备。 声音将按预期输出,取决于所选声音类型的扬声器。此外,如果要以编程方式创建声音,则仅具有LEFT通道意味着音频文件中每隔一个PCM样本应为0。我不建议使用balance,因为混音器API很难理解,而且您会意外设置播放样本的API。更多信息:您可以使用http://msdn.microsoft.com/en-us/library/system.media.soundplayer(VS.80).aspx来播放WAV文件。如果您没有WAV文件但想从MemoryStream播放某些内容,请找到一种方法在音频样本数据前面插入某种形式的WAV头。您不会是第一个尝试的人 :)