Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在不同的扬声器上播放声音?_C#_.net - Fatal编程技术网

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

C# 如何在不同的扬声器上播放声音?,c#,.net,C#,.net,我的设备有2个外部扬声器。如何分别测试它们 1个只在左侧播放声音的功能和一个只在右侧播放声音的功能 谷歌搜索没有成功。也许我用错了词 也许可以使用WIN32 API设置平衡?我认为.NET本身没有足够的控制能力来满足您的要求。您可能需要使用第三方库。检查一下,它肯定能做你想做的事。如果你说的是立体声扬声器系统设置中的两个扬声器,那么你的解决方案很简单 创建只在左声道播放的声音,然后播放。然后,创建一个只在正确频道播放的声音,播放它 您可以使用Audacity来创建声音 就.NETAPI而言,您可

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

1个只在左侧播放声音的功能和一个只在右侧播放声音的功能

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


也许可以使用WIN32 API设置平衡?

我认为.NET本身没有足够的控制能力来满足您的要求。您可能需要使用第三方库。检查一下,它肯定能做你想做的事。

如果你说的是立体声扬声器系统设置中的两个扬声器,那么你的解决方案很简单

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

您可以使用Audacity来创建声音

就.NETAPI而言,您可以用

你可能需要的是,因为他们把它们包装得很整齐

编辑:

顺便说一句,您可以使用waveOutOpen打开同一设备两次,一次播放左侧声音文件,并在两个单独的waveOutOpen设备句柄上独立播放右侧声音文件,这两个句柄都指向同一物理设备。根据声音的类型,根据您选择的扬声器,声音将如预期一样输出

此外,如果您希望以编程方式创建声音,只有左声道意味着您的音频文件中的每隔一个PCM样本应为0

我不建议使用balance,因为混音器API很难理解,而且您会意外地为两个播放的示例设置API

更多信息:

您可以使用播放WAV文件。如果您没有WAV文件,但希望播放
MemoryStream
中的内容,请找到在音频样本数据前面插入某种形式的WAV头的方法。你不会是第一个尝试的人:)