Итак, все решилось само собой, когда я использовал .wav вместо .mp3. Кажется, что Pyglet поддерживает mp3, но имеет какую-то внутреннюю проблему с ним. Это также может быть просто неправильно экспортированный файл.
Вам по-прежнему нужна эта часть:
@window.event
def on_close():
player.delete()
это обеспечило правильное закрытие файла, если окно было внезапно закрыто. Ошибка «нарушение прав доступа» все еще присутствует без нее.
По какой-то причине эта ошибка отсутствует в этой простой версии:
import pyglet
window = pyglet.window.Window()
window.set_caption('First Pyglet Experiment')
music = pyglet.resource.media('background.wav')
music.play()
pyglet.app.run()
Но вызывает проблемы в моем более сложном приложении. Возможно, Player () необходимо безопасно отключить.