Qt4 为什么可以';我是否使用QBuffer作为QAudio::start()的输出设备?

Qt4 为什么可以';我是否使用QBuffer作为QAudio::start()的输出设备?,qt4,qt4.7,Qt4,Qt4.7,我刚刚从Qt的文档中复制了示例代码,唯一的区别是我选择使用内存缓冲区而不是本地文件,因此我在QAudio::start()中放置了QBuffer buffer,但是当发出stateChanged时,buffer为空,并导致QAudio::IOError 类虚拟{ 私人: QBuffer;} void dummy::loop() { QAudioFormat格式; //设置你想要的格式,例如。 格式。设置频率(8000); 格式。设置频道(1); 格式设置示例(8); 格式化.setCodec(“

我刚刚从Qt的文档中复制了示例代码,唯一的区别是我选择使用内存缓冲区而不是本地文件,因此我在
QAudio::start()
中放置了
QBuffer buffer
,但是当发出
stateChanged
时,
buffer
为空,并导致
QAudio::IOError

类虚拟{ 私人: QBuffer;}

void dummy::loop()
{
QAudioFormat格式;
//设置你想要的格式,例如。
格式。设置频率(8000);
格式。设置频道(1);
格式设置示例(8);
格式化.setCodec(“音频/pcm”);
setByteOrder格式(QAudioFormat::LittleEndian);
format.setSampleType(QAudioFormat::UnSignedInt);
QAudioDeviceInfo info=QAudioDeviceInfo::defaultInputDevice();
如果(!info.isFormatSupported(格式)){
qWarning()在使用前,您需要
open()
a
QIODevice
。插入类似于

buffer.open(QIODevice::ReadWrite);
…之前

audio->start (&buffer); // was originally a QFile , i put a QBuffer here

如何初始化
缓冲区
?@Mat,它在头文件中声明为
QBuffer buffer
,我尝试了
ReadWrite
,它不起作用;但是这里使用
WriteOnly
,并用
只读
重新打开,不知道为什么,但现在,我只想在不删除它的情况下关闭问题。
Read>Write
应该可以正常工作,它甚至包含在中。您介意用初始化
QBuffer
的代码更新您的问题吗?它是头文件中声明的私有memeber
buffer.open(QIODevice::ReadWrite);
audio->start (&buffer); // was originally a QFile , i put a QBuffer here