资源简介
该程序通过qt采集电脑的音频数据,实现音频的保存,有录音播放功能。
代码片段和文件信息
#include “AudioRecorder.h“
#include
#include
#include
#include
#include
#define BufferSize 14096
struct HEADER
{
char RIFFNAME[4];
unsigned long nRIFFLength;
char WAVNAME[4];
char FMTNAME[4];
unsigned long nFMTLength;
unsigned short nAudioFormat;
unsigned short nChannleNumber;
unsigned long nSampleRate;
unsigned long nBytesPerSecond;
unsigned short nBytesPerSample;
unsigned short nBitsPerSample;
char DATANAME[4];
unsigned long nDataLength;
};
AudioRecorder::AudioRecorder(QWidget *parent)
: QWidget(parent)
mBuffer(BufferSize 0)
{
ui.setupUi(this);
miMaxValue = 0;
miVolume = ui.horizontalSlider->value();
mpOutputFile = NULL;
mpAudioInputFile = NULL;
mpAudioOutputFile = NULL;
mpAudioInputSound = NULL;
mpAudioOutputSound = NULL;
mpInputDevSound = NULL;
mpInputDevSound = NULL;
ui.btn_stop->setDisabled(true);
ui.btn_play->setDisabled(true);
ui.btn_save->setDisabled(true);
mpOutputFile = new QFile();
mpOutputFile->setFileName(tr(“record.raw“));
//mFormatFile.setFrequency(8000);
//mFormatFile.setChannels(1);
mFormatFile.setSampleSize(16);
mFormatFile.setSampleType(QAudioFormat::SignedInt);
mFormatFile.setByteOrder(QAudioFormat::LittleEndian);
mFormatFile.setCodec(“audio/pcm“);
QAudioDeviceInfo info(QAudioDeviceInfo::defaultInputDevice());
if (!info.isFormatSupported(mFormatFile)) {
qWarning(“input default mFormatFile not supported try to use nearest“);
mFormatFile = info.nearestFormat(mFormatFile);
}
QAudioDeviceInfo info1(QAudioDeviceInfo::defaultOutputDevice());
if (!info1.isFormatSupported(mFormatFile)) {
qWarning() << “output default mFormatFile not supported - trying to use nearest“;
// mFormatFile = info.nearestFormat(mFormatSound);
qWarning() << “output no support input mFormatFile.“;
return;
}
if(mFormatFile.sampleSize() != 16) {
qWarning(“audio device doesn‘t support 16 bit support %d bit samples example cannot run“ mFormatFile.sampleSize());
mpAudioInputFile = 0;
return;
}
mpAudioInputFile = NULL;
mpAudioOutputFile = NULL;
connect(ui.btn_start SIGNAL(clicked()) thisSLOT(OnRecordStart()));
connect(ui.btn_stop SIGNAL(clicked()) thisSLOT(OnRecordStop()));
connect(ui.btn_play SIGNAL(clicked()) thisSLOT(OnRecordPlay()));
connect(ui.btn_save SIGNAL(clicked()) thisSLOT(OnRecordSave()));
InitMonitor();
}
AudioRecorder::~AudioRecorder()
{
}
void AudioRecorder::OnRecordStart()
{
mpOutputFile->open(QIODevice::WriteOnly | QIODevice::Truncate);
mpAudioInputFile = new QAudioInput(mFormatFile this);
mpAudioInputFile->start(mpOutputFile);
ui.btn_start->setDisabled(true);
ui.btn_stop->setDisabled(false);
ui.btn_play->setDisabled(true);
ui.btn_save->setDisabled(true);
}
void AudioRecorder::OnRecordPlay()
{
mpOutputFile->open(QIODevice::ReadOnly | QIODevice::Truncate);
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2014-05-29 17:06 AudioRecorder\
文件 9637 2014-05-29 16:55 AudioRecorder\AudioRecorder.cpp
文件 1183 2014-05-29 16:51 AudioRecorder\AudioRecorder.h
文件 2734 2013-06-03 21:56 AudioRecorder\AudioRecorder.ico
文件 73 2014-05-29 15:48 AudioRecorder\AudioRecorder.qrc
文件 52 2014-05-29 15:48 AudioRecorder\AudioRecorder.rc
文件 3164 2014-05-29 17:02 AudioRecorder\AudioRecorder.ui
文件 9997 2014-05-29 16:00 AudioRecorder\AudioRecorder.vcxproj
文件 2365 2014-05-29 16:00 AudioRecorder\AudioRecorder.vcxproj.filters
文件 609 2014-05-29 15:48 AudioRecorder\AudioRecorder.vcxproj.user
文件 185 2014-05-29 15:48 AudioRecorder\main.cpp
文件 42880 2014-05-29 16:56 AudioRecorder\record.raw
- 上一篇:拼车信息系统开题报告
- 下一篇:[Qt]Qt Creator汉化方法 qt汉化包
相关资源
- [Qt]Qt Creator汉化方法 qt汉化包
- 局域网聊天
- ZigBee无线温湿度采集单元硬件毕业设
- Qt自适应行高表头重载
- 介绍了一种基于DSP芯片TMS320VC5509A 并采
- TimeDynamicListDemo.rar
- Qt实现游戏FlappyBird
- MC9S12XS128驱动0v7620 图像采集源程序C代
- OV7620采集和串口调试程序
- 我的毕业设计:USB数据采集系统
- QT串口调试助手
- 基于TCP协议的QT聊天程序
- Qt加OpenGL实现鼠标控制视角
- Qt 4.8.4以及傻瓜式安装教程
- QT编写的电子书阅读器
- Qt之生成png/jpg/bmp格式图片
- Qt开发中常用QSS样例
- QT之子窗口控件使用
- Qt做的windows运行win+r窗口
- QTopengl模块使用demo
- QT之dock使用
- QT使用openglES模块做的立方体程序
- qt做的温度计小程序
- QT计算器界面的ui文件
- qt界面跳转切换
- AD采集滤波算法程序代码
- QT个税计算器
- Qt 按钮收缩,点击show按钮,在按钮后
- 基于Qt实现音频播放器
- Qt编写的串口收发数据小程序源码
评论
共有 条评论