テストコードは次のとおりです。
tell application "Spotify"
set playerState to player state as string
end tell
display dialog playerState
AppleScript エディタからは問題なく動作します。ただし、スクリプトをアプリとしてエクスポートすると、次のようになります。
なぜこうなった?
テストコードは次のとおりです。
tell application "Spotify"
set playerState to player state as string
end tell
display dialog playerState
AppleScript エディタからは問題なく動作します。ただし、スクリプトをアプリとしてエクスポートすると、次のようになります。
なぜこうなった?
Spotify は定数を文字列に強制していないようです。AppleScript Editor でスクリプトを実行している場合のように、エディタはアプレットから強制できないため、4 文字の定数コードが返されます。プレーヤーの状態の値を文字列としてテストすることはできないため、定数自体に対してテストしてみてください。
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
プレーヤーの状態を取得するには、このコードを使用することをお勧めします。正確な定数値を知る必要はありません。OS X 10.13 で動作
tell application "Spotify"
if player state is playing then
display dialog "Player running"
else if player state is paused then
display dialog "Player paused"
else if player is stopped then
display dialog "Player is stopped"
else
display dialog "Unknow state"
end if
end tell