I’ve made a workflow that plays back a batch of movies sequentially (Ask for Finder items → Play Movies), but the video freezes upon entering presentation mode (which you can’t switch off). However, the sound plays, and they do run sequentially OK.
This script I found on AutomatorWorld works when playing a single file, but I can’t find any way of adapting it to work in my batch workflow:
on run {input, parameters}
– activate Finder as a goofy hack to prevent QuickTime Player from freezing when beginning full screen presentation
tell application “Finder” to activate
tell application “QuickTime Player”
present front movie
end tell
return input
end run
Is there any way to adapt this so it corrects each play in batch mode?
From what I understand, you want a batch of movies to play sequentially. What a mess “Play movies” is from Apple!!! I looked at the script and of the hundred or so lines, only about 10 are needed to achieve this. Sometimes I wonder if they add code just to rub ego.
Anyway, how do you want “present” the files to the script: drop a selection of files, drop a folder of files, select a folder of files? Do you want to change any movie parameters- Open the movies to center of screen, dimensions, presentation mode, etc.?
SC
I saw that you were working with full screen;
Playing a movie full screen in Quicktime is choppy for me (video sometimes freezes), while applications like BTV Pro play full screen just fine. Apple doesn’t help with scripts like Play Movies. They use a repeat loop with a delay to check if the current movie is done playing every 3 seconds. Problem is Quicktime does this routine while playing the movie. They also have the commands
Which is like saying Play, Play and causes a skip at the beginning of each movie, setting them off track each time they begin. One final note, Play Movies also had QT ‘launch’ each time it opened a movie in the sequence. This only needs to be done at the start of the script:
set MovieFolder to choose folder
--Coerce the list of ITEMS to an alias list. Quicktime prefers an alias reference.
tell application "Finder" to set theMovies to files of MovieFolder as alias list
tell application "QuickTime Player" to launch
repeat with ThisMovie in theMovies
tell application "QuickTime Player"
open ThisMovie
present ThisMovie scale screen
try
repeat
if done of movie 1 is true then
exit repeat
else
delay 3
end if
end repeat
close movie 1
end try
end tell
end repeat