两个不同的音频文件在左声道和右声道播放与pygame

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了两个不同的音频文件在左声道和右声道播放与pygame相关的知识,希望对你有一定的参考价值。

我有一个代码,我在两个不同的通道中指定两个不同的音频文件并同时播放,但我需要一种方法使每个文件只在一个通道上播放而另一个在另一个通道上播放。例如,在两个单独的通道(右和左)上同时播放两个音频文件。使得音频在右扬声器上播放而其他音频在左扬声器上播放。

我尝试使用下面的代码,但音频没有映射到任何特定频道,但正在两个扬声器上播放。

pygame.mixer.init(frequency=44000, size=-16,channels=2, buffer=4096)
#pygame.mixer.set_num_channels(2)
m = pygame.mixer.Sound('tone.wav')
n = pygame.mixer.Sound('sound.wav')
pygame.mixer.Channel(1).play(m,-1)
pygame.mixer.Channel(2).play(n,-1)

任何帮助深表感谢。

答案

文档说你必须将左右扬声器的音量传递给Channel.set_volume

# Create Sound and Channel instances.
sound0 = pg.mixer.Sound('my_sound.wav')
channel0 = pg.mixer.Channel(0)

# Play the sound (that will reset the volume to the default).
channel0.play(sound0)
# Now change the volume of the specific speakers.
# The first argument is the volume of the left speaker and
# the second argument is the volume of the right speaker.
channel0.set_volume(1.0, 0.0)

此外,如果您不想自己管理频道,可以使用Sound.play()返回的频道。

channel = sound0.play()
channel.set_volume(1.0, 0.0)

以上是关于两个不同的音频文件在左声道和右声道播放与pygame的主要内容,如果未能解决你的问题,请参考以下文章

AudioUnit - 在 Swift 中控制左声道和右声道输出

如何使用Naudio分别控制耳机左右声道的音量

AVAudioEngine 播放多声道音频

Android左右声道的控制

使用 C 创建立体声 WAV 文件

AVPlayer 播放单声道音频立体声->单声道