[code]begin
if (CurrentPlaylist.GetCount<=1) then begin
HTTPGet(‘http://localhost/music/go.php’)
CurrentPlaylist.LoadFromFile(‘C:\Program Files\Apache Software Foundation\Apache2.2\htdocs\music\playlist.m3u’ ,false);
CurrentPlaybackControl.SetAutomation(true);
CurrentPlaybackControl.AutomationPlay;
end;
end.
[/code]
bei der Mairlist version 2.0.11 geht.
Aber bei der Version 2.1.42 geht es nicht.
Ich bekomme immer folgenden Fehler:
The following errors occured during initialization:
Error loading C:\Program Files\mAirList\playlist.mls: [Error] (4:119): Invalid number of Parameters
Kann mir jemand helfen und vieleicht das Script anpassen?
Den “iAppend”-Parameter bei LoadFromFile gibt es nicht mehr, das “false” kannst du also streichen. Außerdem fehlt hinter dem HTTPGet-Aufruf ein Semikolon, oder?
Edit:Es liegt wohl an dieser ZeileCurrentPlaylist.LoadFromFile('C:\Program Files\Apache Software Foundation\Apache2.2\htdocs\music\playlist.m3u'); wenn ich die rausnehme gehts aber an dem Playlist file liegt es nicht weil der windows media player sie abspielt.
Einfach mit der von 2.1.42 austauschen. Außerdem findest du dort eine Datei namens “mAirList.map”, die ebenfalls herunterladen und ins mAirList-Verzeichnis kopieren.
Danach sollte die Fehlermeldung noch detaillierter sein, mit Angaben der Source-Code-Zeilen. Poste die dann bitte nochmal hier.
Du lässt das Script beim Programmstart automatisch ausführen, ja? Das Problem ist offenbar, dass die GUI zu dem Zeitpunkt noch nicht komplett initialisiert ist.
Ich habe mal etwas herumgebastelt und einen neuen Snapshot hochgeladen, Build 481. Schau doch mal bitte, ob es damit besser geht.
Ich schreib jetzt nochmal in diesen Thread weil es eher passt.
Unzwar jetzt scheint alles zu gehen aber die if abfrage scheint nur beim start zu gehen wenn es nurnoch ein Titel oder weniger ist wird sie nicht ausgeführt.
if (CurrentPlaylist.GetCount<=1) then begin ......
Notification Scripts werden nicht ständig ausgeführt, sondern nur zu bestimmten Zeitpunkten aufgerufen, die über die Prozeduren in dem Script definiert sind. Vermutlich hast du die jetzigen Befehle in der OnStartup-Routine stehen. Die wird nur beim Programmstart ausgeführt.
Für Überprüfungen, die regelmäßig stattfinden sollen, eignet sich OnTimer. Such mal im Forum, irgendwo ist erklärt, wie man den benutzt.
Ansonsten stell doch mal dein komplettes Script hier rein, damit wir einen besseren Überblick haben
[code]begin
if (CurrentPlaylist.GetCount<=1) then begin
HTTPGet(‘http://localhost/music/go.php’);
CurrentPlaylist.LoadFromFile(‘C:\Program Files\Apache Software Foundation\Apache2.2\htdocs\music\playlist.m3u’ );
CurrentPlaybackControl.SetAutomation(true);
CurrentPlaybackControl.AutomationPlay;
Jo wird es.
Das Script soll dann immer wenn nurnoch ein Titel in der Playlist ist einmal die URL aufrufen und dann wieder die neue Playlist hineinladen.
Schau mal in das scripts-Verzeichnis, da gibt es ein Template für Benachrichtigungs-Scripts. Darin findest du eine Reihe von Prozeduren, die mAirList in verschiedenen Situationen aufruft. Zum Beispiel “OnStartup” beim Programmstart, “OnPlayerStart” wenn ein Player gestartet wird usw.
Nimm also mal diese Vorlage und verschieb deinen Code in die OnStartup-Prozedur. Das Hauptprogramm (zwischen dem letzten “begin” und “end.”) sollte leer bleiben (das wird zwar auch beim Programmstart ausgeführt, aber zu einem fragwürdigen Zeitpunkt, wie der von dir gemeldete Fehler zeigt g). Nicht benötigte Prozeduren kannst du einfach löschen.