QtCreate中使用QAudioInput获取默认麦克风的音频数据
Posted forrest-lin
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了QtCreate中使用QAudioInput获取默认麦克风的音频数据相关的知识,希望对你有一定的参考价值。
使用QtCreate创建项目,并在生成项目的pro文件中添加multimedia库
QT += multimedia
配置QAudioInput播放参数QAudioFormat
QAudioFormat fmt;
fmt.setSampleRate(44100);
fmt.setChannelCount(2);
fmt.setSampleSize(16);
fmt.setCodec("audio/pcm");
fmt.setByteOrder(QAudioFormat::LittleEndian);
fmt.setSampleType(QAudioFormat::SignedInt);
判断当前的音频输入设备是否支持QAudioFormat配置,如果不支持,获取支持的最接近的配置信息
QAudioDeviceInfo info = QAudioDeviceInfo::defaultInputDevice();
if (!info.isFormatSupported(fmt))
{
cout << "Audio format not support!" << endl;
fmt = info.nearestFormat(fmt);
}
配置QAudioInput,并启动
QAudioOutput * output = new QAudioOutput(outfmt);
QIODevice * out_io = output->start();
获取音频数据
char buf[4096] = {0};
for (;;)
{
int len = io->read(buf, sizeof(buf));
if (len > 0)
{
// 处理音频输入,buf中保存音频数据,len是获取到的数据的长度
}
QThread::msleep(1);
}
以上是关于QtCreate中使用QAudioInput获取默认麦克风的音频数据的主要内容,如果未能解决你的问题,请参考以下文章
在linux中使用QAudioInput录制并在windows中播放
Qt文档阅读笔记-QAudioInput&QAudioFormat解析与实例