Невозможно воспроизвести файл ogg в Python - PullRequest
1 голос
/ 07 января 2020

Итак, я попытался преобразовать свой MIDI-файл в OGG, и я до сих пор не могу заставить его работать ... надеюсь, некоторые из вас могут мне помочь? Это мой код:

showTextScreen('Tetromino')
while True: # game loop
    if random.randint(0, 1) == 0:
        pygame.mixer.music.load('tetrisb.mid')
    else:
        pygame.mixer.music.load('tetrisc.mid')
    pygame.mixer.music.play(-1, 0,0)
    runGame()
    pygame.mixer.music.stop()
    showTextScreen('Game Over')

Это выдает ошибку, что он не может открыть tetrisb.mid Я попытался переименовать его, и он все еще говорит то же самое ... Если я могу это исправить, я могу исправить другой файл, вероятно,

Вот ошибка:

Traceback (most recent call last):
  File "H:\Programmering\Python\TETRIS!.py", line 487, in <module>
    main()
  File "H:\Programmering\Python\TETRIS!.py", line 166, in main
    pygame.mixer.music.load('tetrisc.mid')
pygame.error: Couldn't open 'tetrisc.mid'

Я использую windows и python 3.8, и я не против, если я использую midi или ogg ... Я изменил свой файл midi в ogg, надеясь, что это решит проблему, но это не так. Мой файл ogg atm

1 Ответ

0 голосов
/ 08 января 2020

Похоже, вам нужно указать правильный путь к вашему MIDI-файлу. Этот вопрос о том, как проверить существование файла, также может быть полезен.

Сообщения об ошибках от pygame.mixer.music.load отличаются, если формат файла не поддерживается или не существует:

>>> pygame.mixer.music.load("nonexistent.file")
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
pygame.error: Couldn't open 'nonexistent.file'
>>> pygame.mixer.music.load(r"c:\tmp\empty.file")
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
pygame.error: Couldn't read from RWops
>>> pygame.mixer.music.load(r"c:\tmp\robots.txt")
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
pygame.error: Module format not recognized
>>> pygame.mixer.music.load(r"C:\Windows\media\flourish.mid")
>>> pygame.mixer.music.play(-1, 0)
>>> pygame.mixer.music.stop()

Обратите внимание, что при указании пути к файлу \ является управляющим символом, который обрабатывается по-разному. Таким образом, вы можете использовать \\ вместо этого или поставить r в начале строки перед кавычкой, как я показал выше.

...