Spotify 给出当前曲目的错误值(AppleScript)

Posted

技术标签:

【中文标题】Spotify 给出当前曲目的错误值(AppleScript)【英文标题】:Spotify giving wrong value of current track (AppleScript) 【发布时间】:2016-11-16 13:42:33 【问题描述】:

我目前正在尝试制作一个应用程序来获取当前歌曲在 Spotify 中播放的持续时间。为此,我使用 AppleScript。

这是我的代码:

tell application "Spotify"
    return the duration of the current track
end tell

歌曲的长度是2.52分钟,代码告诉我172026秒。

通过查看返回值,它看起来返回的是毫秒而不是轨道长度的秒。我可以通过毫秒*1000 轻松解决这个问题。问题是 172026ms 不是 2.52 分钟,而是 2.8671 分钟。

我该如何获得歌曲时长的真正价值?

这是 Spotify AppleScript 文档:

track n:Spotify 曲目。 duration (integer, r/o) : 曲目的长度,以秒为单位。

【问题讨论】:

【参考方案1】:

刚刚发现我需要做一点数学。

代码如下:

tell application "Spotify"
    set tM to round (((duration of current track) / 1000) / 60) rounding down
    set tS to round (((duration of current track) / 1000) mod 60) rounding down
    set myTime to ((tM as text) & "," & tS as text)
    return myTime
end tell

感谢 dronir 在https://github.com/dronir/SpotifyControl 提供的代码

【讨论】:

【参考方案2】:

您还可以使用以下代码读取歌曲和艺术家姓名(如果需要):

"inline": "if application \"Spotify\" is running then\rtell application \"Spotify\"\rreturn \" \" & (获取当前曲目的艺术家) & \" – \" & (获取名称当前曲目的)\rend tell\rend if\rreturn \"\"\r"

(感谢来自https://github.com/Toxblh/MTMR/blob/master/Resources/aadi_vs_anand.json 的 Toxblh)

【讨论】:

以上是关于Spotify 给出当前曲目的错误值(AppleScript)的主要内容,如果未能解决你的问题,请参考以下文章

获取Spotify当前播放的曲目

获取 Spotify 用户当前播放的曲目名称 [Web API]

Spotify + AppleScript:将当前曲目添加到播放列表

Spotify - 如何暂停曲目和恢复曲目

2015 年 3 月更新后从 Spotify 应用获取当前曲目信息

iOS:是不是真的不可能获取第三方应用程序(如 Spotify)中正在播放的当前曲目的信息?