• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Viele hassen ihn, manche schwören auf ihn, wir aber möchten unbedingt sehen, welche Bilder Ihr vor Eurem geistigen Auge bzw. vor der Linse Eures iPhone oder iPad sehen könnt, wenn Ihr dieses Wort hört oder lest. Macht mit und beteiligt Euch an unserem Frühjahrsputz ---> Klick

iMovie & Applescript

my_key

Jamba
Registriert
17.05.09
Beiträge
57
Da man ja anscheinend die Projekte von iMovie nicht schnell als mov speichern kann :mad::mad: (sondern exportieren muss), würde ich gerne wissen wie man mit Applescript (fertige) iMovie Projekte mit Quicktime exportiert.



Geht denn das überhaupt, ich hab bisher nämlich noch keine iMovie-applescript Befehle gesehen.

Danke schon mal im Voraus
 

CraZyChris

Horneburger Pfannkuchenapfel
Registriert
07.06.08
Beiträge
1.408
Ich empfehle dir dieses Forum: Fischer-Bayern <--- Ist ein gutes Skripterforum :)
Achja: Wenn du deine Loesung gefunden hast,- schreib die Loesung hier ein :)
 

my_key

Jamba
Registriert
17.05.09
Beiträge
57
Also ich hab mir das Scripting genauer angeschaut, und siehe da ist doch gar nicht mal so schwer :-D
Ich empfehle für die Lesbarkeit in den Skripteditor einzufügen. Hier meine getestete Lösung:


Code:
-- iMovieQuickTimeExport(integer, interger, integer, string-list)
-- 
-- Exportiert mit Quicktime eine Anzahl von Projekten in iMovie. Es sollte beachtet werden, dass
-- 1. der Speicherort gleich dem Speicherort des letzten Speichervorgangs ist.
-- 2. die Exportiereinstellungen gleich den Einstellungen des letzten Exportiervorgangs ist.
-- 3. Aufgrund des meistens dauernden Exports ein "timeout" erstellt werden sollte
-- Bsp. für gültigen Aufruf:
--
-- with timeout of 18000 seconds
--         iMovieQuickTimeExport(13, 20, 24, {"Mein 13. Projekt", "Mein 14. Projekt", null, "Im Zoo", "In Ägypten"})
-- end timeout
--
-- params
-- fromProjectCount:	Anzahl der iMovie-Projekte im aktuellen iMovie Fenster
-- toProjectCount:		Index des ersten zu exportierenden Projektes
-- projectCount:		Index des letzten zu exportierenden Projektes
-- destinationNames:	Liste mit den Ziel-Namen der Projekte. Falls die Länge dieser Liste gleich
--					0 ist, werden alle Dateien mit den Namen von den Projekten exportiert.
--					Falls vereinzelte elemente aus der Liste null ist werden die Dateien mit
--					den Namen von den Projekten exportiert
--
-- lang		AppleScript
-- author		Michael Geronimo
-- date		Wed July 29, 2009 05:22:23
-- 
on iMovieQuickTimeExport(fromProjectCount, toProjectCount, projectCount, destinationNames)
	if toProjectCount < 1 or fromProjectCount < 1 then
		error "\"fromProjectCount\" and \"toProjectCount\" must be greater or equal to 1"
	end if
	
	if toProjectCount - fromProjectCount < 0 then
		error "\"fromProjectCount\" must be greater than \"toProjectCount\""
	end if
	
	set saveWithProjectNames to true
	
	if (count of destinationNames) is equal to 0 then
		set saveWithProjectNames to false
	else
		if (count of destinationNames) is not equal to toProjectCount - fromProjectCount + 1 then
			if button returned of ¬
				(display dialog "Die Anzahl der Ziel-Namen (" & (count of destinationNames) & ¬
					") ist nicht ident mit der Anzahl der zu Exportierenden Dateien (" & ¬
					toProjectCount - fromProjectCount + 1 & ") trotzdem fortfahren?" buttons {"Nein", "Ja"} default button "Ja") ¬
					is equal to "Nein" then
				return
			end if
		end if
	end if
	
	tell application "iMovie" to activate
	
	tell application "System Events"
		keystroke "j" using command down
		key code 53
		
		repeat projectCount times
			key code 126
		end repeat
		
		repeat fromProjectCount - 1 times
			key code 125
		end repeat
		
		set ex to (process "iMovie")'s (menu bar 1)'s (menu bar item "Bereitstellen")'s (menu 1)'s (menu item "Mit QuickTime exportieren …")
		set i to fromProjectCount
		set j to 1
	end tell
	repeat while i ≤ toProjectCount
		local temp
		tell application "System Events"
			set temp to ex is enabled
		end tell
		if temp then
			tell application "iMovie" to activate
			tell application "System Events"
				keystroke "j" using command down
				key code 53
				if (i is not equal to fromProjectCount) then key code 125
				click ex
				
				if saveWithProjectNames then
					try
						keystroke destinationNames's item j & ""
					end try
				end if
				
				key code 52
				
				set j to j + 1
				set i to i + 1
			end tell
		else
			delay 5 * 60
		end if
	end repeat
end iMovieQuickTimeExport

Bei Fragen melden.

Gryße my_key