Qt录音程序
源地址:http://www.oschina.net/code/snippet_1243295_48623
[代码] [C/C++]代码
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
|
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_OBJECTpublic: 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 |

浙公网安备 33010602011771号