gmg137 / netease-cloud-music-gtk

Linux 平台下基于 Rust + GTK 开发的网易云音乐播放器
GNU General Public License v3.0
1.51k stars 89 forks source link

播放一会儿弹出“播放格式错误”,进入任何歌单均在加载中 #113

Open zoums opened 3 years ago

zoums commented 3 years ago

问题:持续播放一会儿弹出“播放格式错误”,进入任何未打开的歌单均在加载中提示“数据解析错误”,此前1.1.0版本均无此情况

问题复现:刚打开不断切换歌曲均无法复现,仅在持续循环播放好几首歌曲后出现,目前不断测试发现在最小化后一会儿会出现上面情况,切换回前台等待2分钟左右恢复正常。

环境:

版本:拉取1.2.0最新源自编译 日志:

netease_cloud_music_gtk::widgets::player (line 448): 准备播放音乐: SongInfo { id: 510724242, name: "山水", singer: "bankyya", album: "自己拍的封面", pic_url: "http://p4.music.126.net/0H9G9iTAmCRpvI3TTxoO_A==/109951163036225553.jpg", duration: "04:23", song_url: "http://m8.music.126.net/20210207143420/01d8883b4dda275b22ddef9146cf7061/ymusic/0418/366b/7671/b7574975cf6cf9ac4a9a0cace9272e75.mp3" }

netease_cloud_music_gtk::widgets::player (line 460): 播放在线音乐: http://m8.music.126.net/20210207143420/01d8883b4dda275b22ddef9146cf7061/ymusic/0418/366b/7671/b7574975cf6cf9ac4a9a0cace9272e75.mp3

netease_cloud_music_gtk::widgets::player (line 448): 准备播放音乐: SongInfo { id: 410628806, name: "Tales of Neverland(inspiring)", singer: "J.T.Peterson", album: "Tales of Neverland(inspiring)", pic_url: "http://p4.music.126.net/mKKdVhL_oMxtL4H8okwQ3A==/1396379774501833.jpg", duration: "02:15", song_url: "" }

netease_cloud_music_gtk::widgets::player (line 456): 播放音乐缓存: /home/zou/.cache/netease-cloud-music-gtk/410628806.mp3

netease_cloud_music_gtk::widgets::player (line 448): 准备播放音乐: SongInfo { id: 4397864, name: "Going Home", singer: "Tom Day", album: "Life", pic_url: "http://p3.music.126.net/tCTqVNenSsFwFC5X47dJqw==/930186837146051.jpg", duration: "05:59", song_url: "" }

netease_cloud_music_gtk::widgets::player (line 460): 播放在线音乐:

