Pyglet使用绝对路径加载资源

2024-05-13 22:44:25 发布

您现在位置:Python中文网/ 问答频道 /正文

我对python很陌生,我对此做了一些研究,但我发现的答案似乎不起作用。我试图用pyglet加载mp3文件,但它给出了一个错误:

Traceback (most recent call last):
  File "C:\Apps\Python\lib\site-packages\pyglet\resource.py", line 624, in media
    location = self._index[name]
KeyError: 'C:/Users/Ruurd/Google Drive/Script/Python/music2.mp3'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "C:/Users/Ruurd/Desktop/playmus.py", line 3, in <module>
    music=pyglet.resource.media(path)
  File "C:\Apps\Python\lib\site-packages\pyglet\resource.py", line 634, in media
    raise ResourceNotFoundException(name)
pyglet.resource.ResourceNotFoundException: Resource "C:/Users/Ruurd/Google Drive/Script/Python/music2.mp3" was not found on the path.  Ensure that the filename has the correct captialisation.

当我使用“music2.mp3”作为路径时,效果很好。这是不工作的代码

^{pr2}$

Tags: theinpymostlinemediamp3users
2条回答

尝试使用:

music=pyglet.media.load(path)

而不是:

^{pr2}$

为我工作。=)

import pyglet
from os.path import abspath, isfile

pyglet.options['audio'] = ('directsound', 'alsa', 'openal', 'silent')

path = abspath('C:/Users/Ruurd/Google Drive/Script/Python/music2.mp3')
if isfile(path):
    music = pyglet.resource.media(path)
    music.play()

既然你没有你的mp3来源,我无法测试这个。
但通常使用abspath来确保语法正确,并使用isfile来确定文件是否在该路径上。

为了更好地控制所使用的驱动程序,可以使用pyglet.options['audio']来引导pyglet使用,例如directsound。在

相关问题 更多 >