Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
KANSoftWare

Решение проблемы отображения времени в формате "мм:ss" в Delphi

Delphi , Компоненты и Классы , TMediaPlayer

Проблема: При воспроизведении аудиофайлов с помощью TMediaPlayer в Delphi для Android необходимо отображать текущее время и оставшееся время воспроизведения в формате "мм:ss", но отображение секунд не происходит корректно.

Решение: Для отображения времени в формате "мм:ss" необходимо учитывать, что TMediaPlayer отображает время в миллисекундах. Чтобы отобразить время в секундах, нужно разделить значение CurrentTime и Duration на 1000. Кроме того, чтобы отобразить секунды с двумя цифрами, нужно использовать формат '%02d' в функции Format.

Подтвержденный ответ:

procedure Timer1Timer(Sender: TObject);
begin
  TrackBar1.Tag := 1;
  TrackBar1.Value := MediaPlayer1.CurrentTime div 1000;
  CurrentMin := MediaPlayer1.CurrentTime div 1000 div 60;
  CurrentSec := MediaPlayer1.CurrentTime div 1000 mod 60; // Seconds with two digits
  DurationMin := MediaPlayer1.Duration div 1000 div 60;
  DurationSec := MediaPlayer1.Duration div 1000 mod 60; // Seconds with two digits
  LabelCurrentTime.Text   := Format('%02d:%02d', [CurrentMin, CurrentSec]);
  LabelRemainingTime.Text := Format('%02d:%02d', [DurationMin, DurationSec]);
  TrackBar1.Tag := 0;
end;

Альтернативный ответ:

procedure Timer1Timer(Sender: TObject);
begin
  TrackBar1.Tag := 1;
  TrackBar1.Value := MediaPlayer1.CurrentTime;
  CurrentMin := MediaPlayer1.CurrentTime div 1000 div 600000;
  CurrentSec := MediaPlayer1.CurrentTime div 1000; // Seconds
  DurationMin := MediaPlayer1.Duration div 1000 div 600000;
  DurationSec := MediaPlayer1.Duration div 1000; // Seconds
  LabelCurrentTime.Text   := Format('%2.2d : %2.2d', [CurrentMin, CurrentSec]);
  LabelRemainingTime.Text := Format('%2.2d : %2.2d', [DurationMin, DurationSec]);
  TrackBar1.Tag := 0;
end;

Однако, в альтернативном ответе отображение секунд не происходит корректно, так как не учитывается, что TMediaPlayer отображает время в миллисекундах.

Создано по материалам из источника по ссылке.

Проблема с воспроизведением аудиофайлов в TMediaPlayer на Delphi для Android, где необходимо отображать текущее время и оставшееся время воспроизведения в формате 'мм:ss', но отображение секунд не происходит корректно.


Комментарии и вопросы

Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.


:: Главная :: TMediaPlayer ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-12-22 20:14:06
2025-06-15 23:45:49/0.0033061504364014/0