如何获取音频文件的总时间?

时间:2014-07-04 10:17:32

标签: c++ qt qt5 qmediaplayer qtmultimedia

如何获取音频文件的总时间?我正在尝试这个:

QMediaPlayer* audioPlayer = new QMediaPlayer();
audioPlayer->setMedia(QUrl::fromLocalFile("F:/Audio/mysong.mp3"));
audioPlayer->duration(); // return 0

但是函数一直返回0.我在Windows 8上使用最新版本Qt。

1 个答案:

答案 0 :(得分:0)

是的,我发现错误,是键入转换(qint64) 为了获得持续时间,您需要使用“durationChanged”信号。

//get duration in durationChanged signal.
connect(audioPlayer, SIGNAL(positionChanged(qint64)), this, SLOT(setPositionSlider(qint64)));
//Old function
void Widget::setPositionSlider(qint64 i)
{
    ui->PositionSlider->setValue(i / duration * 100); //0 I thought it was converted into double.
}
//New function
void Widget::setPositionSlider(qint64 i)
{
    ui->PositionSlider->setValue(i / 1000);
}