¿Cómo puedo mostrar el tiempo restante de una canción de Spotify en mi Touch Bar?

¿Cómo puedo mostrar el tiempo restante de una canción de Spotify en mi Touch Bar?

Actualmente, estoy usando BetterTouchTool (BTT) para automatizar tareas. Quería hacer un guión que mostrara el tiempo que le queda a una canción (en formato MM:SS) como una etiqueta en mi Touch Bar.

Esto es lo que intenté hacer para lograr este objetivo (tenga configurado un botón para activar este script):

si la aplicación "Spotify" se está ejecutando, dígale a la aplicación "Spotify" que regrese (duración de la pista actual) - (posición del jugador) finalice dígale a los demás que regrese "" finalice si

No me está dando el resultado que esperaba. ¿Alguien sabe cómo arreglarlo?

Respuesta1

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

return ""

Sin embargo, en mi sistema,Spotifyinforma incorrectamente la duración de la pista en AppleScript.

Información del sistema: Versión de AppleScript:2.7 Versión del sistema:10.13.6

Respuesta2

Esto es lo que funcionó para mí:

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

Se mostrará "1:43/3:31"

La duración de la canción se devuelve en milisegundos, por lo que para obtener minutos primero debes dividir por 1000 para obtener segundos y luego dividir por minutespara obtener minutos. Para los segundos, dará fracciones de segundo, así que agregué div 1para convertirlo a un int (número entero, sin fracciones). player positionEs en segundos, por lo que es más fácil.

información relacionada