50257


applescriptを使ってQuickTime Playerでの再生・停止を制御したいと考えています．  
具体的には，ムービーファイルを開き，再生を開始したい時刻と停止したい時刻（もしくは再生秒数）を取得し，その時刻情報で再生・停止する（そしてその範囲でループできるとなおよい）スクリプトを書こうとしています．

以下のように書いてみたのですが，停止の制御の仕方がわかりません．

[code]

    display dialog "set file location:" default answer ""
    set fileName to text returned of result as string
    display dialog "set start time (seconds):" default answer ""
    set startTime to text returned of result as integer
    display dialog "set end time(seconds):" default answer ""
    set endTime to text returned of result as integer
    -- display dialog "set duration(seconds):" default answer ""
    -- set playTime to text returned of result as integer
    
    tell application "QuickTime Player"
        activate
        set tDoc to open fileName
        tell tDoc
            set the presenting to true
            set the looping to true
            play
        end tell
    end tell
    
[/code]

上記のコードは見よう見まねで書いたものなので，`tDoc`の意味もわかっていません．  
どうぞご回答をいただけますと幸いです．


CC BY-SA 4.0
2018-11-12T13:11:34.017
50251
2018-11-12T13:57:28.263
23018
question
applescript
applescriptを使ってQuickTime Playerでムービーの再生・停止を制御したい


こんなスクリプトでいかがでしょうか？  
最初のファイルロケーションは確認しておらず、開かれたドキュメントに対してループさせるところまで作ってみました。  
つまり、`set tDoc to open fileName`の所を、事前にファイルを開いた`QuickTimePlayer`に対し、`set tDoc
to document 1`で代用してしまいました。

ちなみに、`tDoc`は、開かれたドキュメントオブジェクトを保存する、自分で設定した変数名ですね。`startTime`や`endTime`と同じです

[code]

    display dialog "set file location:" default answer ""
    set fileName to text returned of result as string
    display dialog "set start time (seconds):" default answer ""
    set startTime to text returned of result as integer
    display dialog "set end time(seconds):" default answer ""
    set endTime to text returned of result as integer
    -- display dialog "set duration(seconds):" default answer ""
    -- set playTime to text returned of result as integer
    display dialog "set loop count" default answer 1
    set loopCount to text returned of result as integer
    
    tell application "QuickTime Player"
        activate
        set tDoc to open fileName
        tell tDoc
            repeat while (loopCount > 0)
                set the presenting to true
                set the looping to true
                set current time to startTime
                play
                repeat while (current time < endTime)
                    delay 1
                end repeat
                set loopCount to (loopCount - 1)
            end repeat
            stop
        end tell
        close tDoc
    end tell
    
[/code]


CC BY-SA 4.0
2018-11-12T13:57:28.263
50257
2018-11-12T13:57:28.263
14745
50251
answer