Редактор сценариев Apple, предотвращающий открытие QuickTime на весь экран

#applescript #quicktime

#applescript #quicktime

Вопрос:

Я пытаюсь написать приложение с помощью редактора сценариев для запуска при запуске моего Mac, чтобы оно воспроизводило видео, а затем закрывало приложение. Но я бы предпочел, чтобы он не переходил в полноэкранный режим, что он и делал автоматически. Это то, что я пробовал до сих пор (это «подходит для экрана» в QuickTime)… есть предложения, что делать вместо этого?

 tell application "System Events" to keystroke "3" using command down
  

Ответ №1:

Вам не нужно использовать системные события для этого. Из того, что вы описываете, это видео, над которым у вас есть какой-то контроль — возможно, вы можете отредактировать его и сохранить повторно?

Я знаю, что раньше можно было установить (или отменить) флаг «полноэкранный режим» с помощью AppleScript в Quicktime Player. Это может быть даже возможно в графическом интерфейсе.

Только что проверено: свойство называется «представление», поэтому вы должны сделать что-то вроде:

 tell application "QuickTime Player"
    activate
    tell (open file "xyz.m4v")
        set the presenting to false -- disable full screen playback
        play
    end tell
end tell
  

Краткий совет: Если у вас Mac OS High Sierra или старше, вы можете установить QuickTime Player 7 сhttps://support.apple.com/kb/dl923. Это позволит вам воспроизводить десятки экзотических устаревших форматов мультимедийных файлов прошлого века, и если вы введете клавишу Pro, вы сможете вносить простые изменения в треки и временную шкалу, включая установку флага полноэкранного режима. Если вы сделаете это, сохраните видео (с новым именем). При следующем открытии этого видео оно больше не должно отображаться в полноэкранном режиме.

Заставить проигрыватель выйти после завершения видео сложнее, но, возможно, у вас есть решение для этого. Если нет, вы можете сохранить его как приложение AppleScript, настроенное на то, чтобы оставаться открытым, которое опрашивает состояние воспроизведения QuickTime Player один раз в секунду в режиме ожидания (это максимальная скорость). Когда фильм закончен, AppleScript может закрыть QuickTime Player и выйти. Полный сценарий будет выглядеть примерно так:

 tell application "QuickTime Player"
    activate
    tell (open file "Macintosh HD:Users:Laura:Movies:xyz.m4v")
        set the presenting to false -- disable full screen playback
        play
    end tell
end tell
on idle
    tell application "QuickTime Player"

        if document 1 exists then
            tell document 1
                if (not playing) and (current time > (duration - 1)) then
                    quit
                    tell me to quit -- quit the AppleScript itself
                end if
            end tell
        else -- no movie open, perhaps it failed, or got moved
            tell me to quit -- just quit the AppleScript
        end if

    return 1 -- i.e. poll once per second (maximum)
end tell