Почему попытка использовать pygame.mixer.Channel.play (Sound) вызывает системную ошибку? - PullRequest
0 голосов
/ 19 мая 2018

У меня были проблемы с воспроизведением объектов Sound в моей программе;Я не получил никаких сообщений об ошибках, сам аудио-файл не поврежден, но каждый раз, когда я пытался запустить мою программу, из моих динамиков не выходил звук.Первое, что я попробовал, было pygame.mixer.Sound.play() для воспроизведения звука, и когда я не услышал звук, я дважды проверил, чтобы убедиться, что динамики на моем компьютере не отключены, я увеличил громкость, иЯ попробовал еще раз.Я до сих пор не слышал, чтобы он воспроизводился, поэтому я попытался создать объект Channel и указать программе воспроизводить звук на этом канале, используя следующий пример кода:

from time import sleep
from pygame import mixer
###
mixer.init() #initialize mixer module
#########
soundObj = mixer.Sound("mySound.wav") #create Sound object from .wav file
soundChn = mixer.Channel(0) #create Channel object to play sounds from
###
soundChn.play(soundObj, 0) #play soundObj on the channel once - ERROR IS HERE
sleep(soundObj.get_length()) #pause program for the duration of soundObj

Когда я запустил свою программу, чтобыпроверить, работает ли этот код или нет, появилась трассировка до soundChn.play(soundObj, 0) вместе с сообщением об ошибке SystemError: Bad call flags in PyCFunction_Call. METH_OLDARGS is no longer supported!

Может кто-нибудь объяснить мне - на простейшем английском можно, пожалуйста, потому что я очень запутался- что именно означает это сообщение об ошибке и что мне нужно сделать, чтобы исправить мою проблему?Спасибо!

1 Ответ

0 голосов
/ 19 мая 2018

Похоже, что версия Pygame, установленная на вашем компьютере, является старой версией с устаревшими методами.

Поскольку она работает на моем компьютере с Python 2 и 3, я 'буду предлагать обновить pygame, запустив

pip3 install --user pygame # or pip2 if using python2

...