Используя DelphiXE, я пытаюсь показать длину wav-файла на этикетке. Это файл WAV с фиксированной скоростью передачи данных 64 Кбит / с, который загружается в tMediaPlayer.
Предыдущий SO пост по этой задаче: ЗДЕСЬ . Но код не отображается, и ссылка на Devhood больше не работает, поэтому я не смог попробовать этот метод.
Я также попробовал код из ЗДЕСЬ , но он дает неверные результаты следующим образом.
type
HMSRec = record
Hours: byte;
Minutes: byte;
Seconds: byte;
NotUsed: byte;
end;
procedure TForm1.Button1Click(Sender: TObject);
var
TheLength: LongInt;
begin
{ Set time format - note that some devices don’t support tfHMS }
MediaPlayer1.TimeFormat := tfHMS;
{ Store length of currently loaded media }
TheLength := MediaPlayer1.Length;
with HMSRec(TheLength) do { Typecast TheLength as a HMSRec record }
begin
Label1.Caption := IntToStr(Hours); { Display Hours in Label1 }
Label2.Caption := IntToStr(Minutes); { Display Minutes in Label2 }
Label3.Caption := IntToStr(Seconds); { Display Seconds in Label3 }
end;
end;
Этот код дает значение 24: 23: 4, когда оно должно быть 0:04:28.
Есть ли очевидная проблема с этим кодом или есть какой-то более элегантный способ сделать это?
Как всегда, спасибо за вашу помощь.