Я работаю над воспроизведением аудио из аудиопотока, используя VC ++ с библиотекой QtMultimedia. Поскольку я не слишком разбираюсь в библиотеках Qt, я начал с чтения файла .wav и записи его в буфер:
ifstream wavFile;
char* file = "error_ex.wav";
wavFile.open( file, ios::binary );
После этого я использовал функцию ifread .read () и записал все данные в буфер. После того, как буфер записан, он отправляется на устройство записи звука, которое готовит его для Qt:
QByteArray fData;
for( int i = 0; i < (int)data.size(); ++i )
{
fData.push_back(data.at(i));
}
m_pBuffer->open(QIODevice::ReadWrite);
m_pBuffer->write( fData );
m_pBuffer->close();
(m_pBuffer имеет тип QBuffer)
Когда QBuffer готов, я пытаюсь воспроизвести буфер:
QIODevice* ioDevice = m_pAudioOut->start();
ioDevice->write( m_pBuffer->buffer() );
(m_pAudioOut имеет тип QAudioOutput)
В результате из динамиков раздается небольшой щелчок, а затем воспроизведение прекращается. Есть идеи почему?
Запуск Visual Studios 2008 в Windows XP SP2 с использованием библиотеки Qt 4.6.3.