3

オーディオファイルの合計時間を取得するには? 私はこれを試しています:

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

しかし、関数は常に0を返します。Windows 8で最新バージョンのQtを使用しています。

4

1 に答える 1

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);
}
于 2014-07-04T12:17:50.510 に答える