Как узнать общее время аудиофайла?

Как узнать общее время аудиофайла? Я пытаюсь это:

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

но все время функция возвращает 0. Я использую последнюю версию Qt на Windows 8.

3

Решение

Да, я нашел ошибку, это было для преобразования типа (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);
}
0

Другие решения


По вопросам рекламы [email protected]