ddddxxx / LyricsX

🎶 Ultimate lyrics app for macOS.
Mozilla Public License 2.0
4.73k stars 390 forks source link

wrong song match with audirvana plus integration mode (+itunes) #171

Closed kimklai closed 6 years ago

kimklai commented 6 years ago

audirvana plus 3.2.5 (3137) LyricsX 1.3.1

When playing with audirvana plus integration mode + itunes, LyricsX failed to get correct song title. If I manually search the song and apply it, everything works. If shift to next song, LyricsX will stuck on previous song.

Any idea ? or how to turn on debug mode ? I can help to debug & fix it if more developing info provided.

Thanks

ddddxxx commented 6 years ago

It works good to me (audirvana plus 3.2.6). Do you have Xcode installed so that I can run some code on your device?

And please don’t search manually when LyricsX stuck on previous song. The app will save lyrics for previous song, and mass up your database.

ddddxxx commented 6 years ago

The app queries current track’s information via AppleScript. It’s terribly inefficient due to a bug caused by Apple. Therefor the app only performs the query when Audirvana “tell” it that current track is changed.

It seems the app didn’t receive the notification on your device. So it thought the track remains unchanged.

(Quit LyricsX and reopen may be helpful)

kimklai commented 6 years ago

沒注意可以用中文, 哈.

額外測試單獨使用audirvana是正常的,但掛上itunes integration mode就壞了。有抓到曲名,但沒抓到時間軸;或是反復一直跳出曲名畫面,而不會續繼下去。 我有xcode可以測試,本來想試編LyricsX,但目前還卡在cartfile的framework編不過。 你說的apple script是哪個檔? 我先看script是否正常...

ddddxxx commented 6 years ago

和音乐播放器交互的部分在这个repo: https://github.com/ddddxxx/MusicPlayer 。Carthage编译失败也是因为这里,以release模式编译会导致编译器崩溃😅,你可以手动build一次然后放进Carthage/Build文件夹。

没有抓到时间轴就更奇怪了……请试试在Script Editor中运行以下脚本,应该会输出当前的播放进度。

tell application "Audirvana Plus" to get player position

另外我不太清楚你说的“itunes integration mode”是什么,audirvana 的设置吗?

ddddxxx commented 6 years ago

已确认开启 itunes integration mode 且关闭 itunes playback / volume control 时 audirvana 不会发送状态变化的通知。若要修复,需要频繁通过 Apple Script 查询播放器状态。对能耗影响较大。仅开启 itunes integration mode 时一切正常。

由于涉及的改动较大,有诸多不利影响,且 itunes integration mode 被标记为 legacy 功能。LyricsX 不会支持此种情形。