qt - QT有没有办法从麦克风获取原始音频数据?

标签 qt audio real-time

我正在尝试在 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 类值得研究。

想到的其他选项是 QIODeviceQDataStream

This post may get you headed in the right direction.

关于qt - QT有没有办法从麦克风获取原始音频数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29042461/

相关文章:

c++ - 是否可以在不重复代码的情况下动态翻译 Qt 应用程序?

qt - 如何设置 QML MapPolyline 路径属性

c++ - QObject::connect: 无法对 MyClass*const 类型的参数进行排队

java - 是否有用于监听音频命令的 Kotlin 或 Java 库? (想要在 child 大喊 'TRICK OR TREAT' 时触发万圣节显示)

c++ - 错误正方体qt

php - 流式传输 MP3 会切断最后 1-2 秒的音频

c++ - 声明 sf::SoundBuffer 会导致程序在终止时崩溃

c++ - 关键任务实时应用程序中的安全 C++

PHP eAccelerator 和实时数据

python - 如何避免cv2.undistort引起的延迟?