В Delphi есть компонент MediaPlayer из вкладки System ...
Загрузите в него Видео/Аудио и смотрите на его длину в MediaPlayer1.Length ...
Это самый простой способ ...
function SecInTime(Sec:Integer):String;
var
H, M, S: Integer;
Hs, Ms, Ss: String;
begin
H := sec div 3600;
M := (sec - H * 3600) div 60;
S := sec - H * 3600 - M * 60;
Hs:=IntToStr(H);
Ms:=IntToStr(M);
Ss:=IntToStr(S);
If (Length(IntToStr(H))=1) Then Hs:='0'+IntToStr(H);
If (Length(IntToStr(M))=1) Then Ms:='0'+IntToStr(M);
If (Length(IntToStr(S))=1) Then Ss:='0'+IntToStr(S);
Result := Hs+':'+Ms+':'+Ss;
end;
procedure TForm1.Button1Click(Sender: TObject);
var str: string;
begin
MediaPlayer1.FileName := 'C:\Todd Rundgren - Can We Still Be Friends (1978).mp4'; // Присваиваем имя файла ...
MediaPlayer1.Open; // Открываем плеер ...
str := IntToStr(MediaPlayer1.Length); // Присваиваем миле секунды в переменную str
ShowMessage('Sec: '+(str)); // Показываем миле секунды ...
str:=Copy(str,0,(Length(str)-3)); // Удаляем последние 3 символа из строки (это миле секунды) ...
ShowMessage('Min: '+SecInTime(StrToInt(str))); // Нормальный показ времени ...
end;