Einfacher geht es so:
Delphi-Quellcode:
function TfrmMain.DurationMinSec(Sekunden : Integer) : String;
begin
Result := TimeToStr(Sekunden / SecsPerDay);
end;
Man kann mit einer einfachen Divison durch SecsPerDay einen Wert von Sekunden in ein TDateTime umwandeln.
Oder wenn GetMediaLength gleich ein TDateTime zurückgeben soll:
Delphi-Quellcode:
function GetMediaLength(const AFileName: WideString): TDateTime;
var
MediaDet: IMediaDet;
hr: HResult;
Tmp: Double;
begin
hr := CoCreateInstance(CLSID_MediaDet, nil, CLSCTX_INPROC_SERVER,
IID_IMediaDet, MediaDet);
if Succeeded(hr) then
begin
MediaDet.put_Filename(AFilename);
if Succeeded(MediaDet.get_StreamLength(Tmp)) then
Tmp := Tmp / SecsPerDay
else
Tmp := 0;
end
else
Tmp := 0;
Result := Tmp;
MediaDet := nil;
end;
Da -1 von TimeToStr in 1 Sekunde umgewandelt wird, ist es besser im Fehlerfall 0 zurückzugeben.