2012-05-23 1 views
0

Я пытаюсь воспроизвести фильм в полноэкранном режиме один раз, а затем закрою плеер программируемо. Я пробовал использовать QTMovieView, командную строку и AppleScript и нашел Applescript самым простым способом.Закрытие QuickTime by Applescript

НО, поскольку я действительно не знаю Applescript, я не могу заставить QuickTime автоматически закрываться после воспроизведения фильма.

Все работает нормально, но «done» не распознается в строке повтора. Вот сценарий с этой ошибкой:

Ошибка «QuickTime Player получил сообщение об ошибке: не удалось сделать документ 1 в спецификаторе типа». номер -1700 от документа документа 1 до спецификатора

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 

Новая проблема: приложение зависает перед завершением видео.

+0

Вам не нужно, чтобы выйти из приложения, прежде чем возобновить его. Вам также не нужно закрывать документ 1 перед тем, как выйти. Попробуйте отредактированную версию. – adayzdone

+0

Могу ли я переместить задержку 1 с середины на повторение конца? –

ответ

2

Это работает для меня, однако это не кажется очень надежным. Является ли гарантированным тем, что current time всегда будет равняться duration, учитывая, что они оба являются действительными? Возможно, вы захотите поместить некоторую «внутри эпсилон» в состояние repeat.

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 
+0

Спасибо, Грэм, это работает! но QuickTime Player не ушел после игры. использовать ли я близко? –

+0

Просто измените «закрыть документ 1» на «бросить». Я не понял из вопроса, что вы хотели выйти из приложения. –

0

Try:

tell application "QuickTime Player" 
    tell document 1 
     present 
     play 
     repeat until playing is false 
      delay 1 
     end repeat 
    end tell 
quit 
end tell 
+0

Спасибо adayzdone, он тоже работает! но QuickTime Player не ушел после игры. использовать ли я близко? –

+0

Попробуйте отредактированную версию. – adayzdone

+1

Если кто-то приостанавливает видео, вы хотите, чтобы приложение ушло? –