Python 使用 Pyglet 播放音乐时出错:UserWarning:异常:访问冲突读取 0x00000014
Python error when playing music with Pyglet: UserWarning: exception: access violation reading 0x00000014
我尝试使用方法、时间表和其他方法对该代码进行多次迭代。我设法克服了 "access violation writing error" 但无论我尝试什么,"access violation reading error" 仍然存在。这是代码:
import pyglet
window = pyglet.window.Window()
window.set_caption('First Pyglet Experiment')
player = pyglet.media.Player()
player.queue(pyglet.resource.media('test song.mp3'))
player.loop = True
@window.event
def on_close():
player.delete()
player.play()
pyglet.app.run()
完成我的歌曲的第一次互动后,它反复出现此错误:
D:\_Programming_\Python\venv\lib\site-packages\pyglet\media\codecs\wmf.py:771: UserWarning: exception: access violation reading 0x00000014
warnings.warn(e)
如有任何建议,我将不胜感激。提前致谢。
好的,所以当我使用 .wav 而不是 .mp3 时,一切都自行解决了。似乎 pyglet 支持 mp3 但它有某种内部问题。它也可能只是一个错误导出的文件。
不过你仍然需要这部分:
@window.event
def on_close():
player.delete()
如果 window 突然关闭,这确保了文件的正确关闭。 "access violation writing" 没有它,错误仍然存在。
出于某种原因,此简单版本中不存在此错误:
import pyglet
window = pyglet.window.Window()
window.set_caption('First Pyglet Experiment')
music = pyglet.resource.media('background.wav')
music.play()
pyglet.app.run()
但在我更复杂的应用程序中导致了问题。可能需要安全关闭 Player()。
我是 Pyglet 的代码贡献者,我编写了导致问题的编解码器。这是一个错误,应该在下一个 pyglet 版本 (1.5.6) 中修复。
我最近添加了 Windows 媒体基金会支持。它允许像 mp3 这样的简单格式被解码,而无需安装像 ffmpeg 这样的第三方库(否则只支持 wav)。在遇到此问题的另一个人的帮助下,我能够重现此错误。我将它缩小到只影响 32 位 python 用户,但这是我的一个错误。
它适用于 wave 的原因是您实际上选择了不同的解码器。有问题的解码器应该在下一个版本中修复。抱歉给您带来麻烦。
我尝试使用方法、时间表和其他方法对该代码进行多次迭代。我设法克服了 "access violation writing error" 但无论我尝试什么,"access violation reading error" 仍然存在。这是代码:
import pyglet
window = pyglet.window.Window()
window.set_caption('First Pyglet Experiment')
player = pyglet.media.Player()
player.queue(pyglet.resource.media('test song.mp3'))
player.loop = True
@window.event
def on_close():
player.delete()
player.play()
pyglet.app.run()
完成我的歌曲的第一次互动后,它反复出现此错误:
D:\_Programming_\Python\venv\lib\site-packages\pyglet\media\codecs\wmf.py:771: UserWarning: exception: access violation reading 0x00000014
warnings.warn(e)
如有任何建议,我将不胜感激。提前致谢。
好的,所以当我使用 .wav 而不是 .mp3 时,一切都自行解决了。似乎 pyglet 支持 mp3 但它有某种内部问题。它也可能只是一个错误导出的文件。
不过你仍然需要这部分:
@window.event
def on_close():
player.delete()
如果 window 突然关闭,这确保了文件的正确关闭。 "access violation writing" 没有它,错误仍然存在。
出于某种原因,此简单版本中不存在此错误:
import pyglet
window = pyglet.window.Window()
window.set_caption('First Pyglet Experiment')
music = pyglet.resource.media('background.wav')
music.play()
pyglet.app.run()
但在我更复杂的应用程序中导致了问题。可能需要安全关闭 Player()。
我是 Pyglet 的代码贡献者,我编写了导致问题的编解码器。这是一个错误,应该在下一个 pyglet 版本 (1.5.6) 中修复。
我最近添加了 Windows 媒体基金会支持。它允许像 mp3 这样的简单格式被解码,而无需安装像 ffmpeg 这样的第三方库(否则只支持 wav)。在遇到此问题的另一个人的帮助下,我能够重现此错误。我将它缩小到只影响 32 位 python 用户,但这是我的一个错误。
它适用于 wave 的原因是您实际上选择了不同的解码器。有问题的解码器应该在下一个版本中修复。抱歉给您带来麻烦。