gpt4 book ai didi

android - 使用 Delphi for Android 显示 TMediaPlayer.Duration 和 TMediaPlayer.CurrentTime 的秒数

转载 作者:行者123 更新时间:2023-12-05 00:15:17 26 4
gpt4 key购买 nike

我正在使用 Delphi 10.3 来开发 Android 移动应用程序。我正在使用 TMediaPlayer 播放 mp3 文件。我想显示当前时间和当前播放的媒体文件的剩余时间,包括分钟和秒(mm:ss - 引用:VLC 媒体播放器)。但我可以正确显示分钟,并且我想用两位数字显示秒。

请帮助我正确显示秒。

在这里,我提到了我尝试过的代码。

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;

最佳答案

documentation对于 FMX.Media.TMediaPlayer.CurrentTime 说:

CurrentTime is measured in 100ns. To obtain s, divide CurrentTime by MediaTimeScale. (s refers to seconds)

MediaTimeScale: Integer = $989680;

因此,给定变量

var
CurrentTime, RemainingTime: int64;
CurMins, CurSecs, RemMins, RemSecs: integer;

我们可以写如下

  CurrentTime := MediaPlayer1.CurrentTime;
RemainingTime := MediaPlayer1.Duration - CurrentTime;

CurMins := CurrentTime div MediaTimeScale div 60;
CurSecs := CurrentTime div MediaTimeScale mod 60;
LabelCurrentTime.Text := Format('Current: %d:%.2d',[CurMins, CurSecs]);

RemMins := RemainingTime div MediaTimeScale div 60;
RemSecs := RemainingTime div MediaTimeScale mod 60;
LabelRemainingTime.Text := Format('Remaining: %d:%.2d',[RemMins, RemSecs]);

注意使用“mod”将秒数显示限制为“00 .. 59”

关于android - 使用 Delphi for Android 显示 TMediaPlayer.Duration 和 TMediaPlayer.CurrentTime 的秒数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67767488/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com