- mainwindow.cpp
- #include "mainwindow.h"
- #include "ui_mainwindow.h"
- MainWindow::MainWindow(QWidget *parent) :
- QMainWindow(parent),
- ui(new Ui::MainWindow)
- {
- ui->setupUi(this);
- }
- MainWindow::~MainWindow()
- {
- delete ui;
- }
- //开始录音
- void MainWindow::on_start_clicked()
- {
- file =new QFile();
- file->setFileName("E:\\\\nihao");//设置其实设置音频文件的存放路径(输入音频名及存放路径)
- bool is_open =file->open(QIODevice::WriteOnly | QIODevice::Truncate);
- if(!is_open)
- {
- qDebug()<<"打开失败失败"<<endl;
- exit(1);
- }
- QAudioFormat format;
- format.setSampleRate(8000);
- format.setChannelCount(1);
- format.setSampleSize(8);
- format.setCodec("audio/wav");
- format.setByteOrder(QAudioFormat::LittleEndian);
- format.setSampleType(QAudioFormat::UnSignedInt);
- QAudioDeviceInfo info = QAudioDeviceInfo::defaultInputDevice();
- QString str=info.deviceName();
- qDebug()<<"使用的录音设备是:"<<str<<endl;
- if(!info.isFormatSupported(format))
- {
- format = info.nearestFormat(format);
- }
- input = new QAudioInput(format, this);
- ui->label->setText("录音开始......");
- input->start(file);
- }
- //停止录音
- void MainWindow::on_finish_clicked()
- {
- input->stop();
- file->close();
- ui->label->setText("录音结束......");
- }
- //播放录音
- void MainWindow::on_play_clicked()
- {
- file->setFileName("E:\\\\test.wav");
- file->open(QIODevice::ReadOnly);
- QAudioFormat format;
- format.setSampleRate(8000);
- format.setChannelCount(1);
- format.setSampleSize(8);
- format.setCodec("audio/wav");
- format.setByteOrder(QAudioFormat::LittleEndian);
- format.setSampleType(QAudioFormat::UnSignedInt);
- output = new QAudioOutput(format);
- output->start(file);
- }
- mainwindow.h
- #ifndef MAINWINDOW_H
- #define MAINWINDOW_H
- #include <QMainWindow>
- #include <QMultimedia>
- #include <QFile>
- #include <QDebug>
- #include <QAudioFormat>
- #include <QAudioDeviceInfo>
- #include <QAudioInput>
- #include <QTimer>
- #include <QAudioOutput>
- namespace Ui {
- class MainWindow;
- }
- class MainWindow : public QMainWindow
- {
- Q_OBJECT
- public:
- explicit MainWindow(QWidget *parent = 0);
- ~MainWindow();
- private slots:
- void on_start_clicked();
- void on_finish_clicked();
- void on_play_clicked();
- private:
- Ui::MainWindow *ui;
- QFile *file;
- QAudioInput * input;
- QAudioOutput* output;
- };
- #endif // MAINWINDOW_H
- //该片段来自于http://www.codesnippet.cn/detail/0607201513014.html
来源: http://www.codesnippet.cn/detail/0607201513014.html