首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Pyglet无法加载.wav文件

Pyglet无法加载.wav文件
EN

Stack Overflow用户
提问于 2019-06-19 20:33:23
回答 1查看 349关注 0票数 0

环境:

Ubuntu 18.04

Python 3.6.6

pyglet 1.3.2

问题:

基于pyglet的documentation,我尝试运行以下代码:

代码语言:javascript
复制
import pyglet
pyglet.options["audio"] = ("openal", "pulse", "directsound", "silent")
explosion = pyglet.media.load('explosion.wav')

但是发生了以下异常:

1)文件是否由ffmpeg -i input.mp3 output.wav转换

代码语言:javascript
复制
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

代码语言:javascript
复制
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.

问题:

如何通过pyglet正确运行.wav文件?

EN

回答 1

Stack Overflow用户

发布于 2019-06-21 16:02:26

就像在示例中一样,这可能是openal或wav-files的问题。程序声音是否正确播放,例如:

代码语言:javascript
复制
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文件吗?我刚刚用https://github.com/pyreiz/pyreiz/blob/master/reiz/media/wav/ding.wav在Linux Mint19、Python3.7.1和Pyglet1.3.2上运行了一个测试,它运行得很好。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56667738

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档