QT 录制音频(麦克风、系统)
目录
一、成果展示:
二、代码
三、录制系统声音
一、成果展示:
二、代码
1、main.cpp
#include "myaudiorecorder/AudioWidget.h"int main(int argc, char *argv[])
{QApplication a(argc, argv);AudioWidget w;w.show();return a.exec();
}
2、AudioWidget.h
#ifndef AUDIOWIDGET_H
#define AUDIOWIDGET_H#include <QWidget>
class QAudioRecorder;namespace Ui {
class AudioWidget;
}class AudioWidget : public QWidget
{Q_OBJECTpublic:explicit AudioWidget(QWidget *parent = 0);~AudioWidget();private slots:void on_pushButton_clicked();void on_pushButton_2_clicked();void on_pushButton_4_clicked();void updateProgress(qint64 duration);private:Ui::AudioWidget *ui;QAudioRecorder *audioRecorder;
};#endif // AUDIOWIDGET_H
3、AudioWidget.cpp
#include "AudioWidget.h"
#include "ui_AudioWidget.h"
#include <QAudioRecorder>
#include <QDebug>
#include <QFileDialog>AudioWidget::AudioWidget(QWidget *parent) :QWidget(parent),ui(new Ui::AudioWidget)
{ui->setupUi(this);audioRecorder = new QAudioRecorder;//获取系统可用的音频输入设备列表;QStringList inputs = audioRecorder->audioInputs();ui->comboBox->addItems(inputs);// 更新录制进度;connect(audioRecorder, &QAudioRecorder::durationChanged, this,&AudioWidget::updateProgress);// 设置音频编码;QAudioEncoderSettings audioSettings;audioSettings.setCodec("audio/pcm");audioSettings.setQuality(QMultimedia::HighQuality);audioRecorder->setAudioSettings(audioSettings);
}AudioWidget::~AudioWidget()
{delete ui;
}// 选择按钮
void AudioWidget::on_pushButton_clicked()
{//音频保存位置;QString fileName = QFileDialog::getSaveFileName();ui->lineEdit->setText(fileName);
}// 开始按钮
void AudioWidget::on_pushButton_2_clicked()
{audioRecorder->setAudioInput(ui->comboBox->currentText());audioRecorder->setOutputLocation(QUrl::fromLocalFile(ui->lineEdit->text()));audioRecorder->record();
}// 停止按钮
void AudioWidget::on_pushButton_4_clicked()
{audioRecorder->stop();
}void AudioWidget::updateProgress(qint64 duration)
{if (audioRecorder->error() != QMediaRecorder::NoError || duration < 1000)return;setWindowTitle(tr("Recorded %1 sec").arg(duration / 1000));
}
4、AudioWidget.ui
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0"><class>AudioWidget</class><widget class="QWidget" name="AudioWidget"><property name="geometry"><rect><x>0</x><y>0</y><width>400</width><height>300</height></rect></property><property name="windowTitle"><string>Widget</string></property><widget class="QComboBox" name="comboBox"><property name="geometry"><rect><x>90</x><y>50</y><width>251</width><height>22</height></rect></property></widget><widget class="QLabel" name="label"><property name="geometry"><rect><x>20</x><y>55</y><width>71</width><height>16</height></rect></property><property name="text"><string>输入设备:</string></property></widget><widget class="QLabel" name="label_2"><property name="geometry"><rect><x>20</x><y>120</y><width>61</width><height>16</height></rect></property><property name="text"><string>保存地址:</string></property></widget><widget class="QLineEdit" name="lineEdit"><property name="geometry"><rect><x>90</x><y>120</y><width>251</width><height>20</height></rect></property></widget><widget class="QPushButton" name="pushButton"><property name="geometry"><rect><x>360</x><y>120</y><width>31</width><height>23</height></rect></property><property name="text"><string>选择</string></property></widget><widget class="QPushButton" name="pushButton_2"><property name="geometry"><rect><x>70</x><y>220</y><width>75</width><height>23</height></rect></property><property name="text"><string>开 始</string></property></widget><widget class="QPushButton" name="pushButton_4"><property name="geometry"><rect><x>250</x><y>220</y><width>75</width><height>23</height></rect></property><property name="text"><string>停止</string></property></widget></widget><layoutdefault spacing="6" margin="11"/><resources/><connections/>
</ui>
三、录制系统声音
要录制系统自身发出的声音也是可以的,并且不用修改程序,只需启用相关设备即可。
以 Windows10 为例,右击桌面右下角 小喇叭图标,在弹出的菜单中选择 "声音"
然后在弹出的对话框中选择 "录制" 页,在 “立体声混音” 上右击,选择启用,即可,如下图:
QT 录制音频(麦克风、系统)相关推荐
- Qt录制音频为pcm并进行ffmpeg aac编码
Qt提供了音频采集功能,主要涉及到3个类,QAudioFormat,QAudioInput,QIODevice. 在进行音频采集时先用QAudioFormat设置采集参数,然后创建音频输入对象 ...
- nanopc-T4 开发板通过USB麦克风采集录制音频
文章目录 1. 使用 nanopc-T4 开发板采集音频 2. 使用 Tyless外置usb麦克风录制声音 3. 使用 ffrmpeg 将实时视频与音频合并并推流到 rtmp 服务器中 4. 成功实现 ...
- iphone麦克风_如何从iPhone或iPad上的蓝牙麦克风录制音频
iphone麦克风 Recording audio from a Bluetooth microphone isn't something that iOS can do out of the box ...
- android 录像 蓝牙耳机,Android - 从蓝牙耳机录制音频有时会从麦克风录制
我正在尝试录制音频并从蓝牙耳机中分析它,为此我正在使用对象:android.media.AudioRecord, 我的问题是,对于某些设备与他们的Android版本相结合,我从手机麦克风而不是蓝牙耳机 ...
- pyaudio:基于pyaudio利用Python编程从电脑端录制音频保存到指定文件夹+将录音上传服务器+录音进行识别并转为文本保存
pyaudio:基于pyaudio利用Python编程从电脑端录制音频保存到指定文件夹+将录音上传服务器+录音进行识别并转为文本保存 目录 输出结果 代码实现 输出结果 代码实现 # -*- codi ...
- Android音视频开发:MediaRecorder录制音频
Android 多媒体框架针对音频录制提供了两种方法:MediaRecorder和AudioRecord. 区别 MediaRecorder:录制的音频文件是经过压缩后的,需要设置编码器,并且录制的音 ...
- Android Studio App开发中使用录音机、MediaRecorder录制音频和MediaPlayer播放音频讲解及实战(附源码)
运行有问题或需要源码请点赞关注收藏后评论区留言~~~ 一.使用录音机录制音频 手机有自带的系统相机,也有自带的系统录音机,只要在调用startActivityForResult之前指定该动作,就会自动 ...
- AVFoundation开发秘籍笔记-02播放和录制音频
一.音频会话 AVAudioSession 音频会话在应用程序和操作系统之间扮演着中间人的角色,提供一种简单实用的方法是OS得知应用程序应该如何与iOS音频环境进行交互. AVAudioSession ...
- QT 项目 智能家居系统 上位机
有哪些文件 : 头文件: 1. auidio .h 语音识别 模块 2. camera.h 人脸识别登录模块 3. chooselevelscene.h 翻金币游戏的 4. dataconfi ...
- AudioUnit录制音频+耳返(四)
前言 视频直播,K歌应用等等都会有音频录制的功能,音频录制时还可以带有耳返效果,那这些是如何实现的呢?如果仅仅是录制音频,那使用IOS的AudioQueue框架实现即可,但是在直播这些实时性要求比较高 ...
最新文章
- Android 对象池案例
- Java的多线程以及内存模型的知识点梳理,有想到过这些吗?
- c语言设计匀速直线运动,C语言课程设计指导书2015版(试用版)201506.doc
- C语言的一些知识总结
- 查询相关股票十档行情的方法
- php apk 分包,H5打包出APP,分包
- 神策分析 1.17 重磅来袭,四大特性让数据治理更轻松,数据分析更深入
- Kali2019解决无法定位软件包
- Web前端开发面试题——将字符串转成驼峰写法
- 走楼梯c语言程序,C语言项目爬楼梯的两种实现方法参考
- 如何通过python多线程抓取所有东方财富股票信息
- 深度学习、机器学习交流群
- 计算机怎么不显示打开文件桌面,开机不显示桌面图标怎么办【解决方法】
- 《Maven实战》(许晓斌)导读(读书笔记第二次读后感)
- 中高端时代趁势而来,本就艰难的酒店企业如何顺势而为
- Unity2D:灯光系统
- win11任务管理器_win11系统怎么打开任务管理器
- sudo apt-get update报错:W: 校验数字签名时出错。此仓库未被更新,所以仍然使用此前的索引文件。W: 部分索引文件下载失败。如果忽略它们,那将转而使用旧的索引文件
- linux cadaver 命令,【Linux学习第三篇】[Tab].[Ctrl]-c.[Ctrl]-d
- 最重要的事和最难的事