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