在QT4.6.2帮助文档中,有段关于把录音数据储存到文件的代码如下,我试了一下是行的,但我想直接把这些数据储存到QByteArray中,不知道怎么弄了,希望大侠指点一下,谢谢!
QFile outputFile; // class member.
QAudioInput* audio; // class member.
{
outputFile.setFileName("/tmp/test.raw");
outputFile.open( QIODevice::WriteOnly | QIODevice::Truncate );
QAudioFormat format;
format.setFrequency(8000);
format.setChannels(1);
format.setSampleSize(8);
format.setCodec("audio/pcm");
format.setByteOrder(QAudioFormat::LittleEndian);
format.setSampleType(QAudioFormat::UnSignedInt);
if (QAudioDeviceInfo info(QAudioDeviceInfo::defaultInputDevice());
if (!info.isFormatSupported(format)) {
qWarning()<<"default format not supported try to use nearest";
format = info.nearestFormat(format);
}
audio = new QAudioInput(format, this);
QTimer::singleShot(3000, this, SLOT(stopRecording()));
audio->start(&outputFile);
}
下面这几句,是我自己的想法(把录音的数据存入QByteArray中)但行不通
QByteArray array;
QBuffer buffer(&array);
buffer->open(QIODevice::WriteOnly);
audio->start(&buffer);