我正在用Qmediaplayer开发一个视频播放器。当我将标签设置为显示视频的持续时间时,它显示的值是错误的。
float duration = mediaPlayer.duration() / 1000.0f;
ui->lblDuration->setText(QDateTime::fromTime_t(duration).toString("hh:mm:ss"));如果我播放的视频持续时间是7分,24秒,标签显示"05:37:24“,有5小时30分钟被添加到标签上,我找不到原因。请帮我搞定这个人..。
发布于 2013-11-19 04:59:41
我找到了另一种方法。有点长,但效果很好。
qint64 duration = mediaPlayer.duration();
int seconds = (duration/1000) % 60;
int minutes = (duration/60000) % 60;
int hours = (duration/3600000) % 24;
QTime time(hours, minutes,seconds);
ui->lblDuration->setText(time.toString());在这里,我已经习惯了qint64作为变量类型,因此我不需要将浮点数转换为整数(我在问题中使用了浮点数)。我用剩馀值来设置秒、分钟和小时。例句:以小时为单位,我划分了3600000年度的期限。这意味着小时(60)*分钟(60)*毫秒(1000)。这给了我准确的时间,然后得到其余的24(天),因为确保没有天。(对于视频来说,这是不可能的,但是要确保)。
然后将它们转换为Qtime (因为我需要"hh:mm:ss“格式)。稍后转换为字符串并使用标签显示。
https://stackoverflow.com/questions/20042268
复制相似问题