WxNeteaseMusic icon indicating copy to clipboard operation
WxNeteaseMusic copied to clipboard

python run.py之后是这样的。怎么解决的

Open yaojiwei5205 opened this issue 7 years ago • 18 comments

File "run.py", line 2, in from WxNeteaseMusic import WxNeteaseMusic File "/home/yaojiwei/下载/WxNeteaseMusic/WxNeteaseMusic.py", line 8, in import mp3play File "/usr/local/lib/python2.7/dist-packages/mp3play/init.py", line 6, in raise Exception("mp3play can't run on your operating system.") Exception: mp3play can't run on your operating system.

yaojiwei5205 avatar Mar 29 '17 10:03 yaojiwei5205

朋友你好,这个版本适用于(Windows/OSX/Linux),如果你用的是树莓派并且是raspbian系统,因为mp3play不能在这个系统上正常使用,所以会出现此错误。 请使用树莓派专用版本,有任何问题欢迎继续留言。

yaphone avatar Mar 29 '17 14:03 yaphone

同样在64位 ubuntu 16.04.2 LTS 下面执行python run.py确实是报上面那个错误啊。

ghost avatar Apr 02 '17 14:04 ghost

查了下 mp3play只能在windows下使用啊?

ghost avatar Apr 02 '17 14:04 ghost

抱歉朋友,现在暂时没有Ubuntu的环境,如果mp3play不能使用的话可能需要改一下代码,可以尝试使用mpg123解决

yaphone avatar Apr 02 '17 16:04 yaphone

不会编程。。。希望你有时间可以调试下哈。另外希望还能看看能不能加个控制音量的选项。

ghost avatar Apr 02 '17 16:04 ghost

这样,朋友,先安装mpg123:

sudo apt-get install mpg123

然后将WxNeteaseMusic.py中的 import mp3play 删除,再将play函数修改为:


    def play(self):
        while True:
            if self.con.acquire():
                if len(self.playlist) != 0:
                    # 循环播放,取出第一首歌曲,放在最后的位置,类似一个循环队列
                    song = self.playlist[0]
                    self.playlist.remove(song)
                    self.playlist.append(song)
                    mp3_url = song["mp3_url"]
                    try:
                        subprocess.Popen("pkill mpg123", shell=True)
                        time.sleep(1)
                        subprocess.Popen("mpg123 " + mp3_url, shell=True, stdout=subprocess.PIPE)
                        self.con.notifyAll()
                        self.con.wait(int(song.get('playTime')) / 1000)
                    except:
                        pass
                else:
                    try:
                        subprocess.Popen("pkill mpg123", shell=True)
                        self.con.notifyAll()
                        self.con.wait()
                    except:
                        pass

另外,音量的话因为不同平台播放程序都不太一样,考虑找个周末的时候在树莓派版本加上音量控制功能:)

yaphone avatar Apr 02 '17 16:04 yaphone

改了还是报同样的错误。。。run.py要修改吗?

ghost avatar Apr 02 '17 16:04 ghost

把WxNeteaseMusic.py开头的import mp3play删了,可以了。

ghost avatar Apr 02 '17 16:04 ghost

非常感谢啊,半夜还回答问题,不愧是程序员啊。

ghost avatar Apr 02 '17 16:04 ghost

哈哈,不用客气,朋友,如果使用mpg123的话需要注意一个问题:

网易云音乐中部分音乐链接已失效,所以可能导致播放失败的情况,这种情况下,mpg123并不能感知到播放失败,还会一直等待当前播放失败的歌曲的时长才会播放下一首,或者其它命令触发切换动作,如(N)等。建议使用网易音乐的客户端把播放失败的这首歌直接删除掉,这样在播放时就不会卡住了。

祝使用愉快!

yaphone avatar Apr 02 '17 16:04 yaphone

好的,非常感谢提醒,另外问个问题,我的微信扫码登录后,除了我自己给自己发命令,我的朋友给我微信发相应的命令是不是同样可以控制?

ghost avatar Apr 02 '17 16:04 ghost

是的,只要收到相应指令都会执行。

yaphone avatar Apr 02 '17 16:04 yaphone

明白,期待可以控制音量的版本。。

ghost avatar Apr 02 '17 16:04 ghost

:)

yaphone avatar Apr 02 '17 16:04 yaphone

睡觉啦,你也早点休息哈,^_^

ghost avatar Apr 02 '17 16:04 ghost

mp3play 只能在windows平台运行,而且osx系统pip install mpg123提示没有mpg123这个库,该用什么替代呢?

lwabish avatar Jul 17 '17 16:07 lwabish

@gurtyo 试试写成pip3 install mpg123?

lcolok avatar Feb 20 '18 17:02 lcolok

@gurtyo 亲测mac里控制台写 sudo pip3 install mpg123 能成功安装。

lcolok avatar Feb 20 '18 18:02 lcolok