Hallo,
ich brauch mal wieder eure Hilfe, folgendes vorhaben steht an.
Ich will mit mAirList Zeitgesteuerte Sendungen (Fertige aufgezeichnete Sendungen) Starten, das wäre auch nicht das Problem denn den Start der Automation und das Verbinden mit dem Encoder funktioniert soweit auch ohne Probleme.
Nun haben wir aber folgende Situation, die Sendung soll von 21 bis 22 Uhr gespielt werden davor ist aber noch ein Moderator auf dem Stream der auch wenige Sekunden Überzieht, somit würde das Encoder Verbinden in einem Error hinauslaufen, was an sich hier auch noch kein Problem ist da der Encoder ja immer wieder versucht eine Verbindung herzustellen.
Nun kommt aber mein großes Problem, kann ich mairlist irgendwie anweisen die Wiedergabe auch erst dann zu starten, wenn der Encoder eindeutig die Rückmeldung Verbunden ausgibt?
Ansonsten würde ja der Anfang der Sendung (Nachrichten) fehlen und das wäre ehr nicht so optimal.
Die eingesetzte Version wäre in dem Fall eine mAirList Home Studio auf Windows 10
Ich würde mich freuen, wenn ihr Ideen habt, und mir hier evtl. weiterhelfen könntet.
Liebe Grüße
Jann
Starte nicht die Sendung direkt, sondern mittels RUNSCRIPT C:\Pfad\zum\Skript.mls
ein Skript mit etwa diesem Inhalt
begin
if (Encoder.GetConnections.GetItem(0).GetState = ecsConnected) then
ExecuteCommand('PLAYER 1-1 START');
end.
Ja, ich weiß, dazu muß die Sendung auf Player A liegen, das mußt Du eben sicherstellen, das war jetzt ganz auf die schnelle.
Pünktliche Grüße
TSD
Danke für die schnelle Rückmeldung, der Lösungsansatz ist schonmal perfekt und eigentlich genau das was ich suche. Leider ist nach der einmaligen Ausführung das Script ja durch, hier müsste jetzt eine Lösung her das sich das Script solange im 5 oder 10 Sekunden Takt wiederholt bis der Encoder wirklich die Verbindung hergestellt hat.
Gruß Jann
Hallo Jann,
wie gesagt, das war ein Schnellschuß. Ich werde mir, sowie ich Zeit finde, noch ein paar Gedanken dazu machen. Habe schon eine grundsätzliche Idee.
Aufgeschobene Grüße
TSD
Jann,
schau mal, ob das so funktioniert:
procedure OnLoad;
begin
EnableTimer(5000);
end;
procedure OnTimer;
begin
ExecuteCommand('ENCODER CONNECT');
if Encoder.GetConnections.GetItem(0).GetState = ecsConnected then begin
ExecuteCommand('PLAYER 1-1 START');
DisableTimer;
end;
end;
begin
end.
Verbundene Grüße
TSD
Moin, leider meldet mairlist sich hier mit dem folgenden Fehler:
[Error] (5:3): Unknown identifier ‘EnableTimer’
Gruß Jann
Gut, dann so:
begin
repeat
ExecuteCommand('ENCODER CONNECT');
Sleep(5000);
until
Encoder.GetConnections.GetItem(0).GetState = ecsConnected;
ExecuteCommand('PLAYER 1-1 START');
end.
Geänderte Grüße
TSD
Dankeschön genau das hab ich gesucht es Funktioniert.
Da kommt mir aber gerade noch eine weitere Sache in den sinn auch wenn Sie hier vielleicht nicht ganz passt.
Kann man evtl. auf den gleichen weg auch mit einem Script den Stream Status prüfen lassen?
Ich stelle mir hier folgendes vor.
Encoder Verbunden = Keine Aktion
Encoder Error = Encoder Disconnect und Autiomationswiedergabe Stoppen. Das würde dann eintreffen, wenn ein Moderator den Stream eben übernommen hat
Gruß Jann
Yep, das geht so ähnlich wie hier beschrieben.
Kopierte Grüße
TSD
Vorschlag zum Skript:
Statt
PLAYER 1-1 START
empfehle ich
PLAYLIST 1 NEXT
Begründung:
Damit ist gewährleistet, dass stets der Player startet, der im Playerstate NEXT
steht. Ich muss mich also nicht mehr explizit auf einen Player festlegen.
Dann noch ein ganz klein wenig Raffinesse:
Angenommen, ich möchte parallel meine Sendung mitschneiden. Dazu benutze ich den Encoder “Aufzeichnung in Datei” an zweiter Stelle.
In diesem Fall rufe ich nicht ENCODER CONNECT
auf, denn das würde alle fünf Sekunden die lokale Aufzeichnung starten.
Statt dessen nutze ich ENCODER CONNECTION 1 ON
(vorausgesetzt, meine Live-Verbindung steht an erster Stelle im Encoder).
Ist die Verbindung dann erstmal hergestellt, lasse ich den zweiten Encoder (die lokale Aufzeichnung) automatisch starten und bin synchron.
Abschalten kann ich zum Sendeschluss beide dann über den Playlist-Befehl ENCODER DISCONNECT
.
Zusammenfassung, basierend auf der Idee von @Tondose.
begin
repeat
ExecuteCommand('ENCODER CONNECTION 1 ON');
Sleep(5000);
until
Encoder.GetConnections.GetItem(0).GetState = ecsConnected;
ExecuteCommand('ENCODER CONNECTION 2 ON');
ExecuteCommand('PLAYLIST 1 NEXT');
end.
1 Like
Interessanter Punkt. Könnte ich das quasi auch als Hotkey 2x definieren? Damit ich auf dem Pult, egal welchen der zwei Kanäle ich drücke immer der gespielt wird, der als nächstes kommt?
Verzeihung, aber was genau bitte meinst du mit “Kanal drücken”?