gpt4 book ai didi

c# - 如何在不同的扬声器上播放声音?

转载 作者:太空狗 更新时间:2023-10-30 01:08:14 25 4
gpt4 key购买 nike

我的设备有 2 个外部扬声器。我如何分别测试它们?

1 个仅在左侧播放声音的函数和一个仅在右侧播放声音的函数。

用谷歌搜索没有成功。也许我用错了术语。

也许使用 WIN32 API 设置余额?

最佳答案

如果您谈论的是立体声扬声器系统设置中的 2 个扬声器,那么您的解决方案很简单。

创建只在左声道播放的声音,然后播放。然后,创建一个只在右声道播放的声音,播放它。

您可以使用 Audacity 创建声音。

对于 .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 header 。你不会是第一个尝试它的人:)

关于c# - 如何在不同的扬声器上播放声音?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10160009/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com