Pyglet не может загрузить WAV-файл - PullRequest
0 голосов
/ 19 июня 2019

Конверт:

Ubuntu 18.04
Python 3.6.6
pyglet 1.3.2

Проблема:

На основе документации pyglet Я пытаюсь запустить следующий код:

import pyglet
pyglet.options["audio"] = ("openal", "pulse", "directsound", "silent")
explosion = pyglet.media.load('explosion.wav')

Но произошли следующие исключения:
1) если файл был преобразован в ffmpeg -i input.mp3 output.wav

Traceback (most recent call last):
  File "<path_to_dir>/test_sound.py", line 3, in <module>
    explosion = pyglet.media.load('zxc.wav', streaming=False)
  File "<path_to_env>lib/python3.6/site-packages/pyglet/media/sources/loader.py", line 63, in load
    source = get_source_loader().load(filename, file)
  File "<path_to_env>lib/python3.6/site-packages/pyglet/media/sources/loader.py", line 84, in load
    return WaveSource(filename, file)
  File "<path_to_env>lib/python3.6/site-packages/pyglet/media/sources/riff.py", line 197, in __init__
    raise WAVEFormatException('Not a WAVE file')
pyglet.media.sources.riff.WAVEFormatException: Not a WAVE file

2) или это длянесколько .wav из интернета

Traceback (most recent call last):
  File "<path_to_dir>//test_sound.py", line 3, in <module>
    explosion = pyglet.media.load('explosion.wav', streaming=False)
  File "<path_to_env>lib/python3.6/site-packages/pyglet/media/sources/loader.py", line 63, in load
    source = get_source_loader().load(filename, file)
  File "<path_to_env>lib/python3.6/site-packages/pyglet/media/sources/loader.py", line 84, in load
    return WaveSource(filename, file)
  File "<path_to_env>lib/python3.6/site-packages/pyglet/media/sources/riff.py", line 192, in __init__
    format = wave_form.get_format_chunk()
  File "<path_to_env>lib/python3.6/site-packages/pyglet/media/sources/riff.py", line 172, in get_format_chunk
    for chunk in self.get_chunks():
  File "<path_to_env>lib/python3.6/site-packages/pyglet/media/sources/riff.py", line 108, in get_chunks
    chunk = cls(self.file, name, length, offset)
  File "<path_to_env>lib/python3.6/site-packages/pyglet/media/sources/riff.py", line 153, in __init__
    raise RIFFFormatException('Size of format chunk is incorrect.')
pyglet.media.sources.riff.RIFFFormatException: Size of format chunk is incorrect.

Вопрос:

Как правильно запустить .wav файлы через pyglet?

1 Ответ

0 голосов
/ 21 июня 2019

Как и в примере, это, вероятно, проблема с openal или wav-файлами.Правильно ли воспроизводятся процедурные звуки, например:

from pyglet.media.sources.procedural import Sine
sine = Sine(duration=1, frequency=500,
                    sample_size=16, sample_rate=44100)
pyglet.media.StaticSource(sine).play()

и можете ли вы поделиться оскорбительным wav-файлом?Я только что провел тест на Linux Mint 19, Python 3.7.1 и pyglet 1.3.2 с https://github.com/pyreiz/pyreiz/blob/master/reiz/media/wav/ding.wav, и он работает нормально.

...