Quicktimeaufnahme mit AS programmieren

bergkamp10

bergkamp10

Aktives Mitglied
Thread Starter
Dabei seit
18.11.2003
Beiträge
301
Reaktionspunkte
19
Ahoi zusammen,

Ich möchte mit Quicktime was aufnehmen und zwar soll Qt zum Zeitpunkt x starten und dann 2 Stunden aufnehmen.
Von Applescript hab ich leider keine Ahnung, mein bisheriger Code scheitert daran, dass "delay" nicht mit großen Zahlen klar zu kommen scheint :(:

Code:
tell application "QuickTime Player"
	activate
	delay 500
	new audio recording
	start first recording
	delay 7200
	stop first recording
end tell
Hat von euch Profis einer 'ne Idee, wie ich meinen Plan umsetzen kann? :confused:

gruß,
bergkamp
 
vl aufteilen 1 script dass die aufnahme startet und ein weiters dass die aufnahme beendet.

beide werden von einem ical event getriggert.


is aber mehr ein workaround
 
Viel zu umständlich :D.

Das "Problem" hat weniger was mit delay an sich zu tun sondern damit, dass AS für alle Kommandos/Events einen Timeout hat.
Den kann man aber hochsetzen. Außerdem brauchst Du die Anzahl der Sekunden nicht selbst ausrechnen ;)

Code:
with timeout 3 * hours seconds
  tell application "QuickTime Player"
    activate
    delay (8 * minutes)
    new audio recording
    start first recording
    delay (2 * hours )
    stop first recording
  end tell
end timeout

HTH
Gruß
maceis
 
Zuletzt bearbeitet:
Oder ganz ohne delay indem man einen on idle Handler benutzt, der alle x Minuten überprüft wie spät es ist und nach x Stunden die Aufnahme beendet:

PHP:
global scriptStart
global onAir

on idle
	if ((current date) >= (scriptStart + 8 * minutes) and (onAir = false)) then
		set scriptStart to (current date)
		set onAir to true
		tell application "QuickTime Player"
			activate
			set newMovie to make new document
			set aufnahme to (new audio recording)
			tell document 1 to start
		end tell
	else if ((current date) >= (scriptStart + 2 * hours) and (onAir = true)) then
		set onAir to false
		tell document 1 of application "QuickTime Player" to stop
		quit
	end if
	return 60
end idle

on run
	set scriptStart to (current date)
	set onAir to false
end run

Das Skript als Application speichern und "Stay open" checken.

Good scripting
Farid
 
Oh, vielen Dank.

Ich werde die Codebeispiele mal testen. Eine Frage hätte ich aber noch, wie kann ich die Aufnahme zu einer bestimmten Zeit, z.B. 23:00h, starten lassen?
Geht das so:
Code:
if ((current date) == (23:00)

gruß & dank,
bergkamp10
 
Nein, geht aus verschiedenen Gründen so nicht.
Das merkst Du spätestens dann, wenn Du versuchst, das Skript zu kompilieren ;).
Zeitgesteuerte Ausführung von Skripten, kannst Du z.B. mit iCal realisieren.
 
iCal - na da hätte ich ja auch selber drauf kommen können. :rolleyes:

@chebfarid:
Wenn ich dein Skript starte, passiert leider gar nix, außer dass ein Fenster erscheint, mit dem ich das Programm mit "Run" starte :(
Kann man diese "Run"-Abfrage auch weglassen und das Skript gleich mit Doppelklick starten lassen? Sonst wüßte ich nicht, wie man es mit iCal startet.

@maceis:
Dein Skript kann ich nicht speichern. Da kommt immer folgende Fehlermeldung:
Es wurde „„second“ oder Klassenname“ erwartet, aber ein „Zeilenende“ wurde gefunden.


Was mach ich falsch? :kopfkratz:

gruß & dank,
bergkamp
 
Hab das "seconds" vergessen.
Ist oben korrigiert.
 
Kann man diese "Run"-Abfrage auch weglassen und das Skript gleich mit Doppelklick starten lassen?
Im Speicherdialog gibt es eine Option "Show Splash Screen" oder ähnlich, die mußt Du deaktivieren.

Ciao
Farid
 
Ahoi mal wieder,

hatte jetzt das Skript im Einsatz und es hat sich tadellos bewährt. Vielen Dank für eure Hilfe! :cake:

Aber eine letzte Frage hätte ich noch:
Kann man per AS in Quicktime auch festlegen in welcher Qualität die Aufnahme erfolgen soll, oder muß das immer vorher in den QT-Preferences eingestellt werden?

gruß & dank,
bergkamp
 
Zurück
Oben Unten