10 Sekunden Stille nach Script-Fehler

Hallo zusammen,

ich bekomme mit der neusten 7.3.4 Snapshot Build 5642 (bzw davor schon) gelegentlich Stille nach meinem Ad-Trigger. Das sieht im Systemprotokoll irgendwie so aus:

14.05.2024 11:44:57	Playlist	Stop: D:\Musik\Instance1\Live\02 - Lose Control.mp3 (209 seconds)
14.05.2024 11:44:57	Playlist	Start: D:\Musik\Instance1\Live\START_AD_BREAK.mp3
14.05.2024 11:44:57	Information	START_AD_BREAK gefunden. Bearbeite Cue-Punkte...
14.05.2024 11:44:57	Fehler	    Runtime error "Argument out of range" in background script D:\mAirList\START_AD_BREAK-FIX.mls, handling message: MSG_PLAYERCONTROL_START 514583895E82FBB4 00 00000000 00000000 ?
14.05.2024 11:44:58	Playlist	Stop: D:\Musik\Instance1\Live\START_AD_BREAK.mp3 (1 seconds)
14.05.2024 11:45:07	Warnung	    Fehler beim Abrufen der Hörer-Statistik: Socket Error # 11002
14.05.2024 11:45:07	Playlist	Start: D:\Musik\Instance1\Live\01 - Die schönsten Tage.mp3
14.05.2024 17:42:41	Playlist	Stop: D:\Musik\Instance1\Live\01 - (It Goes Like) Nanana (Edit).mp3 (230 seconds)
14.05.2024 17:42:41	Playlist	Start: D:\Musik\Instance1\Live\START_AD_BREAK.mp3
14.05.2024 17:42:41	Information	START_AD_BREAK gefunden. Bearbeite Cue-Punkte...
14.05.2024 17:42:41	Fehler	    Runtime error "Argument out of range" in background script D:\mAirList\START_AD_BREAK-FIX.mls, handling message: MSG_PLAYERCONTROL_START 514583895E82FBB4 00 00000000 00000000 ?
14.05.2024 17:42:42	Playlist	Stop: D:\Musik\Instance1\Live\START_AD_BREAK.mp3 (1 seconds)
14.05.2024 17:42:43	Warnung	    Fehler beim Abrufen der Hörer-Statistik: Socket Error # 11002
14.05.2024 17:42:49	Playlist	Start: D:\Musik\Instance1\Live\in_your_eyes_-28feat._alida-29.mp3

Man beachte hier, dass die START_AD_BREAK.mp3 jeweils nur eine Sekunde läuft und auch nur laufen sollte. Warum mAirList dort unregelmäßig allerdings sich selbst nochmal Pause “gönnt” ist fraglich.

Das START_AD_BREAK-FIX.mls Script habe ich vom lieben @ssnoopy und sieht wie folgt aus:

const

VERSION='0.1.10';
SCRIPTNAME='Laut.FM START_AD_BREAK-FIX';

procedure OnLoad;
begin
	SystemLog('START_AD_BREAK-FIX (script) loaded');
end;

procedure OnPlayerStart(PlaylistIndex: integer; PlayerIndex: integer; Item: IPlaylistItem);
var
	i: integer;
	current_item: IPlaylistItem;
	prev_item: IPlaylistItem;
	playlist_count:integer;
	titel:string;
begin
		playlist_count:=	CurrentPlaylist.GetCount;
		for i := 0 to CurrentPlaylist.GetCount - 1 do
		begin
			current_item:=CurrentPlaylist.GetItem(i);
			titel:=current_item.GetTitle;
			if (titel='START_AD_BREAK') then begin
				SystemLog(titel + ' gefunden. Bearbeite Cue-Punkte...');
				prev_item:=CurrentPlaylist.GetItem(i-1);
				prev_item.SetCuePosition(ptFadeOut, 0);
			end;
		end;
end;

begin
end.

Vielleicht hält hier das Script den START_AD_BREAK irgendwie auf weiter zu gehen? Deaktiviert habe ich es noch nicht, da mir das Script den Fade-Out-Punkt bei den Songs vor dem START_AD_BREAK entfernt, damit die Werbung nicht im Song anfängt.

Aber wie bereits erwähnt: Nicht jede Stunde. Sehr unregelmäßig.
Mitkriegen tue ich das, weil ich die Stille-Erkennung für diese Instanz drin habe:

image

Besten Dank für jegliche Antworten…

Ich vermute mal, das an dieser Stelle i=0 ist.
Und dann gibt es den Fehler.
Bin jetzt leider unterwegs und kann das daher nicht fixen.
Eigentlich wollte ich die Funktion dann ausführen, wenn ein Titel ins Playout geladen wird.

Aber da gibt es wohl keinen Event für.

1 Like

Wieder einmal ein Anlaß für mich, eine Prozedur wie OnPlaylistInsert zu wünschen.

@ssnoopy: Ich behelfe mir so, daß ich die Playlist mittels Timer alle fünf Sekunden oder so (reicht ja) abgrase. Damit sich der Rechenaufwand in Grenzen hält, bekommt beim ersten Anfassen der jeweilige Titel eine Marke, damit nur jeweils neu eingefügte Titel behandelt werden.

2 Likes

Und das Äquivalent dazu: ‘OnPlaylistDelete’. :wink:

Dann hätte man eine Möglichkeit immer genau die aktuelle Playlist abfragen zu können ( bei ‘OnPlaylistInsert’ und bei ‘OnPlaylistDelete’).
Das ist derzeit wirklich nur mit sehr viel Mühe und Aufwand möglich.

z.b. wenn ich im Automations-Modus bin, zum Zeitpunkt des Starts eines Player die aktuelle Playlist haben möchte.
Derzeit bekommt man dann auch den Titel, der gerade den status ‘Fadeout’ hat. Obwohl der 2 Sekunden später schon nicht mehr interessant ist.
Siehe dazu auch
Problem bei ‘OnPlayerStop’ und ‘IPlaylistItem’ - Deutsch / German / Scripts - mAirList Community Forum

Hat eben alles damit zu tun, zum Zeitpunkt x die aktuelle Playlist zu erhalten.