Проблема: При воспроизведении аудиофайлов с помощью 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