Linux 网易云音乐问题汇总
一、 不能输入中文问题
参照:https://gitee.com/ForMat1/netease-cloud-music_For_Arch
二、 不能播放无损音质问题(重新编译vlc)
1. 安装 flac mpg123 libmpeg2 lua libmad libpulse alsa-libjack 的devel包及其他必要依赖
sudo apt install flac libflac-dev mpg123 libmpg123-dev libmpeg2-4-dev liblua5.2-dev lua5.2 libmad0-dev libpulse-dev alsa libjack-dev libxcb-composite0-dev libxcb-xv0-dev libxcb-randr0-dev
2. 下载:
vlc v3源码:https://vlc.letterboxdelivery.org/vlc/3.0.11/vlc-3.0.11.tar.xz
ncm.patch文件内容:
diff --git a/modules/access/http/resource.c b/modules/access/http/resource.c
index 9a28bb50f3..4919cb3a05 100644
--- a/modules/access/http/resource.c
+++ b/modules/access/http/resource.c
@@ -315,6 +315,18 @@ char *vlc_http_res_get_type(struct vlc_http_resource *res)
if (status < 200 || status >= 300)
return NULL;
+ if(res->path){
+ char *suffix = "\0";
+ for(int i = (int) (strlen(res->path) - 1); i >= 0; --i){
+ if(res->path[i] == '.'){
+ suffix = res->path + i + 1;
+ break;
+ }
+ }
+ if(strcmp(suffix, "flac") == 0)
+ return strdup("audio/flac");
+ }
+
const char *type = vlc_http_msg_get_header(res->response, "Content-Type");
return (type != NULL) ? strdup(type) : NULL;
}
3. 编译安装
$ cd vlc # vlc源码根目录
$ patch -p1 < patch文件路径 # 如:patch -p1 < /home/download/ncm.patch
patching file modules/access/http/resource.c
$ ./configure \
--prefix=/usr \
--disable-rpath \
--enable-mpg123 \
--enable-flac \
--enable-libmpeg2 \
--disable-avcodec \
--disable-swscale \
--disable-a52
...
$ make -j$(nproc)
# 安装到用户目录,不覆盖系统vlc
$ make DESTDIR=$HOME/.local/share/vlc-patching install
如果提示vlc.appdata.xml文件找不到,把share目录下的vlc.appdata.xml.in重命名vlc.appdata.xml即可
编译的过程中可能会有各种错误导致不能顺利编译,大多因为gcc编译器版本问题,本人使用gcc 10.2.0 编译,中间修改了几处源码才通过(具体问题就不贴了,不同编译器错误可能不一样)
另外官方推荐gcc版本是4.9及以后,因此建议用4.9
4. 设置LD_LIBRARY_PATH运行网易云音乐
$ env LD_LIBRARY_PATH=$HOME/.local/share/vlc-patching/usr/lib netease-cloud-music
5. 加入启动环境变量
为避免每次启动都要执行这个命令,可以使用2种方式,一种是在bash脚本中export LD_LIBRARY_PATH=$HOME/.local/share/vlc-patching/usr/lib
另一种是修改desktop文件,这里直接修改netease-cloud-music.desktop文件,具体路径在不同的系统中位置不同
manjaro: /home/gotpl/.local/share/applications/
Ubuntu: /usr/local/share/applications/
修改Exec这一行为:
Exec=env LD_LIBRARY_PATH=$HOME/.local/share/vlc-patching/usr/lib XDG_CURRENT_DESKTOP=DDE netease-cloud-music %U
保存,点击图标进入
~
已知问题:有些系统可能不生效,可采取以下方式加入环境变量
sudo vim /usr/bin/netease-cloud-music
添加一行 (vlc路径必须在前面,否则不生效)
export LD_LIBRARY_PATH=$HOME/.local/share/vlc-patching/usr/lib/:$LD_LIBRARY_PATH
如图:
不想编译可直接下载deb安装包,但并不一定能用,博主使用的是7.4的编译器编译:
链接: https://pan.baidu.com/s/16hixt3djxvpo1j9clSlLJQ
提取码: 2wy5
感谢原帖大佬:https://blog.eh5.me/fix-ncm-ldac-playing/