0

我正在尝试一次全屏播放电影,然后以可编程方式关闭播放器。我尝试过使用 QTMovieView、命令行和 AppleScript,发现 Applescript 是最简单的方法。

但是,因为我真的不知道 Applescript,所以我不能在电影播放后让 QuickTime 自动关闭。

一切正常,但重复行中无法识别“完成”。这是出现此错误的脚本:

错误“QuickTime Player 出现错误:无法将文档 1 转换为类型说明符。” 从文档 1 的完成到说明符的数字 -1700

tell application "QuickTime Player"
  activate
  open "/Users/...real path of the movie.mov"
  present document 1
  play document 1

  repeat until (get done of document 1)
  end repeat

  delay 2
  close document 1
end tell

最后我改成这样了,这样可以吗?

tell application "QuickTime Player"
    quit
end tell
tell application "QuickTime Player"
    activate
    open "/Users/.../...mov"
    tell document 1
        present
        play
        repeat until playing is false
        end repeat
        delay 2
        close
    end tell
    quit
end tell 

新问题:视频结束前应用挂起。

4

2 回答 2

2

这对我有用,但它似乎不是很健壮。鉴于它们都是实数,是否可以保证current timewill 始终等于 the ?duration您可能希望在repeat条件中加入一些“在 epsilon 内”的逻辑。

tell application "QuickTime Player"
    play document 1
    repeat until (current time of document 1 = duration of document 1)

    end repeat
    delay 2
    close document 1
end tell
于 2012-05-23T22:51:46.743 回答
0

尝试:

tell application "QuickTime Player"
    tell document 1
        present
        play
        repeat until playing is false
            delay 1
        end repeat
    end tell
quit
end tell
于 2012-05-24T01:33:05.043 回答