如何在 Touch Bar 上顯示 Spotify 歌曲的剩餘時間?

如何在 Touch Bar 上顯示 Spotify 歌曲的剩餘時間?

目前,我正在使用 BetterTouchTool (BTT) 來自動執行任務。我想要製作一個腳本,將歌曲剩餘的時間(以 MM: SS 格式)顯示為我的 Touch Bar 上的標籤。

這是我為實現此目標而嘗試做的事情(設定一個按鈕來觸發此腳本):

如果應用程式“Spotify”正在運行,則告訴應用程式“Spotify”返回(當前曲目的持續時間)-(播放器位置)結束告訴其他返回“”結束如果

它沒有給我預期的輸出。有誰知道如何修理它?

答案1

tell application "Spotify" to if running then tell ¬
    (duration of current track) - (player position) ¬
    to return "" & (it div minutes) & ":" & (it mod minutes)

return ""

然而,在我的系統上,SpotifyAppleScript 中的曲目持續時間報告不正確。

系統資訊: AppleScript 版本:2.7 系統版本:10.13.6

答案2

這對我有用:

tell application "Spotify" to if running then
    set song_duration to (duration of current track) / 1000
    set song_duration_minutes to song_duration div minutes
    set song_duration_seconds to song_duration mod minutes div 1
    -- pad with 0 if necessary 
    if (count of ("" & song_duration_seconds)) is 1 then
        set song_duration_seconds to "0" & song_duration_seconds
    end if
    set player_position_minutes to (player position) div minutes
    set player_postition_seconds to (player position) mod minutes div 1
    -- pad with 0 if necessary
    if (count of ("" & player_postition_seconds)) is 1 then
        set player_postition_seconds to "0" & player_postition_seconds
    end if
    return "" & player_position_minutes & ":" & player_postition_seconds & "/" & song_duration_minutes & ¬
        ":" & song_duration_seconds
else
    return ""
end if

它將顯示 "1:43/3:31"

歌曲持續時間以毫秒為單位返回,因此要獲取分鐘,您首先需要除以 1000 來獲取秒,然後除以minutes獲得分鐘。對於秒,它將給出秒的小數部分,因此我添加div 1將其轉換為 int (整數,無小數)。player position是在幾秒鐘內,所以更容易。

相關內容