Python 不同的Wav文件不适用于OpenAL/PyAl

Python 不同的Wav文件不适用于OpenAL/PyAl,python,wav,openal,Python,Wav,Openal,我在上找到了以下代码,它使用PyAL创建声音,这些声音似乎通过使用OpenAL库向您移动 我下载了所有文件并进入示例文件夹运行以下audioplayer.py。它与hey.wav文件配合得非常好 现在我想用一种不同的声音运行完全相同的东西。所以我得到了以下信息并运行了audioplayer.py。但声音似乎并不像hey.wav文件那样先向我移动,然后再离开。它只是不断地发出声音 我很困惑为什么它适用于一个wav文件而不适用于另一个 """OpenAL playbac

我在上找到了以下代码,它使用PyAL创建声音,这些声音似乎通过使用OpenAL库向您移动

我下载了所有文件并进入示例文件夹运行以下audioplayer.py。它与hey.wav文件配合得非常好

现在我想用一种不同的声音运行完全相同的东西。所以我得到了以下信息并运行了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, 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())

“OpenAL播放示例”
导入操作系统
导入系统
导入时间
从openal.audio导入SoundSink,SoundSource
从openal.loaders导入load_wav_文件
def run():
如果len(系统argv)<2:
打印(“用法:%s波形文件”%os.path.basename(sys.argv[0]))
打印(“使用示例wav文件…”)
dirname=os.path.dirname(_文件__)
fname=os.path.join(dirname,“hey.wav”)
其他:
fname=sys.argv[1]
sink=SoundSink()
sink.activate()
震源=声源(位置=[10,0,0])
source.looping=True
数据=加载wav文件(fname)
source.queue(数据)
sink.play(源代码)
当源位置[0]>-10时:
source.position=[source.position[0]-1,
来源.位置[1],
来源.位置[2]]
sink.update()
打印(“在%r”%source.position播放)
时间。睡眠(2)
打印(“完成”)
如果名称=“\uuuuu main\uuuuuuuu”:
sys.exit(run())

音频文件需要是单声道而不是立体声

这里有一些文档,但我仍然不知道会出现什么问题