QuickTime PlayerをAppleScriptで動かすときによくあるハマリ

OS X + QuickTime 7 の環境で、AppleScriptからQuickTime Player を制御していたときにハマってしまった点を列挙します。(Sept. 3 2006 更新)

ハマリその1

選択範囲の終了時刻を指定するときに
set selection start of movie moviename to startTime
set selection end of movie moviename to endTime
としているのに、なぜか選択範囲がおかしくなってしまう。

対策:
select at startTime to endTime
のように、開始時刻と終了時刻を一度に設定すれば不要なトラブルを避けることができる。

ハマリ理由:

selection startを動かすとselection endはそれにつれて相対的に動いてしまいます。また、この動きが遅れて、スクリプトの何行か先で実行されることがあります。このためselection start, selection endを別々に指定すると、指定範囲が狂ってしまうことがあります。

ハマリその2

再生スピード(rate)を指定するとき、
set rate of movie moviename to movierate
play movie moviename
としてもうまく働かない。

対策:
再生スピード(rate)を指定するときは、
set rate of movie moviename to movierate
のように、rateを指定するだけで再生が行われる(ハマリその3を参照)。
set rate of movie moviename to 1.0 は、play movie moviename と同じ効果を持つ。

あるムービーを、閉じるまでずっと同じ再生スピードで再生したい場合は、
set preferred rate of movie moviename to 0.3
のように、
preferred rate を指定する。

ハマリの理由:
rateplay movie を行なうとリセットされてpreferred rate(ムービーを開いたときのデフォルトは1.0)になる。

ハマリその3

set rate of movie
set selectiononly of movie
set looping of movie
を指定すると、勝手にmovieが再生される。

対策:
再生の直前までは
set rateofmovie to 1.0
のように、適当な変数に入れておく。
再生するときは、play は用いずに
set rate of movie to rateofmovie
とrateを設定するだけで、再生する。

set selectiononly
set looping
についても同様にする。

ハマリの理由:
set rate, set selectiononly, set loopingといった表現は
単にQuickTimeのパラメータを設定するだけでなく、ムービーの再生まで行なう。
このことを覚えておくと、スクリプトでよけいなplayの指定を省略することができる。

-> Script 目次へ