1

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

场景:

  1. 从本地驱动器播放的文件:正常播放。
  2. 从远程驱动器播放的文件:由于音频文件位于 USB 设备上,我必须不断更新缓冲区(QBuffer)并同时播放文件。但由于某种原因,该文件没有在 Phonon 播放器中播放。谁能告诉我在缓冲区仍在更新时播放音频文件的正确方法?

//代码

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() 后什么也没有发生。但是,如果我提供完整的缓冲区,那么相同的代码可以正常工作。

4

0 回答 0