Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
Marcello •->

Anmeldedatum: 21.02.2001 Beiträge: 2
|
Verfasst am: 21.02.2001 - 15:18 Titel: Lösungsansatz für FM Pro 5 und QuickTime |
|
|
Hallo,
eines vorweg, ich bin blutiger Anfänger sowohl als FileMaker Pro 5-User, wie auch als AppleScripter.
Mein Problem ist folgendes:
Ich möchte aus meiner FM-Datenbank heraus unterschiedliche Soundfiles mit dem QuickTime MoviePlayer starten. Meine Datenbank besitzt unter anderem die Felder "CD Name" und "Track Nr". Der jeweilige Ordner, in welchem die Soundfiles einer CD liegen, ist so benannt wie der Inhalt des Feldes "CD Name". Ebenso sind die einzelnen Soundfiles benannt wie der Inhalt des Feldes "Track Nr".
Bisher kann ich ein bestimmtes, fest vorgegebenes Soundfile folgendermaßen aufrufen.
-FileMaker-Skript
-Befehl: AppleScript ausführen
-ScriptText:
tell application "Finder"
activate
select file "Track X" of folder "irgendein CD Name" of folder .... of startup disk
open selection
end tell
Nach Aufruf des FileMaker-Skripts startet der MoviePlayer mit dem fest vorgegebenen Titel "Track X" aus dem Verzeichnis "irgendein CD Name". Ich möchte aber den Titel des aktuellen Datensatzes starten. Also die Informationen der Felder "Cd Name" und "Track Nr" des aktuellen Datensatzes als Referenz verwenden.
Ein ähnliches Ergebnis erreiche ich wenn ich ein FileMakerSkript mit folgenden Befehlen gestalte.
-Gehe zu Feld ("ein Medienfeld")
-Film einsetzen ("Track X")
Auch hier kann ich nicht automatisiert ein Soundfile meines aktuellen Datensatzes aufrufen. Allerdings erscheint die MoviePlayer-Abspiel-Leiste direkt in meinem Layout, was wünschenswert wäre.
Ich wäre sehr froh wenn mir jemand weiter helfen könnte. Vielleicht liege ich mit meinem Lösungsansatz ja völlig falsch und ein Anderer ist notwendig. Vielleicht mit dem FM-Script-Befehl Apple Event senden. Aber auch da komme ich nicht wirklich weiter. Irgendwie muß ich den Inhalt meiner Felder in einen Scriptbefehl einbauen und da weiß ich nicht wie es zu bewerkstelligen ist.
Gruß Marcel |
|
Nach oben |
|
 |
Folker •---->


Anmeldedatum: 11.12.2000 Beiträge: 649 Wohnort: Holsteinische Schweiz
|
Verfasst am: 24.02.2001 - 21:00 Titel: Lösungsansatz für FM Pro 5 und QuickTime |
|
|
Hallo Marcel,
wenn
>select file "Track X" of folder "irgendein CD Name" of folder .... of startup disk
arbeitet ist es gut, ich habe bis heute weder den Movie Player noch irgendein anderes Soundprogramm (Sound Jam u.ä.) gescriptet aber FMP Ö
Erstmal machst Du Dir weniger Arbeit wenn ganze Ordner (Strukturen?) via AppleScript eingelesen werden: siehe Script 1.
Wie Du aus resultierenden Feldern einen Dateiverweis erzeugst zeigt Script 2
Wahrscheinlich würde ich prüfen, ob dieser resultierende Dateiverweis nicht direkt in einem Programm ala Sound Jam umgesetzt werden kann (im Background ohne 'tell app "Zielapp" to activate').
Mediendaten direkt in FMP speichern ist mir bisher nur mit Vorschau-Pict Resourcen gelungen - ich kann Dir nicht sagen ob und wie das geht, von Copy/Paste mal abgesehen. Die Dateien werden dann natürlich groß und langsamer. Gespeicherte Verweise (ob mit oder ohne Medienfeld) sparen Speicherplatz.
Meine Empfehlung: Nur die Teile des Datei-Pfades speichern und mit dem daraus resultierendem Dateiverweis ein Zielprogramm füttern.
Folgende Scripte demonstrieren die Vorgehensweise (Packt das Forum solche Text-Mengen??)
Gruß, Folker
-FileMaker-Skript Dateinamen einlesen
-Befehl: AppleScript ausführen
--script 1; Daten einlesen
property my_types : {"TIFF", "PICT", "MooV"} -- hier die entsprechenden file types angeben, wie gesagt Musik habe ich noch nicht getestet
set theFolder to (choose folder with prompt "Ordner wählen:") as string
Datei_einlesen(theFolder)
on Datei_einlesen(theFolder)
set folderItems to (list folder (theFolder as alias) without invisibles)
--durch aufspalten in Teilpfade kann schnell auf Änderung der Ordnerstruktur reagiert werden!
set folderlist to get_items(theFolder, ":") --":" is folder, für file = ""
repeat with i in folderItems
set fInfo to (info for ((folderlist as string) & contents of i))
if folder of fInfo then
Datei_einlesen((folderlist as string) & contents of i & ":")
else
if file type of fInfo is in my_types and not alias of fInfo then
--benötigte Felder (11): Disk, Teilpfad, Ordner, Dateiname, ¨
--Erzeuger, Dateityp, Dateigroesse, ErstelltDatumText, ErstelltZeitText, Medienfeld Typ Medien!!, Fehlertext
--Datum und Zeitfeld müssen v. Typ Text sein! Datum * Zeit kann dann ja durch aus in FMP via Formel ermittelt werden
-- oder wir stellen ein gültiges Format ein:
-- mit dem Zeifeld ist es i.d.R. (Formateinstellung FMP!) problemlos
set myData to folderlist & {contents of i} & ¨
{file creator of fInfo, file type of fInfo, size of fInfo, get_datum(creation date of fInfo), time string of creation date of fInfo}
tell application "FileMaker Pro"
set x to (create new record at end with data myData)
try
--hier wird nur ein Verweis auf die Datei gespeichert
--für QT-Movies wird nur ein Vorschau-Pict dargestellt (ohne Movieplayer-Funktion)
--für Ton-Daten Fehler??? Ich weiß es nicht
set cell 10 of x to file ("" & (folderlist as string) & contents of i) --OPTIONAL, nicht unbedingt notwendig
on error errmsg number num
beep
set cell "Fehlertext" of x to errmsg & return & num as string
end try
end tell
end if
end if
end repeat
end Datei_einlesen
on get_items(myPath, VSign)
try
set {oldDelims, AppleScript's text item delimiters} to {AppleScript's text item delimiters, {""}}
-- wenn VSign = "" dann ist myPath ein file, sonst Ordner!
if VSign = ":" then set myPath to text items 1 thru -2 of myPath as string
set AppleScript's text item delimiters to {":"}
set x to count text items of myPath
if x > 2 then
--langer Pfad
set {var1, var2, var3} to {text item 1 of myPath & ":", ((text items 2 thru -2 of myPath) as string) & ":", text item -1 of myPath & VSign}
else if x = 2 then
--kurzer Pfad
set {var1, var2, var3} to {text item 1 of myPath & ":", "", text item -1 of myPath & VSign}
else
-- 1 item kann bei files nicht passieren, nur folder
set {var1, var2, var3} to {text item 1 of myPath & VSign, "", ""} -- 1 item kann bei files nicht passieren, nur folder
end if
set AppleScript's text item delimiters to oldDelims
return {var1, var2, var3}
on error errmsg number num
set AppleScript's text item delimiters to ""
error errmsg number num
end try
end get_items
on get_datum(Wert)
copy Wert to d
set day of d to 1
copy d to f
set month of f to January
return "" & (day of Wert) & "." & (1 + (d - f + 1314900) div 2629800) & "." & ("" & year of Wert)
end get_datum
--ende script 1
--FileMaker-Skript Datei öffnen
--Befehl: AppleScript ausführen
--script 2
set theXXID to "TBB6" -- ID eines Ausweichprogs. kann auch ein 'cell' sein
try
--cell 1 thru 4 sind die Teil-Pfade & der Dateiname
set theFile to cells 1 thru 4 of current record
set theCrID to cell 5 of current record
tell application "Finder"
try
open (theFile as string as alias) using application file id theCrID
on error
-- Ausweichprogramm zum ÷ffnen falls Originalprog. nicht gefunden wird
open (theFile as string as alias) using application file id theXXID
end try
end tell
on error errmsg
activate
display dialog errmsg
end try
--ende script 2
FMP SKript Schritt "Gehe zu Datensatz letzter"
AUCH HIER GILT WIEDER:
2 Klammern } werden als ] dargestellt! _________________ Gruß,
Folker Brandt
=============================
Systemberatung · Datenbanken · Webdesign |
|
Nach oben |
|
 |
Snow Administrator


Anmeldedatum: 21.11.2000 Beiträge: 1946 Wohnort: Deiningen
|
Verfasst am: 26.02.2001 - 15:02 Titel: Lösungsansatz für FM Pro 5 und QuickTime |
|
|
Anderer Vorschlag:
sozusagen "off topic"
FileMaker only
Benutze zwei Datenbanken
1. Die bereits bestehende Datenbank mit CD-Titel, Track-Name
2. Eine Datenbank, die die jeweiligen Soundfiles in Medienfeldern enthält.
Beide Datenbanken über eine Relation verknüpfen. Dazu ein ID-Feld anlegen, in das z.B. der CD-Name als Wert eingetragen wird (Das kann ja automatisiert werden).
In der Songdatenbank definierst du das Medienfeld als Wiederholfeld (ebensoviele Wiederholungen wie in Datenbank 1 das Feld für die Songnamen)
In der Datenbank 1 platzierst du jetzt das (über Beziehung verknüpfte) Medienfeld der Songdatenbank.
Hier ebenfalls als Wiederholfeld anzeigen lassen. Beim Feldrahmen "zwischen Wiederholwerten" ankreuzen.
Das angezeigte Feld muss nicht gross sein. Du hast auf jeden Fall jetzt neben deinem Feld mit den Track-Titeln eine "Button-Leiste", nämlich das Medienfeld aus der Songdatenbank.
Die jeweiligen Songs kannst du abspielen, indem du einen Doppelklick in das entsprechende Wiederholfeld des Medienfeldes machst.
Ich habe das gerade mit ein paar MP3-Files getestet. Geht wunderbar. MP3-, bzw. AIFF-Files bringst du über "Film importieren" in die entsprechenden Wiederholfelder der Songdatenbank. (geht recht flott und könnte evtl. auch noch automatisiert werden)
Gruß _________________ Peter
-
Fischer-Bayern.de|Shadetreemicro.com |
|
Nach oben |
|
 |
Folker •---->


Anmeldedatum: 11.12.2000 Beiträge: 649 Wohnort: Holsteinische Schweiz
|
Verfasst am: 26.02.2001 - 23:54 Titel: Lösungsansatz für FM Pro 5 und QuickTime |
|
|
No Snow (oder überblicke ich da etwas nicht?),
da muß ich dir einfach widersprechen! Mal abgesehen von den Wiederholfeldern (ich nutze diese ja selbst manchmal ), die FMM-Foriker würden dich in der Luft Ö. Nein, ich glaube das ist eine Sackgasse (der Import vollständiger Dateien). ich kenne Leute die mehrere Zig GB mp3-Files erzeugt haben . FileMaker kann max. 50 Dateien gleichzeitig Ö und beweglich soll das ganze auch noch sein. Einzige Anwendung die ich sehe ist, mit "wenigen" files (CD eben) auf 'ne CD gebrannt - aber irgendwelche Flags kann ich ohne Aufwand dann nicht mehr setzen (CD = schreibgeschützt)!
Außerdem ist die Automatisierung des Einlesens eben auch ein Problem, von obiger Problematik einmal abgesehen. Über AppleScript ist das nicht so einfach machbar und FMP kann, jedenfalls ohne Plug-Ins wenig ausrichten - außer man betätigt für JEDE einzelne Datei eine Dateiauswahl-Box. Dabei stellen WHF den Overkill dar, FMP Script kann 'Gehe zu Feld -> Wiederholung x' o.ä nicht aufgrund einer Variable (ja Ö, AppleScript - aber da drehen wir uns im Kreis ).
Ich denke nach wie vor, FMP, als schlanke (schnelle) Datenbank(Datei/en) mit den notwendigsten Angaben zu Speicherort, Dateipfad, Erzeugerprogramm etc. (evtl. Vorschaubilder/Icon wenn vorhanden und gewünscht via Res-Data in Medienfeld eingesetzt! *) und via AppleScript aufgrund dieser Angaben das passende (einstellbar!) Programm steuern ist eine gute Lösung. Das die entsprechende Disk vorliegt kann ebenfalls mit AS geprüft werden - und die vorliegende FMP-Datenbank kann viele ZIGTAUSEND Files schnell + flexibel verwalten. Ich kenne QT Pro nicht, aber in Programmen wie SoundJam (demnächst iTunes?) sollte man sich doch via AS ganze Playlists basteln können und starten Ö - oder nicht fragt Folker?
@ Marcel: Im übrigen muß ich noch darauf hinweisen, dass meinem ersten Posting ein dickes Risiko mit Chance auf Datenverlust innewohnt! FileMaker 5 hat bei mir Zeitweise beim einlesen großer Verzeichnisse mit harschen Fehler 2 abstürzen reagiert. Dies tritt nur im Zusammenhang mit dem Einsetzen von Daten in Medienfelder via Dateiverweis. Dateien, die fehlerhaft sind (-39) können FMP bei dem über AppleScript automatisierten Vorgang ohne Vorwarnung zum Absturz bringen. Abgestürzte FMP-Dateien sind evtl. nicht meht zu retten!
Gruß, Folker _________________ Gruß,
Folker Brandt
=============================
Systemberatung · Datenbanken · Webdesign |
|
Nach oben |
|
 |
Marcello •->

Anmeldedatum: 21.02.2001 Beiträge: 2
|
Verfasst am: 28.02.2001 - 18:27 Titel: Lösungsansatz für FM Pro 5 und QuickTime |
|
|
Hallo Folker,
vielen Dank für Deine Tipps. Dein erstes Skript zum automatisierten Einlesen habe ich mit einem AppleScript gelöst, welches zwar umständlich und sehr lang ist, da ich jeden einzelnen Folder extra angegeben habe, aber er funktioniert. Trotzdem werde ich versuchen Deinen Vorschlag bei Zeiten für meine Anwendung umzusetzen. Dank deines zweiten Skript's bin ich jetzt in der Lage meine Soundfiles mittels Referenz auf den aktuellen Datensatz zu starten.
Allerdings ohne die Zeile
set theCrID to cell 5 of current record
Ich weiß nicht welche(r) Aufgabe bzw. Typ dieses Feld hat (ist). Versuche ich das Skript mit der Befehlszeile
set theCrID to cell 6 of current record -- cell 6 ist mein Dateiname des Soundfiles
zu starten, bekomme ich die Fehlermeldung
Finder got an error: Can't make application file id "Track X" into a item.
Aber wie gesagt ich bin noch nicht so lange dabei und muß mir noch klar machen was ein sogenanntes ID für eine Aufgabe hat.
Ich werde mich an dieser Stelle bestimmt noch ein paar mal melden, da mit absoluter Sicherheit weitere Fragen kommen werden.
Vielen Dank noch mal für Eure Mühe (auch an Snow).
Gruß Marcel |
|
Nach oben |
|
 |
|
|
Du kannst keine Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum nicht antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen.
|
Powered by phpBB © 2001, 2002 phpBB Group Deutsche Übersetzung von phpBB.de
|
|
|