Procedure TForm1.Timer1Timer(Sender: TObject);
Var
TheLength,Posi,SummaMin,SummaSec: Integer;
begin
//Progress Bar to check if the track is playing
if Progress.Max<>0 then Begin
Progress.Position := Mediaplayer1.Position;
//Gets the length of the selected track
TheLength := Mediaplayer1.TrackLength[ListBox1.ItemIndex];
//gets the current position of the track
Posi := Mediaplayer1.Position;
//Caculates Minutes
SummaMin := ((TheLength - Posi) div 1000) Div 60;
//Calculates Seconds
SummaSec := ((TheLength - Posi) Div 1000) Mod 60;
//Adds zero if Seconds are less then ten
If SummaSec < 10 Then
Label2.Caption := '0' + IntToStr(SummaSec)
Else
Label2.Caption := IntToStr(SummaSec);
Код, предоставленный ниже, является частью проекта Delphi, который рассчитывает оставшееся время до конца трека, играющего в медиаплеере. Таймер обновляет прогресс-бар и отображает оставшееся время в минутах и секундах на двух лейблах.
Чтобы отобразить оставшееся время, можно просто отобразить SummaMin (минуты) и SummaSec (секунды) на лейблах:
Это будет конкатенацией минут и секунд с двоеточием между ними. Используется оператор If, чтобы добавить ведущий ноль к секундам, если они меньше 10.
Вот обновлённая версия процедуры:
ProcedureTForm1.Timer1Timer(Sender:TObject);VarTheLength,Posi,SummaMin,SummaSec:Integer;Begin// Прогресс-бар для проверки, играет ли трекifProgress.Max<>0thenBeginProgress.Position:=Mediaplayer1.Position;// Получает длину выбранного трекаTheLength:=Mediaplayer1.TrackLength[ListBox1.ItemIndex];// Получает текущую позицию трекаPosi:=Mediaplayer1.Position;// Рассчитывает минутыSummaMin:=(TheLength-Posi)div1000div60;// Рассчитывает секундыSummaSec:=(TheLength-Posi)div1000mod60;// Добавляет ноль, если секунды меньше десятиIfSummaSec<10ThenLabel2.Caption:='0'+IntToStr(SummaSec)ElseLabel2.Caption:=IntToStr(SummaSec);// МинутыLabel1.Caption:=IntToStr(SummaMin)+':'+Label2.Caption;End;End;
Это отобразит оставшееся время в формате mm:ss, где mm - количество минут, а ss - количество секунд.
В статье описывается способ отображения оставшегося времени до конца воспроизведения аудиотрека в приложении Delphi, используя компонент Timer и медиаплеера.
Комментарии и вопросы
Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS
Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.