• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Was gibt es Schöneres als den Mai draußen in der Natur mit allen Sinnen zu genießen? Lasst uns teilhaben an Euren Erlebnissen und macht mit beim Thema des Monats Da blüht uns was! ---> Klick

Fehlermeldung: Die Typen der Deskriptoren passen nicht.

toc-rox

Weigelts Zinszahler (Rotfranch)
Registriert
15.11.09
Beiträge
247
Hallo an alle AppleScript/iTunes-Spezialisten,

ich habe ein Utility für iTunes geschrieben, welches eine iTunes-Playliste im XSPF-Format abspeichert. Das Utility besteht aus zwei Scripten: einem AppleScript und einem Perl-Script. Im AppleScript-Editor läuft das Utility problemlos. Es läuft jedoch nicht, wenn es über die iTunes-Toolbar aufgerufen wird. Fehlermeldung: "Die Typen der Deskriptoren passen nicht." Der Fehler tritt genau dann auf, wenn das Perl-Skript aufgerufen wird. Meine Umgebung: iTunes 9.1 unter OS X 10.6.3. Googeln war leider nicht aufschlussreich deshalb meine Frage: Was soll diese Fehlermeldung bedeuten?

Hierüber wird das Perl-Script aufgerufen:
-- run the post processing Perl script - it writes the xspf/xml playlist file
-- eg.: perl /path/iTunesMac2xspf.pl -title="Air - Moon Safari" -filename="Air - Moon Safari"
set returnvalue to do shell script "perl " & quoted form of perlscript_filepath_POSIX & " -title=" & quoted form of playlist_name & " -filename=" & quoted form of playlist_filepath_POSIX

Danke für eure Unterstützung.
 

toc-rox

Weigelts Zinszahler (Rotfranch)
Registriert
15.11.09
Beiträge
247
Das Problem tritt auf, wenn ein (über die iTunes-Toolbar aufgerufenes) Standard-AppleScript (.scpt) ein weiterverarbeitendes Perl-Skript aufruft. Ich konnte das Problem umgehen, indem ich das Utility in ein Applet umgewandelt habe - das Perl-Skript befindet sich hierbei im Application-Bundle.

Vielleicht interessant: Das Utility exportiert eine iTunes-Playliste als XSPF-Datei. Die XSPF-Playliste kann dann von einer anderen Anwendung (z.B. VLC) direkt eingelesen werden.

Danke an alle die sich zu dem oben beschriebenen Problem Gedanken gemacht haben.
 

toc-rox

Weigelts Zinszahler (Rotfranch)
Registriert
15.11.09
Beiträge
247
Ich würde mich gerne noch etwas näher mit der Problematik "A descriptor type mismatch occurred." befassen.
Meine Fragen deshalb:
- Welche Möglichkeiten bestehen, um an weitere Fehlerdetails zu kommen?
- Wohin schreiben iTunes und Applet-Ablaufcontainer ihre Meldungen?
 

toc-rox

Weigelts Zinszahler (Rotfranch)
Registriert
15.11.09
Beiträge
247
Ich konnte das iTunes-AppleScript-Problem "A descriptor type mismatch occurred." beheben:

set playlistPathFilePOSIX to get the POSIX path of (file playlistPathFile as alias) --> BUG
set playlistPathFilePOSIX to POSIX path of alias playlistPathFile --> OK

Beide Varianten funktionieren interessanterweise korrekt im AppleScript-Editor oder in einem Applet. Innerhalb von iTunes läuft das Script jedoch nicht mehr (das Applet sehr wohl).

Für das Script -über die iTunes-Toolleiste aufgerufen- ergibt sich zusätzlich eine signifikante Performanzverbesserung. Das Applet benötigt z.B. 75 Sekunden für eine Aufgabe und das Script für dieselbe Aufgabe nur noch 3 Sekunden.
 
Zuletzt bearbeitet: