用 Python 3 + PyQt5 撸了一个可以播放“任意”音乐的播放器

2019-06-30 21:42:56 +08:00
 cosven

特性

安装使用

安装过程十分简单,这里以 Ubuntu 为例。其他系统安装使用方法请参考 Quick Start

# Ubuntu 用户可以依次执行以下命令进行安装
sudo apt-get install python3-pyqt5  # 安装 Python PyQt5 依赖包
sudo apt-get install libmpv1        # 安装 libmpv1 系统依赖

pip3 install 'feeluown>=3.0' --user -i https://pypi.org/simple/

feeluown-genicon   # 生成图标,点击桌面图标就可以运行
feeluown  # 不想生成图标,也可以选择直接在命令行中运行

欢迎对此项目有兴趣的童鞋加入开发

这是今天发帖的重点,嘿嘿 ~

欢迎加入我们这个小群体 ~ 目前,我们这里有刚毕业的高中生,有刚毕业的研究生,也有已经工作的 Python 工程师...

在这里,你 可能 可以收获:

如果你对项目、我们还心存疑惑,你可以阅读文档 或者加入开发者 /用户交流群来了解更多

7249 次点击
所在节点    Python
41 条回复
im67
2019-07-01 10:04:56 +08:00
windows 党安装劝退.......就不能用 pyinstaller 打个包么?
cosven
2019-07-01 10:17:28 +08:00
@im67 可以,但是目前还没有足够时间做这个工作...之前有朋友试过 pyinstaller,确实可以打包成功 ~
BingoXuan
2019-07-01 10:17:54 +08:00
@im67
然后你会发现,我还是下载个网易云音乐好了( qt 依赖打包起来简直和 electron 差不多)
cosven
2019-07-01 10:22:39 +08:00
@BingoXuan 嗯,这也是一个问题。项目依赖了 PyQt 和 mpv,打包之后会有大约 150MB 左右~ 会比较大

通过打包来安装的话,就意味着以后每次更新都要打包,用户每次都要重新下载整个包,更新相对来说那么不方便,所以综合考虑,暂时只能让大家安装的时候折腾一下了~
Aether
2019-07-01 10:25:47 +08:00
File "\fuocore\mpvplayer.py", line 4, in <module>
from mpv import (
File "\mpv.py", line 39, in <module>
backend = CDLL('mpv-1.dll')
File \__init__.py", line 348, in __init__
self._handle = _dlopen(self._name, mode)
OSError: [WinError 126] 找不到指定的模块。

好像因为安装顺序的原因(最后一步才放了 dll ),无法运行了怎么办……
cosven
2019-07-01 10:27:49 +08:00
@Aether 如果确认 mpv-1.dll 放对位置了,那只需要重新运行就好了~
Akkuman
2019-07-01 10:35:00 +08:00
好像前几年搜索网易云音乐 linux 版搜出了这个,没想到这么些年了还在蓬勃发展
cosven
2019-07-01 10:44:36 +08:00
@Akkuman 你木有记错,哈哈哈,不过它也不是蓬勃发展啦。ummm,我想想,“垂死挣扎”可能更形象。
larsenlouis
2019-07-01 11:12:05 +08:00
好评!海外自动 geoblock 解锁
FrankHB
2019-07-01 11:12:37 +08:00
资源来源跟 Listen1 比起来如何。
BingoXuan
2019-07-01 11:15:20 +08:00
@cosven
pyqt 虽然简单,但打包太大真的很头痛。我试过纯 qt,但效率太低也弃坑了。最终还是选择了 js+electron

qt5.13 增加了 wasm 的支持,可以在 web 端运行 qt,不知道 pyqt 后续会不会增加支持
cosven
2019-07-01 12:34:31 +08:00
@FrankHB 看了下 listen1 的来源,它的更多一些 ~ 它多支持了两个来源:酷狗和酷我。这边目前只支持 QQ/虾米 /网易云(都是插件形式),但是我想这三个平台应该能覆盖几乎所有的歌曲了吧(毕竟酷狗和酷我都是 tencent 家的,另外,要新增来源是一件相对容易的事情,如果真的需要的话)。
Phishion
2019-07-01 13:37:43 +08:00
这个我觉得自己玩玩还可以,做大了必然被告,厂商甘心买版权为其他人做嫁衣么?
lomsing
2019-07-01 14:12:52 +08:00
大佬🐂🍺
cosven
2019-07-01 14:46:54 +08:00
@Phishion
嗯嗯,是这样子的,如果你侵犯了产商的权益,他就来搞你,但是如果你尊重他,他就睁一只眼,闭一只眼。
当然,什么事情都有例外和意外。

针对这些例外和意外,我们在 FeelUOwn 上也想了一些办法:FeelUOwn 本身只是个播放器,不过它可以支持多个源,每个源都是一个插件。当一个源不行的时候,我们可以就放弃他。目前 FeelUOwn 支持国内三个源,以后还可以考虑 iTunes, Spotify, Google Music 等。所以除非每个源都来搞我们,不然这个播放器就不会死(另外值得一说的是:我们确实有注意 *尽量不过分* 的侵犯他们的权益,我在上面一个回答里面也解释了这个问题)。

最差最差的情况:每个源都不能用,那时候,我们还可以听本地音乐了;可以通过搜索引擎来找资源。

最后,值得一说的是,支持多资源只是 FeelUOwn 众多特性中的一个。
cosven
2019-07-01 14:52:26 +08:00
@lomsing 老师好 ~
supertramp
2019-07-01 15:22:31 +08:00
ubuntu19.04,apt 装 pyqt5 报错 ModuleNotFoundError: No module named 'PyQt5.QtOpenGL',应该是版本太老,pip3 install pyqt5 --upgrade 可以解决

RuntimeError: generator raised StopIteration 这个报错应该解决一下。。

装 fcitx-frontend-qt5,fcitx 输入法也用不了
lzxgh621
2019-07-01 15:33:05 +08:00
你那个群咋回事 刚加就 T
cosven
2019-07-01 15:36:48 +08:00
@supertramp

不好意思,这里忘记写这个步骤了 `sudo apt-get install python3-pyqt5.qtopengl`,另外,在 Ubuntu 上,更推荐使用 apt 来安装 PyQt5。

> 装 fcitx-frontend-qt5,fcitx 输入法也用不了

ummm,这个问题,我也不是很确定。
我觉得可以先尝试用 apt 安装试试,把 pip 安装的给卸载了。如果还是不行的话,我今天装个虚拟机也试试。
cosven
2019-07-01 15:38:01 +08:00
@lzxgh621 不好意思,你是 id 为 4a6f5a1**** 的那位童鞋么,我以为这个 ID 是个 spam... 我拉您回来 ~

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/578800

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX