资源简介
该程序通过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 Creator5)
- labview中的DAQ助手采集多个通道电压
- vtk QT做的三维地质可视化系统2of2
- 使用 SoundPool 同时播放多个音频
- Qt局域网聊天软件
- Qt Creator opengl实现四元数鼠标控制轨迹
- QT局域网聊天系统(基于QT5.修改过)
- qt-电子点菜系统
- 音频测试软件
- C 餐厅叫号系统(QT平)
- 数据采集系统——ADC0808的应用,单片
- QT 实现文件下载
- qt图像处理
- AD7606采集程序
- CY7C68013A固件程序(用于摄像机采集)
- QT,JPEG解码源代码(已完成)
- 基于AT89C51的数据采集系统设计新方法
- 基于delphi的声卡采集程序.rar
- Qt 播放音频文件
- 模拟电路课程设计(音频放大电路设
- stm32通过DMA方式采集ADC数据
- Qt 读取16进制的data文件
- 创龙C66x平台GigE工业相机图像采集案例
- MQTT+串口(usart)透传
- 易语言QQTEA算法源码
- VC工程转Qt工程文件的工具
- 游戏音频图像提取工具GARbro
- MQTT推送Demo
- 全自动采集getshell工具
- LabVIEW 数据采集 模拟量+编码器(Daq
评论
共有 条评论