簡體   English   中英

QMediaplayer持續時間錯誤

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM