不同的Wav文件不能与OpenAL / PyAl一起使用

问题描述

我在github上发现了以下代码,该代码使用PyAL来创建声音,这些声音似乎通过使用OpenAL库向您靠近。

我下载了所有文件,并进入示例文件夹以运行以下audioplayer.py。使用hey.wav文件可以很好地工作。

现在,我想运行完全相同的东西,但声音不同。因此,我得到了以下wav file并运行了audioplayer.py。但是声音似乎并没有像hey.wav文件那样向我移动然后离开。一遍又一遍地发出恒定的声音。

我很困惑为什么它只能用于一个wav文件而不适用于另一个文件

"""OpenAL playback example."""
import os
import sys
import time
from openal.audio import SoundSink,SoundSource
from openal.loaders import load_wav_file

def run():
    if len (sys.argv) < 2:
        print ("Usage: %s wavefile" % os.path.basename(sys.argv[0]))
        print ("    Using an example wav file...")
        dirname = os.path.dirname(__file__)
        fname = os.path.join(dirname,"hey.wav")
    else:
        fname = sys.argv[1]


    sink = SoundSink()
    sink.activate()

    source = SoundSource(position=[10,0])
    source.looping = True

    data = load_wav_file(fname)
    source.queue(data)

    sink.play(source)
    while source.position[0] > - 10:
        source.position = [source.position[0] - 1,source.position[1],source.position[2]]
        sink.update()
        print("playing at %r" % source.position)
        time.sleep(2)
    print("done")


if __name__ == "__main__":
    sys.exit(run())

解决方法

音频文件必须是单声道而不是立体声