Здравствуйте, мне нужно воспроизвести аудио данные, которые поступают кусками из сети.
Сейчас пытаюсь просто воспроизвести большой буффер без организации потоковости. Делаю так:
QBuffer buffer;
buffer.open(QIODevice::ReadWrite);
QAudioOutput* out_audio;
QAudioFormat format;
format.setFrequency(8000);
format.setChannels(1);
format.setSampleSize(8);
format.setCodec("audio/pcm");
format.setByteOrder(QAudioFormat::LittleEndian);
format.setSampleType(QAudioFormat::UnSignedInt);
QAudioDeviceInfo info(QAudioDeviceInfo::defaultOutputDevice());
if (!info.isFormatSupported(format)) {
//qWarning()<<".";
QMessageBox::critical(0,"Error","raw audio format not supported by backend, cannot play audio",QMessageBox::Ok);
return;
}
out_audio = new QAudioOutput(format, this);
QByteArray byteArray;
for(int i = 0;i<30000;i++)
byteArray[i] = (char)100*sin((float)6.28*i*1000.0/48000.0);
buffer.write(byteArray);
buffer.close();
out_audio->start(&buffer);
Проект компилит без ошибок, но при запуске виндовс выводит об ошибке и закрывает программу.
Подпись ошибки:AppName: audio_test.exe AppVer: 0.0.0.0 ModName: msvcrt.dll
ModVer: 7.0.2600.5512 Offset: 00036fa3
Может я что то в коде намудрил? Кто имеет опыт работы с аудио в Qt может знает в чем причина?