我正在使用 Phonon 播放器播放音频文件。
场景:
- 从本地驱动器播放的文件:正常播放。
- 从远程驱动器播放的文件:由于音频文件位于 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() 后什么也没有发生。但是,如果我提供完整的缓冲区,那么相同的代码可以正常工作。