Touch Bar에 Spotify 노래의 남은 시간을 어떻게 표시합니까?

Touch Bar에 Spotify 노래의 남은 시간을 어떻게 표시합니까?

현재 저는 BetterTouchTool(BTT)을 사용하여 작업을 자동화하고 있습니다. 저는 노래가 끝난 시간(MM:SS 형식)을 내 Touch Bar에 레이블로 표시하는 스크립트를 만들고 싶었습니다.

이 목표를 달성하기 위해 제가 시도한 작업은 다음과 같습니다(이 스크립트를 트리거하도록 버튼을 설정).

"Spotify" 응용 프로그램이 실행 중이면 "Spotify" 응용 프로그램에 return(현재 트랙의 지속 시간) - (플레이어 위치) end를 알리고 else return "" end if를 알려줍니다.

내가 기대했던 결과가 나오지 않습니다. 누구든지 문제를 해결하는 방법을 알고 있나요?

답변1

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

return ""

그러나 내 시스템에서는스포티 파이AppleScript에서 트랙 재생 시간을 잘못 보고하고 있습니다.

시스템 정보: 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분을 구해야 합니다. 초 동안은 1초의 분수를 제공하므로 div 1이를 int(정수, 분수 없음)로 변환하기 위해 추가했습니다. player position초 단위이므로 더 쉽습니다.

관련 정보