GoldenEagle88
@GoldenEagle88

Как программно узнать длину видео в сек?

Как программно узнать длину видео в сек/милисек на Delphi , желательно что бы не один формат был
  • Вопрос задан
  • 400 просмотров
Пригласить эксперта
Ответы на вопрос 2
dimonchik2013
@dimonchik2013
non progredi est regredi
Ответ написан
Комментировать
ORTOL
@ORTOL
Delphi
В 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;
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы