Запись в буфер. Выдрано из готового, не моего, проекта, так что весь код дать не могу.
C++ (Qt)
QByteArray output_bytes;
QAudioInput* audio_in;
QAudioFormat format;
QBuffer output_buffer;
...
AudioCapture::AudioCapture()
{
// Set up the format, eg.
format.setFrequency(8000);
format.setChannels(1);
format.setSampleSize(16);
format.setCodec("audio/pcm");
format.setByteOrder(QAudioFormat::LittleEndian);
format.setSampleType(QAudioFormat::UnSignedInt);
if (!output_buffer.isOpen())
this->output_buffer.setBuffer(&output_bytes);
output_buffer.open(QIODevice::WriteOnly | QIODevice::Truncate);
QAudioDeviceInfo info = QAudioDeviceInfo::defaultInputDevice();
if (!info.isFormatSupported(format))
{
qWarning() << "default format not supported try to use nearest";
this->format = info.nearestFormat(format);
}
audio_in = new QAudioInput(format, this);
audio_in->start(&output_buffer);
}