Ошибка Ctypes при использовании оболочки OpenAL Python - PullRequest
0 голосов
/ 30 сентября 2019

Я хочу работать с трехмерными звуковыми эффектами. После поиска в Интернете я нашел библиотеку openAL, написанную на C. Поскольку у меня больше опыта работы с Python, чем на C, я установил оболочку Python: PyOpenAl.

Я пытался играть.wav файл, и это сработало. Затем я попытался изменить его позицию, как указано в официальной документации 1007 *, но получил 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 говорится, что оболочка выполняет преобразование в типы C. И я получил ошибку Ctypes перед импортом, поэтому это должно означать, что оболочка уже использует Ctypes для преобразования данных.

Я искал в Интернете, но не смог решитьпроблема. Скажите, если вам нужна дополнительная информация по какому-то вопросу. Заранее спасибо за помощь.

...