一、前提条件
1.在工程中添加
QT += multimedia
2.录音
#include <QAudioInput>
3.播放
#include <QAudioOutput>
4.音频格式
#include <QAudioFormat>
二、实例
1.录音实例
void AudioRecord::on_startBt_clicked()
{
file = new QFile(filename);
file->open(QIODevice::WriteOnly);
//创建一个音频格式对象
QAudioFormat format;
format.setSampleRate(44100);//采样率
format.setChannelCount(2);//通道
format.setSampleSize(16);//样本长度
format.setByteOrder(QAudioFormat::LittleEndian);//设置端字节序
format.setSampleType(QAudioFormat::UnSignedInt);//存储样本数据类型
format.setCodec("audio/pcm");
QAudioDeviceInfo infodev = QAudioDeviceInfo::defaultInputDevice();
if(!infodev.isFormatSupported(format))
{
qDebug()<<"format error";
return ;
}
//开始录音
input = new QAudioInput(format, this);
input->start(file);
}
void AudioRecord::on_stopBt_clicked()
{
//停止录音
input->stop();
file->close();
delete file;
delete input;
}
2.播放实例
void AudioPlay::on_startBt_clicked()
{
file = new QFile(ui->lineEdit->text());
file->open(QIODevice::ReadOnly);
//创建一个音频格式对象
QAudioFormat format;
format.setSampleRate(44100);//采样率
format.setChannelCount(2);//通道
format.setSampleSize(16);//样本长度
format.setByteOrder(QAudioFormat::LittleEndian);//设置端字节序
format.setSampleType(QAudioFormat::UnSignedInt);//存储样本数据类型
format.setCodec("audio/pcm");
QAudioDeviceInfo infodev = QAudioDeviceInfo::defaultInputDevice();
if(!infodev.isFormatSupported(format))
{
qDebug()<<"format error";
return ;
}
//开始播放
output = new QAudioOutput(format, this);
output->start(file);
}
void AudioPlay::on_stopBt_clicked()
{
output->stop();
file->close();
delete output;
delete file;
}