Ich hab doch schon in dem anderen Thread geschrieben, dass das nicht geht. Weder per Script noch in mAirList selbst.
ich weiß sry, aber ich dachte es geht vl per script…aber danke
Was im Script geht, geht auch direkt in mAirList.
Ergo: Was nicht in mAirList geht, geht auch nicht per Script.
aso… ok, danke!
Mal wieder was anderes
Ich benötige ein Script mit dem ich einen Streamserver (z.B. Icecast2) ansprechen kann. Ich kenne auch das mAirList-Java Tool, und es funktioniert super Aber ich möchte gerne den ONAIR Status abfragen, da es immer mitlaufen soll.
Die Funktion soll folgendermaßen aussehen:
- PlayerX startet
- Status des ONAIR- /OFFAIR Zustandes abfragen.
- Blacklisteinträge werden geprüft (Jingle, Bett, etc…)
- Abfrage: Artist und Titel
- senden der http-Anfrage an den Webserver.
- Beim beenden des Auto-Modus, bei Stop sowie OFFAIR-Modus oder schliessen von mAirList wird der http-String mit einem dafür vorgegebenen Text abgeschickt.
Optional: - Abfragen des Dateinamens der geladenen Cartwall-Vorlage und suche nach einem Wort im Dateinamen. Ist das Wort enthalten wird beim stoppen der Playlist ein vorgegebener http-String abgesendet.
Beispiel-String der http-Anfrage: (im Browser mit den korrekten Daten getestet)
http://user:pass@webserver:8000/admin/metadata.xsl?mode=updinfo&mount=/96&song=GetArtist%20-%20GetTitel
Wobei GetArtist und GetTitel den aktuellen Artist und Titel aus dem Player einfügen soll
(http-Zeichenersetzung durch %20, %28, %2C, %29, etc… falls nötig)
Keine Leichte Aufgabe, aber ist sowas möglich mit mAirList-Scripting? Bin leider ein Noob bei den Scripten.
Wäre euch für Hilfe sehr dankbar
Gruss
Polli
Hat keiner eine Idee oder eine Teillösung?
Bis auf die Ermittlung der Cartwall-Vorlage sollte das kein Problem sein. Ist nur etwas Frickelei, für dich ich gerade keine Zeit habe. Vielleicht ist ja jemand anders so nett und greift dir unter die Arme.
Die Abfrage des Dateinamens war auch nur eine Überlegung. Damit wollte ich die Darstellung der aktuellen Sendung auf der Webseite bewirken. Ist aber nicht so wichtig.
Leider bekomme ich das mit dem Scripten nicht selbst gelöst.
Wenn sich dem jemand annehmen möchte wäre ich sehr dankbar.
Vielen Dank für eure Hilfe
Gruss
Olli
hi polli,
ich kann dir evtl bisschen helfen…
hast du icq? dann können wir uns da mal über die feinheitren unterhalten…
adde mich einfach mal… nummer steht unten…
grüße, michi
hi torben,
ich hab mir das gerade mal angeschaut und festgestellt, dass es keine notification-funktion gibt, die auslöst, wenn man vom auto-betrieb auf assist wechselt bzw anders rum…
wäre es möglich, dass du es einbaust? (oder hab ich da was übersehen;))
grüße, michi
ich hab mir das gerade mal angeschaut und festgestellt, dass es keine notification-funktion gibt, die auslöst, wenn man vom auto-betrieb auf assist wechselt bzw anders rum...
Danke, wollte ich auch demnächst vorschlagen.
Michel
Kriegen wir hin …
Hi,
Hier mal ein erstes Resultat
[code]{-------------------------------------------------------------------------------
Stand: mai 2007, Michael Schäl
in Zeile 4 einfach and “(pos(‘Wort’, Item.GetArtist) =0)” hinzufügen für weitere Blacklisteinträge.
-------------------------------------------------------------------------------}
procedure OnPlayerStart(PlayerControl: IPlayerControl; Item: IPlaylistItem);
begin
if(Engine.GetOnAir) then begin // ON/OFFair prüfung
if (pos(‘Jingle’, Item.GetArtist) = 0) and (pos(‘Bett’, Item.GetArtist) =0) then begin //einfach zB ‘Jingle’ ersetzen
HTTPGet(‘http://user:pass@webserver:8000/admin/metadata.xsl?mode=updinfo&mount=/96&song=’ + Item.GetArtist +’ - ’ + Item.GetTitle);
end;
end;
end;
procedure OnOffAir;
begin
HTTPGet(‘http://user:pass@webserver:8000/admin/metadata.xsl?mode=updinfo&mount=/96&song=Radio Jade’);
end;
procedure OnShutdown;
begin
HTTPGet(‘http://user:pass@webserver:8000/admin/metadata.xsl?mode=updinfo&mount=/96&song=Radio Jade’);
end;
procedure OnPlayerStop(PlayerControl: IPlayerControl; Item: IPlaylistItem; Duration: int64);
var i: Integer;
play : Boolean;
begin
play := false;
for i := 0 to CurrentPlaybackControl.GetPlayerCount - 1 do begin
if (CurrentPlaybackControl.GetPlayer(i).GetState = PS_PLAYING) then
play:= true;
end;
if (play = false) then
HTTPGet(‘http://user:pass@webserver:8000/admin/metadata.xsl?mode=updinfo&mount=/96&song=Radio Jade’);
end;
begin
end.
[/code]
Die %20 etc einträge kannst dir sparen, das macht mairlist automatisch;)
ansonsten konnte ich die http anfragen nicht testen…
schau mal, obs das ist, was du brauchst… bei fragen, weisst ja wie mich erreichst
grüße, michi
Hi
Das Script funktioniert mit IceCast2.
Danke flashlighter
Gruss
Polli
Namdle,
isch hab da mal ne Frage ^^
Folgendes, ihr kennt doch sicherlich vom SAM den Auto Mode, wenn man den laufen hat, dass er sich per Zufall irgendwelche Songs aus der DB nimmt. Ist sowas möglich für mAirList zu gestalten?
Ich habe im Moment, zwei Datenbanken als eldoDB laufen. Einmal eine DB mit dem Image ausm Radiosender & eine DB mit privaten Musikzeug. Ist das irgendwie möglich?
hi,
soweit ich das durchblicke, kann man nicht einzelne Songs aus der db laden, sondern nur ganze playlists…
grüße, michi
Doch, mit IDatabase.CreatePlaylistItem kannst du auch einzelne Items laden, vorausgesetzt, du kennst ihre DatabaseID (Spalte idx in der songs-Tabelle).
Aber keine Panik, bald kommt mAirListDB, und dann gibt’s endlich wieder vernünftiges, einfaches Scheduling
ihr kennt doch sicherlich vom SAM den Auto Mode, wenn man den laufen hat, dass er sich per Zufall irgendwelche Songs aus der DB nimmt. Ist sowas möglich für mAirList zu gestalten?
mit IDatabase.CreatePlaylistItem kannst du auch einzelne Items laden, vorausgesetzt, du kennst ihre DatabaseID (Spalte idx in der songs-Tabelle).
ist es also möglich, sowas zu skripten? oder hat es vielleicht schon jemand getan? ist nämlich genau das, wonach ich suche.
fange gerade erst an, mich mit der skript-funktionalität zu befassen …
hi,
eventuell schon…
Torben, bei mir werfen sich gerade noch folgende unklarheiten auf…
function CreatePlaylistItem ( iID : integer ; iSubID : integer ; iData1 : integer ; iData2 : integer ) : IPlaylistItem
iID ist die idx in der Songtabelle? und SubID, Data1/2 ??
- kann ich die absolute menge der sich in der Datenbank befindenden Songs abfragen?
vielleicht mit der Funktion “GetCount” in der IDatabaseList? wenn ja, wie kann ich die ansteuern?
wenn nr.2 nicht geht, dann wirds etwas unflexibel, da man dann eine absolute zahl im Script angeben muss, und somit nix an der DB verändern darf(keine neuen songs zufügen)
ausserdem, wie verhält sich die DB bei gelöschten songs? habe ich dann eine lücke in der spalte idx? gibt mir die funktion CreatePlaylistItem dann null zurück?
alternativ müsstet ihr halt auf die mairlistDB warten
grüße, michi
Bei der eldoDB braucht man nur die iID, das entspricht dem Feld idx der Tabelle songs. Die anderen Parameter auf Null lassen.
Du hast aber recht, man muss die verwendeten IDs kennen, die kriegen beim Löschen auch “Löcher”, und man hat keine Möglichkeit, von mAirListScript dranzukommen.
Ich glaube, auf mAirListDB warten ist realistischer. Wenngleich auch die sich an dem Grundsatz orientieren wird, dass Musiklisten im Vorhinein geplant und dann nur noch abgespielt werden. Also nix von wegen Zufallfunktion. Das entspricht einfach nicht der Vorgehensweise eines Radios.