xxj*_*jnn 22 python mp3 pyglet virtualenv
Pyglet使用AVBin来解码MP3.链接:http://avbin.github.com/AVbin/Download.html
使用install.sh安装,使用时会导致错误:
'AVbin is required to decode compressed media')
pyglet.media.riff.WAVEFormatException: AVbin is required to decode compressed media
Run Code Online (Sandbox Code Playgroud)
...所以它安装不正确?使用python virtualenv,怀疑这可能会导致问题...虽然我在virtualenv中运行了AVBin的install.sh,如下所示:
(SoundShenanigans)user@computer:~/Downloads/avbin-linux-x86-64-v8$ sudo bash install.sh
Run Code Online (Sandbox Code Playgroud)
UPDATE
我找到了安装avbin的地方......似乎安装在正确的位置= S.
~/pyvien/SoundShenanigans/lib/python2.7/site-packages/pyglet/media$ ls
avbin.py drivers __init__.pyc procedural.pyc riff.pyc
avbin.pyc __init__.py procedural.py riff.py
Run Code Online (Sandbox Code Playgroud)
更新2
该库是.so,而不是.dylib,为什么你想要.dylib神秘的代码?这是Linux而不是Mac(Mac有.dylib,Ubuntu有.so)
File "SoundShenanigans.py", line 4, in
from pyglet.media import avbin
File "/home/user/pyvien/SoundShenanigans/local/lib/python2.7/site-packages/pyglet/media/avbin.py", line 53, in
darwin='/usr/local/lib/libavbin.dylib')
File "/home/user/pyvien/SoundShenanigans/local/lib/python2.7/site-packages/pyglet/lib.py", line 122, in load_library
raise ImportError('Library "%s" not found.' % names[0])
ImportError: Library "avbin" not found.
Run Code Online (Sandbox Code Playgroud)
Seb*_*ian 10
如何安装它:
sudo apt-get install libavbin-dev libavbin0
Run Code Online (Sandbox Code Playgroud)
有关此软件包的更多信息:http://packages.ubuntu.com/source/avbin
编辑:对于较新的ubuntu版本,它看起来不再包含在内.因此,您必须从https://avbin.github.io/AVbin/Download.html下载并通过它安装
sudo sh ./install-avbin-linux-x86-64-v10
Run Code Online (Sandbox Code Playgroud)
小智 8
我在Windows上遇到了同样的问题,并且在Windows上没有安装python 2.7的安装程序.
如果将avbin dll放在文件夹中(或使用安装程序全局安装),则写入:
pyglet.lib.load_library('avbin')
pyglet.have_avbin=True
Run Code Online (Sandbox Code Playgroud)
导入pyglet之后,像这样:
import pyglet
pyglet.lib.load_library('avbin')
pyglet.have_avbin=True
Run Code Online (Sandbox Code Playgroud)
它会愉快地加载和使用avbin.