Automatisch Notplayliste laden - in die Hose gegangen

Hallo Torben und Co.

Ich habe ein (kleines) Problem.
Bei uns im Sender läuft die Version 1.5.40 sehr gut und stabil.
Mit dem Eventsteuerung lade ich immer zur vollen Stunde (nur im Automodus)
das Script autoplaylist.mls

Darin steht:

begin CurrentPlaylist.LOad('Y:\Verzeichnisse\mAirList\playlists\' + FormatDateTime('YYYY-MM-DD-HH', now) + '.mlp'); CurrentPlaylist.AutomationNext; end.

Klappt super. Ist eine Playliste vorhanden, z.B. 2006-11-21-00.mlp wird sie um 0 Uhr am 21.11.2006 geladen. Tagsüber im Livebetrieb passiert nichts, da nur im Automodus aktiv. Ist im Automodus keine vorhanden, lädt mAirList über das Script PlaylistEmpty.mls eine Notplayliste der vollen Stunde.

Inhalt:

[code]
var n: INotification;
pl: IPlaylist;

begin
// fetch notification data
n := GetNotification;

if (n.GetNotificationType = ntMask) then
// we want to be notified when players start or stop
SetNotificationTypes([ntPlaylistEmpty])
else
if (n.GetNotificationType = ntPlaylistEmpty) then begin
SystemLog(‘Playlist empty’);
// Interface(0) contains a reference to the playlist
pl := IPlaylist(n.GetInterface(0));
pl.Append(‘Y:\Verzeichnisse\mAirList\playlists\Notplaylisten\Notplayliste-’ + FormatDateTime(‘HH’, now) + ‘-Uhr.mlp’);
end;
end.[/code]

Also z.B. Notplayliste-00-Uhr.mlp

Funktioniert auch problemlos, wenn mAirList bereits läuft.
Klappt seit Wochen einwandfrei.

Dummerweise war am Sonntag die Sendung um 23.00 Uhr auf MD vorproduziert, genau 60.0 Min. lang. Der diensthabende Techniker startete die Sendung um 23.00 Uhr, stellte mAirList auf Auto, Fader ON und ging nach Hause. Dummerweise gab es keine
2006-11-20-00.mlp (nur in der Datenbank, nicht in mAirList), das Script PlaylistEmpty.mls half da nicht weiter. Zum Glück schlug dann die Sendeausfallsteuerung (Havarie-Recorder) an.

Nun endlich meine Frage:
Wie ändere ich am sinnigsten mein Script, damit das nicht noch einmal passieren kann?

Danke im voraus.

Das lässt sich relativ leicht bewerkstelligen. Zunächst: Ich verwende hier mal die neuen Methoden-Namen; seit 1.5.41 heißt es ja “LoadFromFile” statt “Load”, und man muss noch sagen, ob die Playlist angehängt werden soll oder nicht (hier im Beispiel: false). Das Prinzip ist aber auch bei der alten Syntax dasselbe.

Die Funktion LoadFromFile “schmeißt” eine sogenannte Exception, wenn beim Laden entwas schiefgelaufen ist. Diese kann man mit den Befehlen “try…except…end” abfangen und behandeln. Das folgende Beispiel zeigt, wie das erfolgreiche Laden überprüft wird, und wenn etwas schiefläuft, eine feste Havarie-Playlist geladen wird:

begin try CurrentPlaylist.LoadFromFile('Y:\Verzeichnisse\mAirList\playlists\' + FormatDateTime('YYYY-MM-DD-HH', now), false); except CurrentPlaylist.LoadFromFile('Y:\Verzeichnisse\mAirList\playlists\Notplaylisten\Notplayliste-' + FormatDateTime('HH', now) + '-Uhr.mlp', false); end; end.

Torben

Klasse, vielen Dank für die ausführliche Info :slight_smile: