如何使用Phonon连续更新QBuffer(用于音频文件)播放音频文件?

时间:2012-12-17 03:46:36

标签: c++ qt cross-platform audio-streaming

我正在使用Phonon播放器来播放音频文件。

方案:

  1. 从本地硬盘播放的文件:正常播放。
  2. 从远程驱动器播放的文件:由于音频文件在USB设备上,我必须不断更新缓冲区(QBuffer)并同时播放该文件。但由于某种原因,该文件不是在Phonon播放器中播放。任何人都可以告诉我在缓冲区仍在更新时播放音频文件的正确方法吗?
  3. //代码

    Phonon::MediaObject* m_pMediaObject = new Phonon::MediaObject(this); 
    Phonon::AudioOutput* audioOutput = new Phonon::AudioOutput(Phonon::MusicCategory, this); 
    Phonon::Path path = Phonon::createPath(m_pMediaObject, audioOutput); 
    QBuffer m_pBufferLoop = new QBuffer(this);
    m_pBufferLoop->open(QIODevice::Append || | QIODevice::ReadWrite);
    functionToUpdateBuffer();//updates the buffer dynamically.
    
    m_pMediaObject->setCurrentSource(m_pBufferLoop);
    
    m_pMediaObject->play();
    

    调用play()后没有任何反应。但是,如果我给出完整的缓冲区,那么相同的代码工作正常。

0 个答案:

没有答案