定期的にiTunesを監視することで、スクリプトだけで再生の横取りができそうです。
1.iTunesを定期的に監視して再生状態を取得する
2.iTunesで再生している曲ファイルのパスを取得
3.Voxに取得したパスを渡して再生させる
4.iTunesの再生を止める
この方法では曲が再生されるのを感知して横取りするので、数秒のタイムラグがあります。
曲が数秒流れるので、iTunesの音量を絞っておくといいかもしれません。
以下のスクリプトを「実行後、自動的に終了しない」をオンにして常駐アプリケーションとして使用します。
--
on idle
--iTunesが起動していないときはスクリプトを終了する
tell application "System Events"
set AppName to (name of every application process whose visible is true) as string
end tell
if AppName does not contain "iTunes" then
quit of me
end if
-- iTunesが再生中の場合に曲のパスを取得してVoxに渡す
tell application "iTunes"
if player state is playing then
set this_track_alias to location of current track
--set played count of current track to (played count of current track) + 1
tell application "Vox"
open this_track_alias
end tell
pause
end if
end tell
return 10
end idle
--
通常はiTunesのUIに直接AppleScriptを結びつけることはできないので、
AppleScriptメニューなり、ランチャーソフトなりから起動する必要があります。
この場合はタイムラグはありません。
--直接実行の場合は選択した曲を横取りする
on run
tell application "iTunes"
set file_List to the selection of browser window 1
repeat with this_track in file_List
set this_track_alias to location of this_track
end repeat
tell application "Vox"
open this_track_alias
end tell
end tell
end run
お礼
回答有難うございます。 やってみて分かったのですが、単にVoxでファイルを開くだけではいろいろ不便ですね。 大変勉強になりました。