AppleScriptを利用してiTunesにファイルを追加、再生、削除する

iTunes10.6.3からrb-appscriptが利用できない」の通り、rb-appscript経由でのiTunes操作が一切使えなくなっているので、その対応策としてAppleScriptを利用する必要があります。pop-zapでチャンネル変更時に、「変更後の番組情報を音声でスピーカーで出力させる」ということを実現したくて、AirPlay経由でiTunesで再生させればいいなというとこまでは考えられたので、そこから試行錯誤して次のような感じで実現できました。

tell application "iTunes"
  set added_track to add #{MacTypes::FileURL.path(File.expand_path("foo.aiff")).hfs_path)}
  play added_track with once
  delay 10
  pause
  set loc to (get location of added_track)
  delete added_track

  tell application "Finder"
    delete loc
  end tell
end tell
    

このAppleScriptを適当な名前、たとえばsound.scptで保存してAppleScriptを実行するインタープリタのosascriptで実行すればOK。

`osascript sound.scpt`

1つポイントとして、playしたあとにdelayさせてpauseさせています。これは、iTunesの再生処理が別スレッドで実行されるため、同期的に処理を行うにはdelay {再生時間}させないと、どうにもならなかったことによります。。。また、その後にpauseを明示的に実行しないと、指定のファイルを再生後に次のトラックを再生してしまったので、このような処理を行っています。もし、再生後にファイルの削除など(トリッキーなことが)必要なければ、delay, pauseは不要ですね。

しかし、AppleScriptはなかなか慣れずに苦労しました。。でも、この感じで手元で動かなくなったscriptも修正できそうです。

関連広告

Trackbacks:0

TrackBack URL for this entry
http://blog.katsuma.tv/mt-tb.cgi/246
Listed below are links to weblogs that reference
AppleScriptを利用してiTunesにファイルを追加、再生、削除する from blog.katsuma.tv

Home > AppleScript > AppleScriptを利用してiTunesにファイルを追加、再生、削除する

Search
Feeds

Return to page top