Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Звук, графика и видео > Продлжительность видео и музыки


Автор: BEST13 8.5.2008, 14:39
Я пишу плер при помощи компонента Tmediaplaer. И мне нужно узнать продолжытельность муз.трека и видео. 
p.s ответы типа тебе нужен DSPack и т.п.  не нужys 

Автор: Qu1nt 8.5.2008, 15:14
Код

MediaPlayer1.Length; // результат в ms


Автор: BEST13 8.5.2008, 16:09
Qu1nt спосибо. А как правельно перевисты в формат m:s ?

Автор: Qu1nt 8.5.2008, 17:08
Как-то так:
Код

function FormatTime(Time: Integer): string;
const
  sec  = 1000;
  min  = 60 * sec;
  hour = 60 * min;
var
  h, m, s : Integer;
begin
  h := Time div hour;
  m := (Time div min) mod 60;
  s := (Time div sec) mod 60;
  if Time < hour then
    Result := Format('%d:%.2d', [m, s])
  else
    Result := Format('%d:%.2d:%.2d', [h, m, s]);
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  with MediaPlayer1 do
  begin
    FileName := 'C:\Windows\Media\tada.wav';
    Open;
    Self.Caption := FormatTime(Length);
  end;
end;

Автор: BEST13 8.5.2008, 19:45
Большое спосибо ,а как узантьскоко уже прошло  время от начала трека?
ну как в о всех плерах

Это процедура неправельно отображает продолжытельность для фильмов, а вчем причина я понять не могу

Автор: Qu1nt 8.5.2008, 21:03
Цитата(BEST13 @  8.5.2008,  19:45 Найти цитируемый пост)
Это процедура неправельно отображает продолжытельность для фильмов, а вчем причина я понять не могу

Естественно, а TimeFormat кто выставлять будет?!
Код

procedure TForm1.FormCreate(Sender: TObject);
begin
  with MediaPlayer1 do
  begin
    FileName := 'C:\Windows\Media\tada.wav';
    Open;
    TimeFormat := tfMilliseconds; // не забываем выставить TimeFormat!
    Self.Caption := FormatTime(Length);
  end;
end;

Цитата(BEST13 @  8.5.2008,  19:45 Найти цитируемый пост)
Большое спосибо ,а как узантьскоко уже прошло  время от начала трека?
ну как в о всех плерах

Можно так:
Код

procedure TForm1.Timer1Timer(Sender: TObject);
begin
  with MediaPlayer1 do
    Self.Caption := FormatTime(Position) + ' \ ' + FormatTime(Length);
end;


Автор: BEST13 8.5.2008, 21:35
Большое спосибо, очень помогли!

Автор: Qu1nt 8.5.2008, 21:41
Не за что!)

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)