Wenn man das wirklich an allen Playern und Carts vorbei machen will, ist es leider nicht ganz trivial.
Am besten nutzt man ein Hintergrundscript wie das folgende, das einen neuen Befehl “HINZTRILLER” definiert, den man dann überall (Fernsteuerung, Aktion, …) verwenden kann:
const
FILENAME = 'Z:\tmp\hinztriller.mp3';
DEVICE = 'Encoder';
var
Source: IAudioSource;
procedure OnExecuteCommand(Command: string);
var
fpi: IFilePlaylistItem;
dev: IPlaybackDevice;
begin
if Command = 'HINZTRILLER' then begin
fpi := Instance.GetFactory.CreateFilePlaylistItem(FILENAME, []);
dev := IPlaybackDevice(Instance.GetPlaybackDevices.FindByID(DEVICE));
Source := fpi.BuildSource(dev, nil);
Source.Start;
end;
end;
Die Schwierigkeit an der Sache ist, dass der AudioSource “am Leben gelassen” werden muss, bis das File zuende gespielt hat. Andererseits soll das Script auch nicht solange warten - bei langen Elementen wäre das blöd, wenn mAirList dann so lange hängt. Daher hier die Lösung mit dem Hintergrund-Script, das den Source als globale Variable verwaltet.