[英]QMediaplayer duration is wrong
我正在使用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分鍾,我找不到原因。 請幫幫我這個家伙......
好吧,我發現了另一種方法。 有點長,但工作完美。
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作為變量類型,所以我不需要將float轉換為整數(我在我的問題中使用了浮點值)。 我使用了剩余值來設置秒,分和小時。 示例:以小時為單位,我將持續時間分配為3600000.這意味着小時(60)*分鍾(60)*毫秒(1000)。 這給了我確切的時間,然后得到24(天)的剩余時間,因為要確保沒有幾天。 (這對視頻來說真的不可能,但要確保)。
然后將它們轉換為Qtime(因為我需要以“hh:mm:ss”格式)。 稍后轉換為字符串並使用標簽顯示。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.