GithubHelp home page GithubHelp logo

langzime / netease-cloud-music-gtk Goto Github PK

View Code? Open in Web Editor NEW

This project forked from gmg137/netease-cloud-music-gtk

0.0 1.0 0.0 447 KB

Linux 平台下基于 Rust + GTK 开发的网易云音乐播放器

License: GNU General Public License v3.0

Rust 100.00%

netease-cloud-music-gtk's Introduction

netease-cloud-music-gtk

Actions Status

netease-cloud-music-gtk 是基于 Rust + GTK 开发的网易云音乐播放器,专为 Linux 系统打造,已在 openSUSE Tumbleweed + GNOME 环境下测试。

特点

  • 稳定:专为 Linux 系统打造,相比官方版本拥有更好的兼容与稳定性。
  • 极速:相比 Node/python 版,Rust + GTK 带给你如丝般的顺滑体验。
  • 可靠:除了断网或网易 API 限制,不会出现运行时问题。
  • 简洁:仿 GNOME Music 风格,GTK 原生界面,纯粹得令人发指。
  • 轻量:安装文件不到 2 M,只需最简单的运行时依赖。

功能

  • 网易邮箱/手机账号登录
  • 私人歌单管理
  • 个性推荐
  • 私人 FM
  • 音乐云盘
  • 热门排行榜
  • 歌曲搜索
  • 简易歌词
  • 桌面歌词(依赖于 Desktop LyricOSDLyrics)
  • 热门歌单
  • 新碟上架
  • Mpris 支持

运行依赖

openssl, gstreamer, gstreamer-plugins-base, gstreamer-plugins-good, gstreamer-plugins-bad, gstreamer-plugins-ugly

安装

openSUSE Tumbleweed

sudo zypper in netease-cloud-music-gtk

openSUSE Leap

// 添加源
sudo zypper ar -f obs://multimedia:apps multimedia
// 安装
sudo zypper in netease-cloud-music-gtk

Arch Linux

使用方法:在 /etc/pacman.conf 文件末尾添加以下两行(或者选择其它镜像):

[archlinuxcn]
Server = https://repo.archlinuxcn.org/$arch

添加后执行下面语句安装 archlinuxcn-keyring

sudo pacman -Syyu archlinuxcn-keyring

然后安装 netease-cloud-music-gtk

sudo pacman -Syu netease-cloud-music-gtk

Debian

echo "deb https://dl.bintray.com/debianopt/debianopt buster main" | sudo tee -a /etc/apt/sources.list

curl -o bintray-public.key.asc https://bintray.com/user/downloadSubjectPublicKey?username=bintray

sudo apt-key add bintray-public.key.asc

sudo apt install netease-cloud-music-gtk

Fedora / Ubuntu

其它发行版

从源码安装

openSUSE 安装依赖

sudo zypper in git gcc dbus-1-devel gtk3-devel libopenssl-1_1-devel gstreamer-devel \
      gstreamer-plugins-bad gstreamer-plugins-bad-devel \
      gstreamer-plugins-base gstreamer-plugins-base-devel \
      gstreamer-plugins-good gstreamer-plugins-ugly cairo-devel

ubuntu 安装依赖

sudo apt install git gcc libdbus-1-dev libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev \
      gstreamer1.0-plugins-base gstreamer1.0-plugins-good \
      gstreamer1.0-plugins-bad gstreamer1.0-plugins-ugly \
      gstreamer1.0-libav libgtk-3-dev libatk1.0-dev libcogl-pango-dev \
      libssl-dev libcairo2-dev libgstreamer-plugins-bad1.0-dev

fedora 安装依赖

# 需要启用 rpmfusion-free
sudo dnf install git gcc dbus-devel gtk3-devel openssl-devel gstreamer1-devel \
      gstreamer1-plugins-bad-free gstreamer1-plugins-bad-free-devel \
      gstreamer1-plugins-base gstreamer1-plugins-base-devel gstreamer1-libav \
      gstreamer1-plugins-good gstreamer1-plugins-ugly cairo-devel

mac(osx) 安装依赖

brew install gtk+3
brew install gstreamer gst-plugins-base gst-plugins-good \
      gst-plugins-bad gst-plugins-ugly gst-libav
      
brew install dbus

# 安装之后要启动
brew services restart dbus

编译/打包

git clone https://github.com/gmg137/netease-cloud-music-gtk.git
cd netease-cloud-music-gtk

// 编译
cargo build --release
// 编译指定 gtk 版本(Leap 15.1 / Ubuntu 18.04)
cargo build --release --no-default-features --features gtk_3_18

// 打包 rpm
cargo install cargo-rpm
cargo rpm build

// 打包 deb
cargo install cargo-deb
cargo deb

FAQ

  1. 为什么后台运行时没有托盘图标?

由于 GTK3 取消了托盘接口,所以目前不打算实现托盘功能。
替代方案:

  • Mpris 插件: GNOME 推荐 Mpris Indicator Button,其它桌面可查找相应 Mpris 插件。
  • 直接点击启动图标,亦可唤醒程序。
  1. 为什么程序无法在我的系统运行?

请从命令行启动程序,查看错误输出。如果报 glib 错误,可以重新安装旧版系统(ubuntu18.04, leap15)的安装包来解决。

  1. 为什么播放歌单时播放的是随机音乐?

双击只会播放歌单中的一首音乐,如果要播放整个歌单请点击歌单右上角的播放按钮。

  1. 为什么点击播放后没有反应?

请通过命令行添加 --debug 参数来启动程序,查看获取到的歌曲链接是否正确。

  1. 音乐缓存目录在什么位置?

请通过命令行添加 --debug 参数来启动程序, 查看输出信息。

  1. 配合 OSDLyrics 播放时歌词显示不正确。

由于 OSDLyrics 是通过歌词文件名称做匹配,因此当播放同名歌曲时可能会匹配到错误的歌词文件。 对此可以通过删除已有歌词文件临时解决。

截图

home found mine

License

This project's source code and documentation is licensed under the GNU General Public License (GPL v3).

参考

netease-cloud-music-gtk's People

Contributors

fplust avatar gmg137 avatar haukeng avatar langzime avatar marvelousblack avatar nobles5e avatar zyw271828 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.