Я работаю над воспроизведением звука из аудиопотока с помощью VС++ с помощью библиотеки QtMultimedia. Поскольку я не слишком разбираюсь в библиотеках Qt, я начал с чтения в WAV файле и записал его в буфер:
ifstream wavFile;
char* file = "error_ex.wav";
wavFile.open( file, ios::binary );
После этого я использовал функцию ifstream.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 с пакетом обновления 2 (SP2) с использованием Qt-библиотеки 4.6.3.