Laufzeit von Playern über Serielle Schnittstelle ausgeben - SOLVED!

Hallo Forum,

ich baue gerade eine Studio-Uhr, die die Laufzeit der Player anzeigt.
Ich habe 2 Playlisten von denen aber nur die 1. relevant ist.

Die Zeit soll von beiden Playern angezeigt werden und vom aktiven
runterzählen genauso wie im Studio.

Für das Anzeigen der Zeit, wenn der Player nicht läuft habe ich folgenden Code verwendet:


procedure OnPlayerStateChange(PlaylistIndex: integer; PlayerIndex: integer; OldState: TPlayerState; NewState: TPlayerState; Item: IPlaylistItem);
	begin
		if (PlayerIndex = 0) and (PlaylistIndex = 0) then begin
			Case Newstate Of	
						psLoaded:   begin
									ComPort('COM2').SendStr(' Loaded Player A' + #13#10);
									ComPort('COM2').SendStr(Item.GetArtist + ' - ' + Item.GetTitle + ' ' + FormatDateTime('hh:mm:ss', (Item.GetDuration/10000000)/(24*60*60)));
									end;
			end;
		end;

		if (PlayerIndex = 1) and (PlaylistIndex = 0) then begin
					Case Newstate Of			
						psLoaded:   begin
									ComPort('COM2').SendStr(' Loaded Player B' + #13#10);
									ComPort('COM2').SendStr(Item.GetArtist + ' - ' + Item.GetTitle);						
								end;
						end;
	end;

Und für das Spielen ansich starte ich einen Timer mit folgendem Code


procedure OnTimer;
var
  i: integer;
  pi: IPlaylistItem;
begin
  pi:=CurrentPlaylist.GetItem(0);
	ComPort('COM2').SendStr('RESET1' + #13#10);
	ComPort('COM2').SendStr(('   ' + FormatDateTime('hh:mm:ss', (pi.GetDuration/10000000)/(24*60*60))));	
  
end;

Aber egal, was ich probiere es wird immer 00:00:00 ausgegeben. Was mache ich falsch?

Danke für eure Hilfe,
Michael

Hallo Zusammen,

ich habe die Lösung gefunden.

Die Division durch 10000000 ist nicht mehr notwendig:

procedure OnPlayerLoad(PlaylistIndex: integer; PlayerIndex: integer; Item: IPlaylistItem);
begin
	ComPort('COM2').SendStr(Item.GetArtist + ' - ' + Item.GetTitle + ' ' + FormatDateTime('hh:mm:ss', (Item.GetDuration)/(24*60*60)));
end;

Funktioniert jetzt einwandfrei.