我正在尝试在 QT 中实现变调器。所以我需要从麦克风获取原始数据,以某种方式对其进行转换并播放。但我不知道如何获取原始数据,将其发送到缓冲区,然后在转换后播放。目前我正在做类似的事情,但这是在没有缓冲区的情况下工作的,我无法更改将要播放的数据。
QAudioFormat format;
format.setSampleRate(96000);
format.setChannelCount(1);
format.setSampleSize(32);
format.setCodec("audio/pcm");
format.setByteOrder(QAudioFormat::LittleEndian);
format.setSampleType(QAudioFormat::UnSignedInt);
audio = new QAudioInput(format, this);
connect(audio, SIGNAL(stateChanged(QAudio::State)), this, SLOT(handleStateChanged(QAudio::State)));
QIODevice* device = audio->start();
connect(device,SIGNAL(readyRead()),this,SLOT(process()));
QAudioOutput* output = new QAudioOutput(format, this);
output->start(device);
有什么方法可以做我想做的事吗?
最佳答案
有一个 QAudio
类值得研究。
想到的其他选项是 QIODevice
和 QDataStream
。
关于qt - QT有没有办法从麦克风获取原始音频数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29042461/