netease_cloud_music_gtk::widgets::player (line 448): 准备播放音乐: SongInfo { id: 480463724, name: "戏阳", singer: "鱼九", album: "黄梅时节", pic_url: "http://p4.music.126.net/8Kpbp_8S7GoGEwDYeBdBsA==/109951162934638340.jpg", duration: "03:32", song_url: "" }`

出现问题时日志中解析的song_url是空的,播放已经缓存的可以播放,其他的解析都解析不到,尝试清理了.cache依旧,持续ping m7.music.126.net 未中断过。

出现问题的截图: 图片

gmg137 commented 3 years ago

这问题前几天就已经出现了,排查怀疑是网易云的接口认证导致,退出重新登陆可以临时解决但过一会可能还会出现。目前还没找到解决办法。

zoums commented 3 years ago

这问题前几天就已经出现了,排查怀疑是网易云的接口认证导致,退出重新登陆可以临时解决但过一会可能还会出现。目前还没找到解决办法。

Ok,辛苦了

zoums commented 3 years ago

进一步修改了代码进行调试,在获取songs_url的时候进行调试信息打印,结果发现正常的播放音乐部分有获取songs_url的打印输出,空链接的时候musicapi/mod.rs中的songs_url貌似并未被调用? 麻烦大佬看看,我这边只是想临时修改下代码看看能否解决,整体代码还没看。

netease_cloud_music_gtk::widgets::player`` (line 448): 准备播放音乐: SongInfo { id: 449106392, name: "《かたわれ時\u{a0}(黄昏之时)》-你的名字(纯钢琴版)(Cover 野田洋次郎)", singer: "柴小C", album: "小C的黑白键", pic_url: "http://p4.music.126.net/UQoYPwxAR9hnpzdif-KZqg==/109951164361320580.jpg", duration: "02:43", song_url: "" } netease_cloud_music_gtk::widgets::player (line 456): 播放音乐缓存: /home/zou/.cache/netease-cloud-music-gtk/449106392.mp3 netease_cloud_music_gtk::widgets::player (line 448): 准备播放音乐: SongInfo { id: 1435358259, name: "Experience(钢琴演奏版)(翻自 Ludovico Einaudi) ", singer: "浅绯色的喵", album: "浅浅的音乐故事", pic_url: "http://p3.music.126.net/hVPUfLNsSnnWbUSa5kaPqg==/109951164927740327.jpg", duration: "03:38", song_url: "" } netease_cloud_music_gtk::widgets::player (line 456): 播放音乐缓存: /home/zou/.cache/netease-cloud-music-gtk/1435358259.mp3

netease_cloud_music_gtk::musicapi (line 288): SongsUrl解析结果:: {"data":[{"id":510309106,"url":"http://m7.music.126.net/20210208212528/0d008844266bbb8a515f9f37d439fa20/ymusic/232c/1f1d/e1bd/4687904f8faab9011e485782ebe9502a.mp3","br":128000,"size":4305023,"md5":"4687904f8faab9011e485782ebe9502a","code":200,"expi":1200,"type":"mp3","gain":0.0,"fee":8,"uf":null,"payed":0,"flag":2,"canExtend":false,"freeTrialInfo":null,"level":"standard","encodeType":"mp3","freeTrialPrivilege":{"resConsumable":false,"userConsumable":false},"freeTimeTrialPrivilege":{"resConsumable":false,"userConsumable":false,"type":0,"remainTime":0},"urlSource":0}],"code":200} netease_cloud_music_gtk::widgets::player (line 448): 准备播放音乐: SongInfo { id: 510309106, name: "When\u{a0}I\u{a0}see\u{a0}the\u{a0}light\u{a0}at\u{a0}that\u{a0}Time", singer: "Snigellin", album: "When I see the light at that Time", pic_url: "http://p4.music.126.net/0OLw7vdfSYcHNSjwj4LAWQ==/109951163663402662.jpg", duration: "04:29", song_url: "http://m7.music.126.net/20210208212528/0d008844266bbb8a515f9f37d439fa20/ymusic/232c/1f1d/e1bd/4687904f8faab9011e485782ebe9502a.mp3" } netease_cloud_music_gtk::widgets::player (line 460): 播放在线音乐: http://m7.music.126.net/20210208212528/0d008844266bbb8a515f9f37d439fa20/ymusic/232c/1f1d/e1bd/4687904f8faab9011e485782ebe9502a.mp3

netease_cloud_music_gtk::widgets::player (line 448): 准备播放音乐: SongInfo { id: 1392752594, name: "Baby Don\'t Cry (人鱼的眼泪) [Piano Version] [Cover EXO](翻自 群星) ", singer: "Mike Zhou", album: "南昌没有南昌通", pic_url: "http://p3.music.126.net/9NkmzifrZKEcjscNdu85jw==/109951164382317335.jpg", duration: "03:50", song_url: "" } netease_cloud_music_gtk::widgets::player (line 460): 播放在线音乐:

gmg137 commented 3 years ago

我现在还没办法随时复现该问题,春节比较忙,有空了我再研究下。

zoums commented 3 years ago

我现在还没办法随时复现该问题,春节比较忙,有空了我再研究下。

麻烦你了,我已经进一步测试了,发现实际是调用了的 但不一定有返回,在没有返回时,info!打印的调试信息输出也没有输出。

gmg137 commented 3 years ago

初步猜测是接口访问过的频繁造成的,还需要测试。

zoums commented 3 years ago

初步猜测是接口访问过的频繁造成的,还需要测试。

感谢,我折腾了一下,目前暂时没有出现这种情况了 折腾的尝试:

另外我看到网易云的player/url请求已换成player/url/v1了,但请求的参数不一样。

zoums commented 3 years ago

好了,新的v1的api也整上了,有几个参数多了,参数加密方法应该变动不大,还得测试看看稳定性 参数: 'csrf_token': "" // 空 'encodeType': "mp3" // mp3 / aac 'ids': "[566521546]" // 与原来一致 'level': "lossless" // lossless / standard 补充:实测发现还是跟原来的一样,目前改用WEAPI的随机ua跑了一晚上暂时一切正常。

gmg137 commented 3 years ago

测了下 v1 的接口, lossless/standard 得到的都是 128k 的 mp3,考虑要不要全部 aac 格式,还能节省空间。

zoums commented 3 years ago

测了下 v1 的接口, lossless/standard 得到的都是 128k 的 mp3,考虑要不要全部 aac 格式,还能节省空间。

感谢,更新后的一切正常了,另外v1之前测发现部分128k一部分320k。

arbaleast commented 3 years ago

2.25.20同1.2自编译,进入歌单提示数据解析异常,播放歌曲提示播放失败

gmg137 commented 3 years ago

@arbaleast 1.2 的接口不稳定,拉最新的代码编译试试,我这里测试是没问题的。

arbaleast commented 3 years ago

@arbaleast 1.2 的接口不稳定,拉最新的代码编译试试,我这里测试是没问题的。

好,刚刚重新编译后没问题了