ein Playlistelement ohne Audio kann zwar Befehle ausführen, wird aber nicht geloggt. (Jedenfalls habe ich es nicht geschafft.) Ich komme wegen dieser Anfrage darauf.
Das führt mich zur Frage, ob es einen Befehl gibt, Logeinträge vorzunehmen, bzw. ob Du einen solchen schaffen könntest.
Doch, dazu gibt es einen Haken in der Options-Liste der Playlist. Heißt auf Englisch “Include non-playable items in logging”; deutsche Übersetzung habe ich gerade nicht parat.
Als Befehl stelle ich mir das schwierig vor, da ja nicht ein einzelner String übergeben wird sondern in der Regel ein komplettes PlaylistItem-Objekt mit allen Metadaten, aus denen sich die Log-Interfaces dann die gewünschten Informationen rauspicken.
Per Script geht das jetzt schon, etwa so:
var
item: IPlaylistItem;
begin
item := Factory.CreateDummyPlaylistItem;
item.SetTitle('blabla');
item.SetArtist('blup');
Instance.GetLogger.StartLog(item, 0, '');
end.
Die beiden Parameter 0 und '' sind die Region, auf der das imaginäre Element wiedergegeben wird (0 = nicht regionalisiert) sowie die ID der Soundkarte (wird intern vom Encoder dafür genutzt, Logeinträge der Player auf den normalen Soundkarten zu unterdrücken, wenn der “High Priority”-Eingang aktiv ist - kannst du einfach leer lassen).
Die Funktion liefert eine Interface-Referenz vom Typ ILoggingTicket zurück. Die kann man theoretisch in einer Variable ablegen und irgendwann auf nil setzen - in dem Moment wird dann automatisch der zugehörige Stop-Logging-Eintrag ausgelöst. Verzichtet man darauf, wie im obigen Beispiel, dann wird der Stop-Eintrag sofort ausgelöst.