Author Topic: Codebeispiele mAirListScript  (Read 29714 times)

Torben

  • Administrator
  • Doktor mAirList
  • *****
  • Posts: 11106
    • View Profile
Re: Codebeispiele mAirListScript
« Reply #315 on: April 14, 2011, 19:34:48 »
Hm, also was man derzeit machen kann ist:

- Das Logging-Format der einzelnen Verbindungen ändern.

- Den Start eines (beliebigen, auch ausgedachten) Titels simulieren und dadurch die Titelübertragung anstoßen.

Was nicht geht ist das Logging-Format nachträglich zu ändern und die Titelanzeige sofort mit dem zuletzte gestarteten Titel nochmal zu aktualisieren, denn der Encoder merkt sich den letzten Titel nicht. Könnte man aber im Zweifel einbauen.

benjaminreiter

  • Newbie
  • *
  • Posts: 50
    • MSN Messenger - benjamin_reiter@live.de
    • View Profile
    • Jugend Radio - Wir sind die Jugend
Re: Codebeispiele mAirListScript
« Reply #316 on: September 14, 2011, 13:34:30 »
Hallo Torben, hallo Community,

ich habe mich mit dem mAirList-Script noch nicht wirklich auseinandergesetzt, sondern habe einfach mal ein Script rauskopiert, dass den aktuellen Titel in einer Datei speichert. Allerdings kommt dann folgende Fehlermeldung: 'Fehler beim Laden des Benachrichtigungs-Scripts C:\Programme\mAirList 4.0\scripts\nowplaying-script.mls: [Error] (7:8): Unknown type 'INotification'. Das Script ist folgendes:

var
    pi: IPlaylistItem;
    sl: TStringList;
    pi1: IPlaylistItem;   
    pi2: IPlaylistItem;
    pi3: IPlaylistItem;
    n: INotification;
begin
  // fetch notification data
  n := GetNotification;

  if (n.GetNotificationType = ntMask) then
    // we want to be notified when players start
    SetNotificationTypes([ntPlayerStart])
  else
  if (n.GetNotificationType = ntPlayerStart) then begin
    // interface #1 contains a reference to the playlist item
    pi := IPlaylistItem(n.GetInterface(1));

   pi1 := CurrentPlaylist.GetItem(1);   
   pi2 := CurrentPlaylist.GetItem(2);
   pi3 := CurrentPlaylist.GetItem(3);

    sl := TStringList.Create;
    sl.Add('<html>');
    sl.Add('<head><title>Now Playing</title></head>');
    sl.Add('<body>');
    sl.Add('<p>Artist: ' + pi.GetArtist + ' --- Title: ' + pi.GetTitle + '</p>');
    if pi.GetTitle=pi1.GetTitle then begin
      sl.Add('<p>Artist2: ' + pi2.GetArtist + ' --- Title2: ' + pi2.GetTitle + '</p>');
      sl.Add('<p>Artist3: ' + pi3.GetArtist + ' --- Title3: ' + pi3.GetTitle + '</p>');
    end;
    if pi.GetTitle<>pi1.GetTitle then begin
      sl.Add('<p>Artist2: ' + pi1.GetArtist + ' --- Title2: ' + pi1.GetTitle + '</p>');
      sl.Add('<p>Artist3: ' + pi2.GetArtist + ' --- Title3: ' + pi2.GetTitle + '</p>');   
    end;
    sl.Add('</body>');
    sl.Add('</html>');
    sl.SaveToFile('C:\Programme\xampp\htdocs\NowPlaying.html');
    sl.Free;
  end;
end.


//Edit:
Ich benutze die Version 4.0 und den aktuellen Snapshot. Ich glaube 1173 war der oder?

Radio4Players

  • Regular
  • *
  • Posts: 269
    • ICQ Messenger - 351451686
    • View Profile
    • Radio4Players
Track aus einem bestimmten ordner (wortbeitrag) in die pls holen
« Reply #317 on: September 21, 2011, 07:10:33 »
hallo,
ich beschäftige mich gerade mit dem thema automation incl. wortbeiträge die sich täglich ändern.
nun stellt sich die frage ob man soetwas über ein script oder eine aktion machen kann.

beispiel.
playlist wird über die M4 DB playlist stundenvorlage gemacht.
nun gibt es diverse wortbeiträge in der sendung, welche an bestimmten zeiten abgerufen werden sollen.
wortbeiträge bekommen einen eigenen ordner.
ich dachte man könnte das über den dateinamen machen ?
z.b. 2011-11-03-01 für den 3.november2011 erster wortbeitrag.

geht soetwas ? wenn ja wie ?
vielen dank