对于音频采集有很多的方式,在windows下存在API可以使用,例如wave;但是QT中有一个强大的音频处理的库,可以实现音频采集,设置采集的参数等。 这里便来记录下对这个库的使用-------QAudioInput。
首先在使用这个库之前,需要先想.pro文件中添加 QT += multimedia ,否则程序会报错。
既然是采集音频,那么首先需要进行一步参数配置,告诉计算机应该以什么样的方式进行数据采集,像是采样率、声道数量、编码方式等;
这样计算机便知道如何去采集数据了,当然参数是可调的,具体配置不同参数可产生什么不同的效果,可以参考QT本身提供的示例程序Audio Recorder Example,在这个程序里可以通过界面来修改个参数值进行采样。
但是只是让计算机知道如何采样还是不够的,还需要让她知道采集何处的数据,计算机上存在这么多的器件,我们需要通过音频输入设备进行采集,则需要告诉计算机一个音频输入设备的序号(这个序
首先在使用这个库之前,需要先想.pro文件中添加 QT += multimedia ,否则程序会报错。
既然是采集音频,那么首先需要进行一步参数配置,告诉计算机应该以什么样的方式进行数据采集,像是采样率、声道数量、编码方式等;
- QAudioFormat format;
- format.setSampleRate(16000);
- format.setChannelCount(2); //设定声道数目,mono(平声道)的声道数目是1;stero(立体声)的声道数目是2
- format.setSampleSize(16);
- format.setCodec("audio/pcm"); //编码器
- format.setByteOrder(QAudioFormat::LittleEndian); //设定高低位,LittleEndian(低位优先)/LargeEndian(高位优先)
- format.setSampleType(QAudioFormat::SignedInt);
但是只是让计算机知道如何采样还是不够的,还需要让她知道采集何处的数据,计算机上存在这么多的器件,我们需要通过音频输入设备进行采集,则需要告诉计算机一个音频输入设备的序号(这个序