Ja, da “Alte OnAIR Script” schwirrte mir auch im Kopf rum.
Das haben wir ja dank @Tondose noch ordentlich aufgebohrt, letzte Version galube ich hier: Ansteuerung des OnAirScreen
Das sollte ja nicht so schwierig sein, hinter den jeweiligen Encoder auch noch die Hörerzahlen zu schreiben. Mit dem Variablen Ansatz den ich da verfolgt habe, müsste man den reinen Zähler, ebenfalls als eigenes Bildschirmobjekt laufen lassen. Wenn Dich die einzelnen Encoder nicht interessieren, kann man das natürlich auch hardcoded machen und die Zahl von Deinem Counter, hinter den Einspeisestream schreiben.
SiSoSnooP fragt ja die Laut.fm API ab und hängt die an einen statischen Text.
procedure OnPlayerStart(PlaylistIndex: integer; PlayerIndex: integer; Item: IPlaylistItem);
var
stream_1: string;
begin
stream_1 := HTTPGet('http://api.laut.fm/station/DEINE_STATION/listeners');
ExecuteCommand('LAUTFMSTATUS TEXT Hörer: '+ stream_1);
end;
begin
end.
Das verknüpft mit Deinem Ursprünglichen Script, müsst ungefähr so aussehen:
procedure OnLoad;
begin
EnableTimer(100);
end;
procedure OnTimer;
begin
if (Encoder.GetConnections.GetItem(0).GetState = ecsConnected) then begin
ExecuteCommand('ONAIRPRG TEXT ON-AIR Hörer: ' + IntToStr(Encoder.GetConnections.GetItem(i).GetListeners));
ExecuteCommand('ONAIRPRG BACKGROUNDCOLOR #FF0000');
ExecuteCommand('ONAIRPRG FONTCOLOR #FFFFFF');
end
else if (Encoder.GetConnections.GetItem(0).GetState = ecsConnecting) then begin
ExecuteCommand('ONAIRPRG TEXT !OFF AIR!');
ExecuteCommand('ONAIRPRG FONTCOLOR #FFFFFF');
ExecuteCommand('ONAIRPRG BACKGROUNDCOLOR #FF0000');
Sleep(1000);
end
else begin
ExecuteCommand('ONAIRPRG BACKGROUNDCOLOR #00FF00');
ExecuteCommand('ONAIRPRG FONTCOLOR #000000');
ExecuteCommand('ONAIRPRG TEXT KEINE SENDUNG!');
end;
end;
begin
end.
Wobei ich jetzt mal angenommen habe, das der Hörerzähler direkt als 2. Encoder eingetragen ist.
Copy & Paste, ungetestet.
EDIT nach ein paar Tests, müsste es so sein, Code Block noch mal geändert.