使用openAL的Python包装器的Ctypes错误

时间:2019-09-30 17:48:17

标签: python c wrapper ctypes openal

我想使用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搜索,但是无法解决问题。告诉我您是否需要进一步的信息。预先感谢您的帮助。

0 个答案:

没有答案