播放器异常处理 - stark81/my_yesplaymusic GitHub Wiki
播放器异常的现象
某些歌曲由于某些原因本身无法完成歌曲信息匹配,而如果软件在退出前又正好播放到这首歌,那么在下一次打开软件后,就会导致异常,包括:
- 软件里所有显示歌曲列表的地方(包括:歌单里、专辑里、歌手详情里、本地歌曲、本地歌单里),都无法显示歌曲列表;
- 无法播放任何歌曲,包括在线歌单和本地歌曲等;
原因分析
- 出现上述现象的原因在于,原版软件只有在线功能,因此播放器每次播放的歌曲都有ID、歌曲名称、歌手等所有信息,而软件在关闭前会保存播放器状态以便在下次启动时可以恢复。因此每次重新启动都能够根据保存的歌曲ID重新获取到所有信息;
- 但是,如果软件退出前播放的是没有进行信息匹配的歌曲,则在重新启动软件后,播放器会根据歌曲的“本地ID”去请求歌曲信息,从而无法获取到信息,进而导致需要显示“歌曲列表”的地方和播放器本身出现异常;
解决方法
- Mac电脑点击顶部菜单栏【窗口】-【开发者工具】,在“Console”中输入 resetPlayer(),然后刷新页面(按Ctrl/Command + R);
- Windows和Linux电脑按F12打开【开发者工具】,其他操作同上;
- 此操作仅仅会清除播放器状态,不会导致本地歌曲匹配信息丢失,不会导致离线歌单丢失;
_注:使用resetApp()也可以解决此异常,但resetApp是会清除掉软件的所有信息,包括:登陆状态、一切设置、本地歌曲匹配信息、离线歌单等;因此,如果只是播放器异常的话建议使用resetPlayer()来清除播放器即可;