mir ist aufgefallen, dass die Playerstates empty, stop und loaded nicht in der korrekten Reihenfolge ausgelöst werden. Das geschieht so schnell, dass die durcheinander sind. Habe das auch über einen TCP abgegriffen und mit Timestamps verifiziert.
Kann man da noch was machen, damit die Playerstates dann korrekt sind?
Nein, keine Zeit gehabt mir das anzuschauen. Ich kann es mir auch nicht erklären, da die internen Nachrichten, die dann auch zu den Scripts gelangen, eigentlich immer in der richtigen Reihenfolge zugestellt werden sollten.
Kannst du mal das Script posten, mit dem du meinst den Fehler festgestellt zu haben?
mir ist aufgefallen, dass die Playerstates empty, stop und loaded nicht in der korrekten Reihenfolge ausgelöst werden. Das geschieht so schnell, dass die durcheinander sind. Habe das auch über einen TCP abgegriffen und mit Timestamps verifiziert.
Kann man da noch was machen, damit die Playerstates dann korrekt sind?
LG Julian[/quote]
das ist genau mein Problem, hinzu kam bei mir, dass im Assist Modus die gespielten Songs nicht in den Papierkorb landeten und der Player so zwischen dem Titel 30.-35 Minute an den Anfang der Playliste rutschte und den Anfang nochmal abspielte.
Wir benutzen für die Verbindung mit Midi-Geräten eine eigene Software, das Script kann ich hier leider nicht veröffentlichen. Wir haben die vom TCP eingegangenen Playerstates aber in Echtzeit abgegriffen, mit Timestamps versehen und festgestellt, dass mairlist die Playerstates nicht in der korrekten Reihenfolge sendet, sondern beispielsweise loaded, stop, empty. Die Reihenfolge veriiert immer.
function StateToString(iState: TPlayerState): string;
begin
case iState of
psEmpty: Result := 'Empty';
psLoading: Result := 'Loading';
psLoaded: Result := 'Loaded';
psPlaying: Result := 'Playing';
psFading: Result := 'Fading';
psEOF: Result := 'EOF';
psError: Result := 'Error';
psPaused: Result := 'Paused';
psStopped: Result := 'Stopped';
else
Result := IntToStr(ord(iState));
end;
end;
// Called when (playlist) player changes its state
procedure OnPlayerStateChange(PlaylistIndex: integer; PlayerIndex: integer; OldState: TPlayerState; NewState: TPlayerState; Item: IPlaylistItem);
begin
SystemLog('Player ' + IntToStr(PlayerIndex) + ' old: ' +StateToString(OldState) + ', new: ' + StateToString(NewState));
end;
…und poste dann einen Auszug aus dem Systemprotokoll von einer Situation, von der du meinst, dass die Reihenfolge nicht stimmt. (Tipp: Man kann im Systemprotokoll-Fenster Einträge markieren und mit Strg+C als Text in die Zwischenablage kopieren.)
So richtig ans Laufen bringen konnte ich das Script von dir glaube ich nicht, das Systemprotokoll hat mir aber im Automationsmodus Folgendes ausgespuckt:
24.01.2019 23:17:57 Playlist Start: D:…\Fatboy Slim - Right Here Right Now.mp3
24.01.2019 23:18:23 Playlist Start: D:…\Uncle Kracker - Follow Me.mp3
24.01.2019 23:18:25 Playlist Stop: D:…\Fatboy Slim - Right Here Right Now.mp3 (28 seconds)
Die Zeiten vom Start/Stop sind leider nicht ganz richtig
Das von mir gepostete Script als irgendwas.mls speichern und dann in der Konfiguration als Hintergrund-Script registrieren. Dann sollten die Meldungen erscheinen.
Es wird geladen, aber außer der oben genannten Playlistinformation steht leider nichts im Systemprotokoll. Lade ich das Script manuell kommt die Meldung “Error running script: [Error] (1:1): Unexpected end of file”.
ich brauche kurz jemanden, der mit das folgende Script mal bitte bei sich ausführt. Das Script ist von Torben, funktioniert bei mir aber leider nicht. Liegt es an meinem mAirList oder dem Script?
Das hier ist der Code:
function StateToString(iState: TPlayerState): string;
begin
case iState of
psEmpty: Result := 'Empty';
psLoading: Result := 'Loading';
psLoaded: Result := 'Loaded';
psPlaying: Result := 'Playing';
psFading: Result := 'Fading';
psEOF: Result := 'EOF';
psError: Result := 'Error';
psPaused: Result := 'Paused';
psStopped: Result := 'Stopped';
else
Result := IntToStr(ord(iState));
end;
end;
Das Script sollte Playerstates - also Start, Stopp, Empty und Loaded, sowohl im Assist- wie auch im Automationsmodus im Systemlog anzeigen.
Vielen Dank für deine Unterstützung!
Ja, gut möglich, dass ich den Scrollbalken nicht gesehen habe im Browser. Irgendwo in meiner Wohnung muss aber noch dieser Internetführerschein aus der 3. Klasse liegen…
Nehme ich denn dein Script als eigenständige .mls? Weil dann bekomme ich - selbst mit vollständigem Script - den o.g. Error. Habe das Script mal hochgeladen, oder fehlt da was?