linux 在线音乐接口,NetEaseMusic

NeteaseMusic for linux - third party

欢迎有兴趣的小伙伴合作开发

目前依賴

Python 3, PyQt5

sudo apt-get install python3-pyqt5.qtmultimedia

sudo apt-get install python3-pyqt5.qtwebkit

有的系统还需要安装:(尤其那些播放不出声音来的)

sudo apt-get install libqt5multimedia5-plugins

sudo apt-get install gstreamer0.10-plugin-good gstreamer0.10-plugins-bad gstreamer0.10-plugins-ugly

sudo apt-get install gstreamer1.0-plugins-good gstreamer1.0-plugins-bad gstreamer1.0-plugins-ugly gstreamer1.0-libav

如果在安装完这些包之后,还是没有声音,可以提交相关issue

安装使用

git clone https://git.oschina.net/zjuysw/NetEaseMusic.git

cd NetEaseMusic

sh generateDesktopIcon.sh

然后就可以搜索 NetEaseMusic, 就可以从系统程序中找到

程序架构

新的版本代码会在src文件夹中,不影响之前的代码

我在这里尝试制定一个大致的程序架构,这样可能有利于项目的发展,方便之后有兴趣的小伙伴一起合作开发。也算是一个标准吧。对于不合理的地方,当然可以及时使用适当的方法修正。

大的目标:实现一个可扩展、可维护的、可以接入多个音乐网站的音乐播放器(比如豆瓣fm,虾米)。短期目标:改进 网上已有的音乐api,接入一个平台,保证可扩展,可维护。

想加入的一些特性

可以支持大部分音乐平台的资源。

支持歌曲缓存

界面显示模块

界面交互控制模块。前端的交互控制,给用户良好的交互体验。

主题切换模块。主要依靠切换qss文件来切换主题

控制模块

播放器模块

网络访问模块(主要负责和第三方的音乐网站链接)(可能将来会合并到qt的网络模块中去)

插件模块。提供一些接口用来编写插件,比如说连接第三方音乐网站的api。还有一些歌词显示功能,或者相似歌曲推荐这样的高级功能,都可以作为plugin合并入项目。

Qt网络访问模块,提供一些具体的图片及其音乐下载。(异步,将为用户提供更好的体验)

数据模型

数据标准模型。从第三方来的数据都需要转换为一个标准的数据模型。

数据提取模型。第三方的数据格式或者数据内容各不一样,所以需要对它们进行转换。

数据缓存模型

其他模块

调试输出模块

基本路径等配置

开发注意事项

配置PYTHONPATH为src目录

确认安装了python3,pyqt5,pyqt5的multimedia库

尽量遵守google的python代码风格指南

TRY TO BE MORE PYTHONIC

The Zen of Python, by Tim Peters

Beautiful is better than ugly.

Explicit is better than implicit.

Simple is better than complex.

Complex is better than complicated.

Flat is better than nested.

Sparse is better than dense.

Readability counts.

Special cases aren't special enough to break the rules.

Although practicality beats purity.

Errors should never pass silently.

Unless explicitly silenced.

In the face of ambiguity, refuse the temptation to guess.

There should be one-- and preferably only one --obvious way to do it.

Although that way may not be obvious at first unless you're Dutch.

Now is better than never.

Although never is often better than *right* now.

If the implementation is hard to explain, it's a bad idea.

If the implementation is easy to explain, it may be a good idea.

Namespaces are one honking great idea -- let's do more of those!

此作品仅供学习参考,如有任何侵权,请通知作者。

email: yinshaowen241[at]gmail[dot]com

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值