Aktuelle Spielzeit vom Titel in .txt

Hallöchen, ich würde gerne mal wissen ob dies Funktioniert… das man die abgelaufende Titel Spielzeit in ein .txt speichern kann die sich auch dann jede Sek. aktualisiert. Gibt es sowas als Skript für Mairlist? Version 6 habe ich.

Jetzt ja:

const
  PFAD  = 'C:\path\to\file\';
  DATEI = 'Spieldauer.txt';

var 
  pi:  IPlaylistItem;
  sl:  IStrings;
  src: IAudioSource;
  
procedure WriteText(Text: string);
begin
  sl := Factory.CreateStrings;
  sl.Add(Text);
  sl.SaveToFile(PFAD + DATEI);
end;

procedure OnTimer;
begin
  src := CurrentPlaylist.GetPlayer(CurrentPlaylist.GetPlayerOfItem(pi)).
    GetSource;
  if src <> nil then
    WriteText(FormatDateTime('nn:ss', src.GetPosition / 86400));
end;

procedure OnPlayerStart(PlaylistIndex: integer; PlayerIndex: integer; 
  Item: IPlaylistItem);
begin
  pi := Item;
  EnableTimer(1000);
end;

procedure OnPlayerStop(PlaylistIndex: integer; PlayerIndex: integer; 
  Duration: TTimeValue; Item: IPlaylistItem);
begin
  if Item = pi then
    DisableTimer;
end;

begin
end.

3 Likes

Dankeschön, wie kann man das mit der abgelaufende Zeit machen? das ist ja jetzt er Zählt hoch :slight_smile:

Ach so, hab ich übersehen. Kommt.

Ich danke dir für die Hilfe! :slight_smile:

Zum Abwärtszählen ersetze den entsprechenden Abschnitt durch:

procedure OnTimer;
begin
  src := CurrentPlaylist.GetPlayer(CurrentPlaylist.GetPlayerOfItem(pi)).
    GetSource;
  if src <> nil then
    WriteText(FormatDateTime('nn:ss', (pi.GetEffectivePlaybackDuration - 
    src.GetPosition) / 86400));
end;

Du weißt aber schon, daß jede Sekunde die Datei überschrieben wird und Du entsprechend Probleme beim Zugriff bekommen könntest. Nur mal so der Vollständigkeit halber.

Darf man fragen, was mit dem Vorhaben erreicht werden soll?

Ich probiere es einfach aus. Danke dir

Ich möchte dies in OBS mit einbinden.

1 Like

Klappt einwandfrei, keine Probleme.

1 Like