Skript zum Abspielen einer Datei im Hintergrund

Hi Torben,

das folgende Skript ist leider von der Umstellung auf mAirList 3.0 betroffen und klappt nicht mehr. Könntest du mir helfen? Ist ja nicht so unübersichtlich wie das Next-Skript… :wink:

[code]var
pi: IPlaylistItem;

begin
pi := Factory.CreatePlaylistItemFromFile(‘Pfad zur Datei’, true);
CurrentPlaybackControl.PlayItemDetached(pi, Engine.GetCartwallControl.GetPlayerControl(0).GetOutputDevice);
end.[/code]

Ähm… Geht im Moment nicht. Der Weg, wie man an die Soundkarten kommt, hat sich etwas geändert. Der neue Mechanismus ist aber noch nicht per Scripting verfügbar. Hole ich nach.

Alles klar, danke!

Ich erlaube mir mal vorsichtig, dieses Thema von der dritten Forenseite auf die erste zurück zu holen. :wink:
[Ich fand die Funktion sehr praktisch, um z.B. den Hintz-Triller mit dem Verkehrsoutro zu verknüpfen…]

In Version 3 sieht es etwas komplizierter aus, aber wenn man das Prinzip einmal verstanden hat, ist es ganz leicht:

var
  pi: IFilePlaylistItem;
  device: IAudioDevice;

begin
  {
    Create the playlist item, thereby read MMD and mAirList file tags.

    Valid options for the second parameter are:
    fitMMD, fitTags, fitNativeTags, fitDuration, fitTilde, fitAutoCue
  }
  pi := Factory.CreateFilePlaylistItem('F:\eldoradio\jingles\Ausgang_Closer.mp3', [fitMMD, fitTags]);

  {
    Determine the audio device on which the file is to be played.

    In this example:
    - ordinary player (ptOrdinaryPlayer)
    - first playlist (0)
    - first player (0)
    - not for a specific region (-1)
    - ordinary playback, not PFL (false) 
  }
  device := Instance.GetDeviceConfig.BuildDevice(ptOrdinaryPlayer, 0, 0, -1, false);

  // play the file
  CurrentPlaybackControl.PlayItemDetached(pi, device);
end.

Das PlaylistItem wird wie gehabt über die Factory erzeugt, wobei man jetzt angeben kann, welche Informationen alle eingelesen werden sollen (MMD, Tag, Tilde, …).

Das AudioDevice erhält man über das neue “DeviceConfig”-Objekt. Dort ist zentral gespeichert, welche Soundkarte für welchen Player eingestellt ist, also im Prinzip genau das, was man jetzt im Konfigurationsprogramm auf der neuen “Audiogeräte”-Seite sieht. Mit der Methode “BuildDevice” kann man sich einen bestimmten Eintrag heraussuchen und das zugehörige IAudioDevice-Objekt erzeugen lassen. Dazu muss man fünf Parameter angeben:

  1. Die Art des Players (ptOrdinaryPlayer = normaler Player, ptCartPlayer = Cartplayer, ptPFLPlayer = der Extra-PFL-Player, ptErrorCheck = die Soundkarte für die Fehlerüberprüfung)

  2. Die Nummer der Playlist (nur bei normalen Playern, sonst -1)

  3. Die Nummer des Players (bei ptPFLPlayer und ptErrorCheck immer -1)

  4. Die Nummer der Region, oder -1 für die normale Wiedergabe

  5. Ob PFL (true) oder normale Wiedergabe (false)

PlaylistItem und AudioDevice übergibt man dann wie gehabt an die PlayItemDetached-Funktion. Das PlaybackControl-Objekt kümmert sich um die Wiedergabe und auch darum, dass am Ende aller Speicher wieder freigegeben wird.

Jepp, das klappt! Danke für die schnelle Hilfe!

nur eine frage dazu.

für was genau verwendet man das script ??

lg mike

Hast du den Titel des Threads gelesen?

ja schon. ich verstehe nur irgendwie den sinn nicht… sry

mike