我想使用3d音效。通过Internet搜索之后,我发现了openAL
库,它是用C编写的。由于我在Python中的经验比在C中的要多,所以我安装了Python包装器:PyOpenAl
。
我尝试播放.wav
文件,但该文件有效。然后,我尝试更改其位置,如official documentation中所述,但我得到了ctypes.ArgumentError
。这是我的Python代码:
from openal import *
source = oalOpen("File.wav")
source.play()
alSource3f(source, AL_POSITION, 10.0, 0.0, 0.0)
这是我得到的错误:
ctypes.ArgumentError: argument 1: <class 'TypeError'>: wrong type
然后,我尝试将最后一行中的数据转换为它们的C类型(在导入ctypes
之后):
alSource3f(source, c_int(AL_POSITION), c_float(10.0), c_float(0.0), c_float(0.0))
但是,我遇到了同样的错误。我认为这不是解决方案,因为在Python's wrapper documentation中,它说包装器将转换为C类型。而且在导入之前出现了Ctypes
错误,所以这意味着包装器已经在使用Ctypes
来转换数据。
我已经通过Internet搜索,但是无法解决问题。告诉我您是否需要进一步的信息。预先感谢您的帮助。