-
Notifications
You must be signed in to change notification settings - Fork 4
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
在 netease-cloud-music-gtk 不工作 #17
Comments
如果 NCM-gtk 下载的歌词保存为 再者用其他播放器播放官方网易云下载的音乐时,mpris 接口返回的多歌手信息 其实由播放器直接提供歌词才是正解,即 metadata 的 |
好的,对比还是我这边直接下载歌词比较简单,不容易出错。 |
发现新问题,现在打开ncm-gtk 后状态栏没有desktop-lyric 图标,但打开gnome music 会显示。 |
Arch / GNOME 45.1 / netease-cloud-music-gtk4 2.2.0 下无法复现,状态栏没图标而 GNOME Shell 本身的 Mpris 控件存在的话,很可能是在这里被忽略了。 gdbus call --session --dest org.mpris.MediaPlayer2.com.gitee.gmg137.NeteaseCloudMusicGtk4 --object-path /org/mpris/MediaPlayer2 --method org.freedesktop.DBus.Properties.Get org.mpris.MediaPlayer2 DesktopEntry 按 Alt+F2 输入 Shell.AppSystem.get_default().lookup_app('com.gitee.gmg137.NeteaseCloudMusicGtk4.desktop').get_app_info().get_string('Categories') 的输出是什么? 另外在终端中看看 GNOME Shell 的日志有相关的错误吗: journalctl -fo cat /usr/bin/gnome-shell |
1、运行 2、没有找到 lg 命令。 3、journalctl 的日志输出如下:
|
看了下 85a4385 之前的版本是取 Mpris bus_name 末尾的播放器名称来搜索过滤浏览器之类的非音乐应用,而 NCM-gtk4 2.0 之前应该用的 Shell.AppSystem.search('com.gitee.gmg137.NeteaseCloudMusicGtk4') 不过其后直接用的 Mpris 提供的 if(name === 'com.gitee.gmg137.NeteaseCloudMusicGtk4') return true; 等升级到 GNOME 45 应该就好了。 |
我下了扩展网站上的版本,还是无法复现。请从 Github 安装加几句 log 重新登录看看日志 diff --git a/src/mpris.js b/src/mpris.js
index 2e84b84..f7e14be 100644
--- a/src/mpris.js
+++ b/src/mpris.js
@@ -49,8 +49,10 @@ export class MprisPlayer extends Destroyable {
let mpris = await MprisProxy.newAsync(Gio.DBus.session, bus_name, '/org/mpris/MediaPlayer2'),
app = Shell.AppSystem.get_default().lookup_app(`${mpris.DesktopEntry ?? ''}.desktop`),
ctg = app?.get_app_info().get_string('Categories').split(';') ?? [];
+ log(mpris.DesktopEntry, ctg);
if(ctg.includes('AudioVideo') && !ctg.includes('Video')) return mpris;
} catch(e) {
+ logError(e);
// ignore
}
} |
日志结果:
|
我这里是这样的:
实际上,为了过滤视频播放器和浏览器的 Mpris 要求
可能是 |
确实是desktop 文件的问题,修改后已经可以正常触发运行了。 |
又发现一个问题,当我下载 song-artist-album.lrc 格式的歌词后,desktop-lyrics 会再下载一个 song-artist.lrc,希望可以添加一个检测,优先检测 song-artist-album.lrc ,不存在的话再检测 song-artist.lrc,如果歌词文件已经存在就不要重复下载了。 |
这是由于 NCM-gtk 没有提供 gdbus call --session --dest org.mpris.MediaPlayer2.com.gitee.gmg137.NeteaseCloudMusicGtk4 --object-path /org/mpris/MediaPlayer2 --method org.freedesktop.DBus.Properties.Get org.mpris.MediaPlayer2.Player Metadata 提供的数据只有 song 和 artist 可用,length 也是有用的但全为0毫无意义:
顺带一提, gdbus call --session --dest org.mpris.MediaPlayer2.com.gitee.gmg137.NeteaseCloudMusicGtk4 --object-path /org/mpris/MediaPlayer2 --method org.freedesktop.DBus.Properties.Get org.mpris.MediaPlayer2.Player Position 如果 NCM-gtk 不打算提供的话,在更新 Mpris 前保存为 但这样信息少了可能会增加文件冲突的可能,既然 NCM-gtk 能取到对应的歌词,推荐直接将原文以 Mpris |
非常感谢,已经可以正确识别运行了 |
cancel the pending lyrics request before each download improve light theme integration with the panel lyrics use binary search on sorted timestamps cleanup
貎似 netease-cloud-music-gtk 2.0 版本后 desktop-lyric 就不再工作了,在排查了 netease-cloud-music-gtk 的代码后没有找到原因,麻烦可以检查下看是哪里出了问题。
The text was updated successfully, but these errors were encountered: