Wenn man mitten in der Sendung ist und im Hintergrund arbeitet blickt man wenig auf die Statuszeile unten, um zu bemerken das man vom Stream gefallen ist.
Das kommt ja dann und wann mal vor… und man moderiert schön ins leere.
Die kleine nicht auffäliige Fehlermeldung unten übersieht man dabei.
Schön wäre es wenn man sowas auffälliger wie z.B. wie beim runterzählen einer Ramp angezeigt bekommt, allerdings so das Funktionen nicht gesperrt sind.
Ich vermute nicht, aber manchmal fliegt man auch so aus dem Stream. Liegt vermutlich an Shoutcast-Server oder an der eigenen Verbindung, da gibt es ja mehrere Möglichkeiten.
Ich habe für sowas von einem Moderatorenkollegen ein Script bekommen, das mir durch Blinken signalisiert, wenn die Streamverbindung abgerissen ist. Ich frage diesen Mal, ob ich das zur Verfügung stellen darf.
Die Einrichtung ist allerdings nicht ganz ohne, ich würde aber eine detaillierte Anleitung dazu verfassen.
Diese Frage erübrigt sich ja wohl, genau was Scrat sagt ist gemeint.
Der Hörer bekommt davon zwar zumeist nichts mit, da ein parallel laufender Stream läüft der dann blitzschnell übernimmt, dennoch wäre es schön so etwas zu haben.
Betrachte es bitte nicht als Forderung sondern nur als Idee.
Meldung: Das Skript darf ich leider nicht zur Verfügung stellen, weil der Ersteller für die Entwicklung laut seiner Aussage kostenpflichtige Hilfe in Anspruch genommen hat und deshalb das Ergebnis der breiten mAirList-Gemeinde nicht zugänglich machen möchte.
Tut mir leid, ich hätte es euch gerne angeboten, weil es tadellos funktioniert und echt Sinn macht. Schade.
Was relativ leicht zu realisieren wäre ist ein Script, das alle x Sekunden den Status der Encoder-Verbindung(en) prüft und diese über ein Bildschirmobjekt vom Typ “Statischer Text” visualisiert, z.B. durch Änderung der Farbe von grün auf rot, sobald die Verbindung abreißt.
Etwa so (als Notification Script, nicht getest):
procedure OnLoad;
begin
EnableTimer(5000);
end;
procedure OnTimer;
begin
if Encoder.GetConnections.GetItem(0).GetState = ecsConnected then begin // alles OK
ExecuteCommand('VERBINDUNG1 TEXT Verbunden');
ExecuteCommand('VERBINDUNG1 BACKGROUNDCOLOR #00FF00');
end
else begin
ExecuteCommand('VERBINDUNG1 TEXT Getrennt');
ExecuteCommand('VERBINDUNG1 BACKGROUNDCOLOR #FF0000');
end;
end;
begin
end.
Dazu passend dann ein Bildschirmobjekt “Statischer Text” anlegen und unter “Erweitert” die Fernsteuerungs-ID “VERBINDUNG1” eintragen.
tja da hört meine Fähigkeit des Computerns leider auf. Ohne Hilfe wüßte ich das so nicht zu installieren.
Darüber hinaus wäre es natürlich das Beste, wenn die Geschichte über den OnAir/OffAir - Button relisiert werden könnte. Denn da ist ja eigentlich die On-/Offlineanzeige schon da.
Und der sollte doch den realen Zustand der Verbindung auch wirklich anzeigen oder?
Die “Installation” ist ganz einfach: Du speicherst das oben gezeigte Script unter einem beliebigen Dateinamen (Endung .mls) und registrierst es in der Konfiguration als Benachrichtigungs-Script. Außerdem legst du unter GUI -> Bildschirmobjekte ein neues Objekt vom Typ “Statischer Text” an, und unter “Erweitert” trägst du dort die Fernsteuerungs-ID VERBINDUNG1 ein. Das war schon alles.
Der ON-AIR-Schalter schaltet zunächst einmal nur den On-Air-Status der mAirList-Instanz ein- und aus. An diesen Status lassen sich jetzt verschiedene Dinge koppeln - insbesondere lässt sich das Logging darüber deaktivieren (Einstellung “Logging deaktivieren wenn off air”, standardmäßig aktiv). Zweitens kann man daran auch den Verbindungs-Status des Encoders koppeln. Soll heißen: Wenn ich auf ON AIR gehe, verbindet sich auch der Encoder. Also als ob ich auf “Verbinden” klicke.
Jetzt müssen wir allerdings etwas aufpassen, wenn wir von “dem Encoder” sprechen. Denn mAirList unterstützt ja mehrere Encoder-Verbindungen gleichzeitig. Wenn ich also “den Encoder” verbinde, heißt das zunächst nur, dass allen Verbindungen mitgeteilt wird, dass sie sich jetzt bitte aufbauen mögen. Der Zustand “Encoder verbunden” bedeutet also eher so etwas wie “alle aktiven Verbindungen sollten jetzt aufgebaut sein”. Also der Soll-Zustand. Ob sie tatsächlich verbunden sind, ist eine andere Frage.
Deswegen überprüft das o.g. Script auch explizit den Status der 1. eingetragenen Verbindung; darauf kommt es an. Hat man mehrere Verbindungen, kann man das Script entsprechend erweitern.
Es ist wichtig, der Encoder im Falle eines unerwarteten Kicks im Zustand “Verbunden” bleibt, denn nur dann wird versucht, die zusammengebrochene Verbindung automatisch wiederherzustellen. Würdest du die abgebrochene Verbindung über den On-Air-Schalter signalisieren, also mAirList off air setzen, würde das immer einen manuellen Eingriff notwendig machen.
Hallo Torben, dieser manuelle eingriff ist bei uns aber sowieso zwingend, weil wir über einen Server senden, während parallel der Hauptream im Hintergrund läuft. Im Falle eines Kikcs (wodurch auch immer) kommen wir sowieso durch die automatischen Wiederverbindungsversuche gar nicht mehr auf den Stream, sondern wir müssen über unseren Radiator wieder nach Liedende des dann aktiven Hauptstreams wieder drauf gehen.
(Wie das im einzelnen funktioniert, kann ich Dir gerne mal an anderer Stelle erläutern, würde hier zu weit führen.)
Deshalb ist eine schnelle Info, “Stream out” Knallrot blinkend, und nur im Bedarfsfalle mitten auf dem Bildschirm sichtbar natürlich die Königslösung.
Ich habe jetzt versucht, gemäß Deiner Anleitung das Script zu intallieren, bekomme auch ein leeres graues Feld angezeigt aber keine weiteren Infos wie verbunden oder getrennt.
Und das sagt mir das mAirList Systemprotokoll:
01.09.2012 18:13:42 Fehler Fehler beim Laden des Benachrichtigungs-Scripts C:\Programme\mAirList 4.1\kickanzeige.mls: [Error] (8:14): Unknown identifier ‘GETCONNECTION’
Ich bin über diese schöne Option gestolpert und wollte nun sehen in wie weit ich das für mein System umsetzen kann. Leider bekomme ich aber die folgende Fehlermeldung:
Fehler beim Ausführen der Aktion Script ausführen (D:\mAirList\Scripts\encoder_conected.mls): [Error] (3:3): Unknown identifier ‘EnableTimer’
Das Script dazu ist genaugenommen dem von Torben identisch, aber irgendwo übersehe ich wohl etwas?
[code]procedure OnLoad;
begin
EnableTimer(5000);
end;
procedure OnTimer;
begin
if Encoder.GetConnections.GetItem(1).GetState = ecsConnected then begin // alles OK
ExecuteCommand(‘AIRCHECK_TEST TEXT Aircheck’);
ExecuteCommand(‘AIRCHECK_TEST BACKGROUNDCOLOR #00FF00’);
end
else begin
ExecuteCommand(‘AIRCHECK_TEST TEXT Aircheck’);
ExecuteCommand(‘AIRCHECK_TEST BACKGROUNDCOLOR #FF0000’);
end;
end;
ich nutze das Script auch und es sieht bei mir so aus:
[code]procedure OnLoad;
begin
EnableTimer(5000);
end;
procedure OnTimer;
begin
if Encoder.GetConnections.GetItem(2).GetState = ecsConnected then begin // alles OK
ExecuteCommand(‘VERBINDUNG2 TEXT ON AIR’);
ExecuteCommand(‘VERBINDUNG2 BACKGROUNDCOLOR #006400’);
end
else begin
ExecuteCommand(‘VERBINDUNG2 TEXT OFFLINE’);
ExecuteCommand(‘VERBINDUNG2 BACKGROUNDCOLOR #8B0000’);
end;
end;
begin
end.
[/code]
Die Abweichung ist - wenn ich es richtig sehe - nur zwischen AIRCHECK_TEST (bei Dir) und VERBINDUNG2 (bei mir).
Ich weiß nicht, ob Du wirklich den Aircheck verknüpfen wolltest - bei mir ist es der 2. Encoder, der überwacht werden soll.
Und das funktioniert ohne Probleme. Und die Farben sind ja “wumpe” …