监控Spotify跟踪Applescript中的变化?

Kri*_*ian 5 applescript spotify growl

我试图找出通过Spotify的Applescript库检测轨道变化的最佳方法.到目前为止,我已经尝试检查玩家位置 - 如果它等于0则它是一个新轨道并且再次出现Growl通知.(如果有人开了一首歌等,这大部分都不起作用)

我想知道更合理的方法是运行空闲的iTunes脚本,并且每隔几秒检查当前的轨道名称是否有变化.我担心这可能是记忆力的一点点.我也无法使用此代码.

tell application "System Events"
    -- checks for instance of Growl and Spotify, does not run if both programs are not active
    set isRunning to ¬
        (count of (every process whose name is "Growl")) > 0
    (count of (every process whose name is "Spotify")) > 0
end tell

--establish empty variable to be filled by song title later
global latest_song
set latest_song to ""

on idle
    tell application "Spotify"
        if player state is playing then
            copy name of current track to current_tracks_name
            -- runs match between last and current song titles
            if current_tracks_name is not latest_song then
                copy current_tracks_name to latest_song
                set who to artist of current track
                set onwhat to album of current track
                tell application "Growl"
                    -- Make a list of all the notification types 
                    -- that this script will ever send:
                    set the allNotificationsList to ¬
                        {"SpotifyNewTrack"}

                    -- Make a list of the notifications 
                    -- that will be enabled by default.      
                    -- Those not enabled by default can be enabled later 
                    -- in the 'Applications' tab of the growl prefpane.
                    set the enabledNotificationsList to ¬
                        {"SpotifyNewTrack"}

                    -- Register our script with growl.
                    -- You can optionally (as here) set a default icon 
                    -- for this script's notifications.
                    register as application ¬
                        "Spotify" all notifications allNotificationsList ¬
                        default notifications enabledNotificationsList ¬
                        icon of application "Spotify"

                    --  Send a Notification...
                    notify with name ¬
                        "SpotifyNewTrack" title ¬
                        current_tracks_name description ¬
                        who application name "Spotify"
                end tell
            end if
            return 5
        end if
    end tell
end idle
Run Code Online (Sandbox Code Playgroud)

这可能有点复杂,但任何帮助都表示赞赏.

Kri*_*ian 1

值得一提的是,这无关紧要,因为 Spotify 在最近的更新中修复了这个问题。