这是一个测试代码:

tell application "Spotify"
    set playerState to player state as string
end tell
display dialog playerState


从AppleScript编辑器可以正常工作。但是,当我将脚本导出为应用程序时,我得到的只是:


为什么会这样呢?

最佳答案

看来Spotify没有将常量强制转换为字符串。由于编辑器无法像在AppleScript Editor中运行脚本时那样从applet强制它,因此将返回四个字母的常量代码。由于您不能将播放器状态的值测试为字符串,因此请尝试根据常量本身对其进行测试。

property spotPause : «constant ****kPSp»
property spotPlay : «constant ****kPSP»

tell application "Spotify" to set playerState to player state

if playerState = spotPause then
    display dialog "paused"
else if playerState = spotPlay then
    display dialog "playing"
end if

09-04 19:42