如何在不同的扬声器上播放声音
本文关键字:扬声器 播放声音 | 更新日期: 2023-09-27 18:31:05
我的设备有 2 个外部扬声器。如何单独测试它们?
1 个仅在左侧播放声音的功能和一个仅在右侧播放声音的功能。
谷歌搜索没有成功。也许我用错了术语。
也许使用 WIN32 API 设置平衡?
如果您谈论的是立体声扬声器系统设置中的 2 个扬声器,那么您的解决方案很简单。
创建仅在左声道上播放的声音,然后播放。 然后,创建一个仅在正确通道上播放的声音,播放它。
您可以使用大胆来创建声音。
就.NET API而言,您可以使用 http://windowsmedianet.sourceforge.net/试试运气
您可能需要的是 http://msdn.microsoft.com/en-us/library/ms712636(VS.85).aspx,因为它们将它们整齐地包装在一起。
编辑:
顺便说一句,您可以使用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 标头。 你不会是第一个尝试它的人:)
我认为.NET本身没有足够的控制权来执行您的要求。您可能不得不使用第三方库。看看 NAudio 它绝对能够做你想做的事。