それマグで!

知識はカップより、マグでゆっくり頂きます。 takuya_1stのブログ

習慣に早くから配慮した者は、 おそらく人生の実りも大きい。

iTunesで再生・停止 ( JavaScript for OSX )

JavaScript でのオートメーション化です。

スクリーンショット 2014-12-13 1.51.42

iTunes の再生と停止です。(基本

今回は、iTunesで音楽を扱うやつです。

再生

var app = Application("iTunes")
app.play()

停止

var app = Application("iTunes")
app.stop()

一時停止と、2秒後に再開

var app = Application("iTunes")
app.pause()
delay(2)
app.play()

一時停止と再開はトグルを使うほうが楽

var app = Application("iTunes")
app.play()
app.playpause()
delay(1)
app.playpause()
delay(1)
app.playpause()
delay(1)
app.playpause()
delay(1)
app.playpause()

再生などコマンドは、どのオブジェクトでも出来る

プレイリスト、曲、ビデオなど、どのオブジェクトでも、指定した物を再生できる。

たとえば、全部の曲を再生したいときは、ライブラリという全曲が入ったプレイリストを指定する。

var app = Application("iTunes")
app.playlists["ライブラリ"].play()

指定したプレイリストを再生する。

"My Top Rated" というプレイリストを選ぶ

var app = Application("iTunes")
app.playlists["My Top Rated"].play()

プレイリストは、最近は初期表示で見えなくなっててツライ(なんで隠しちゃうんだろうな) スマートプレイリストとか最強なのにな。

指定したトラックを再生する

ライブラリのすべての曲から、タイトルを指定して、再生する。

var app = Application("iTunes")
app.playlists["ライブラリ"].tracks["ねこみみスイッチ"].play()

リピート再生、シャフル再生

プレイリストで、リピートとか、シャッフル再生。

コレが出来ずに苦しんだ。 iTunes 11 以降はプレイリスト単位でのシャッフル指定が除外されてて(便利なのに!)iTunes全体でシャッフル指定するようになっていた。しかし、その設定が、Automation にリストアップされていない。

だったら、もう、スクリプトでリピートすればいいじゃんね

というわけで、指定した曲を延々と繰り返す、

リピート再生

var track = app.playlists["ライブラリ"].tracks["ねこみみスイッチ"]
var time = track.duration()
while( true ){
  track.play()
  delay(track.duration())
}

JavaScript だからさくっと書けるね。

SystemEvent UIから、取得して、トグルをしようと思ったけど、今回のテーマから外れるのでパス(来週書きます)

シャッフル再生

do {
  num = Math.floor( Math.random() * ( app.playlists["ライブラリ"].tracks.length - 1 ) ) + 1
   track = app.playlists["ライブラリ"].tracks[num]
  delay(track.duration())
} while( true )

シャッフル再生も無理やり作れそうですね。

現在の再生秒数を出す。

var app = Application("iTunes")
app.play()
app. playerPosition()

現在の再生している音楽を出す。

var app = Application("iTunes")
app.play()
app.currentTrack().name()

とりあえず今日はここまで。

今日は再生、停止などの例を通して、itunesを操作しました。

iTunesのような、イメージしやすいアプリで、スクリプトを作って、基本構文を確認・練習して考え方に慣れていければ、学習サイクルがいいと思います。

JavaScript for Automation の記事一覧はこちら

Javascrript for OSX Automation アドベントカレンダー - それマグで!