【问题标题】:QMediaplayer duration is wrongQMediaplayer 持续时间错误
【发布时间】:2013-12-01 06:39:35
【问题描述】:

我正在使用 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 分钟,我找不到原因。 请帮我解决这个问题...

【问题讨论】:

    标签: c++ qt qdatetime qmediaplayer


    【解决方案1】:

    嗯,我找到了另一种方法来做到这一点。有点长,但效果很好。

    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”格式)。稍后转换为字符串并使用标签显示。

    【讨论】:

      猜你喜欢
      • 2021-12-29
      • 2010-12-31
      • 1970-01-01
      • 2021-11-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多