音频探测器无法在Qt中设置源

时间:2015-11-01 20:40:15

标签: c++ qt audio media-player

我使用QMediaPlayer播放mp3文件,我希望设置QAudioProbe来监听输出。但是,我对setSource()的调用总是在以下内容中返回false:

MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow) {
    ui->setupUi(this);
    x = new QVector<double>(256);
    y = new QVector<double>(256);
    values = new int[256];

    player = new QMediaPlayer();

    player->setMedia(QUrl::fromLocalFile(
                     "C:/Users/Person1/Desktop/piano.mp3"));
    player->setVolume(50);
    audioProbe = new QAudioProbe();

    if (audioProbe->setSource(player)) {
       connect(audioProbe, SIGNAL(audioBufferProbed(QAudioBuffer)),
               this, SLOT(updatePlot(QAudioBuffer)));
    }
    else {
        qDebug("source not set");
    }
}

请注意,playeraudioProbe分别在QMediaPlayer类的定义中初始化为指向QAudioProbeMainWindow的指针。输出始终打印:

  

来源未设置

但是当我拨打player->play()时,文件播放完美。有什么我想念的吗?我已经非常彻底地阅读了文档,我发现我使用的方法没有任何问题。我也尝试过不同的mp3文件和一些wav文件;他们都玩,但尝试设置源时会出现同样的问题。

0 个答案:

没有答案