资源简介
用C++实现的音频录制工程,有需要的可以下载,本人做的编写和测试,有问题可以留言
代码片段和文件信息
// pcmrecord.cpp : 定义控制台应用程序的入口点。
//
#include “stdafx.h“
#include
#include
#pragma comment(lib “winmm.lib“)
HWAVEIN hWaveIn; //输入设备
WAVEFORMATEX waveform; //采集音频的格式,结构体
BYTE *pBuffer1;//采集音频时的数据缓存
WAVEHDR wHdr1; //采集音频时包含数据缓存的结构体
FILE *pf;
int _tmain(int argc _TCHAR* argv[])
{
HANDLE wait;
waveform.wFormatTag = WAVE_FORMAT_PCM;//声音格式为PCM
waveform.nSamplesPerSec = 8000;//采样率,16000次/秒
waveform.wBitsPerSample = 16;//采样比特,16bits/次
waveform.nChannels = 1;//采样声道数,2声道
waveform.nAvgBytesPerSec = 16000;//每秒的数据率,就是每秒能采集多少字节的数据
waveform.nBlockAlign = 2;//一个块的大小,采样bit的字节数乘以声道数
waveform.cbSize = 0;//一般为0
wait = CreateEvent(NULL 0 0 NULL);
//使用waveInOpen函数开启音频采集
waveInOpen(&hWaveIn WAVE_MAPPER &waveform(DWORD_PTR)wait 0L CALLBACK_EVENT);
//建立两个数组(这里可以建立多个数组)用来缓冲音频数据
DWORD bufsize = 1024*100;//每次开辟10k的缓存存储录音数据
int i = 20;
fopen_s(&pf “录音测试.pcm“ “wb“);
while (i--)//录制20左右秒声音,结合音频解码和网络传输可以修改为实时录音播放的机制以实现对讲功能
{
pBuffer1 = new BYTE[bufsize];
wHdr1.lpData = (LPSTR)pBuffer1;
wHdr1.dwBufferLength = bufsize;
wHdr1.dwBytesRecorded = 0;
wHdr1.dwUser = 0;
wHdr1.dwFlags = 0;
wHdr1.dwLoops = 1;
waveInPrepareHeader(hWaveIn &wHdr1 sizeof(WAVEHDR));//准备一个波形数据块头用于录音
waveInAddBuffer(hWaveIn &wHdr1 sizeof (WAVEHDR));//指定波形数据块为录音输入缓存
waveInStart(hWaveIn);//开始录音
Sleep(1000);//等待声音录制1s
waveInReset(hWaveIn);//停止录音
fwrite(pBuffer1 1 wHdr1.dwBytesRecorded pf);
delete pBuffer1;
printf(“%ds “ i);
}
fclose(pf);
waveInClose(hWaveIn);
return 0;
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 32256 2014-06-16 00:53 Debug\pcmrecord.exe
文件 263688 2014-06-16 00:53 Debug\pcmrecord.ilk
文件 633856 2014-06-16 00:53 Debug\pcmrecord.pdb
文件 3080192 2014-06-15 17:25 ipch\pcmrecord-73a3e37c\pcmrecord-cd963aab.ipch
文件 3080192 2014-06-16 00:42 ipch\pcmrecord-7c709f8a\pcmrecord-cd963aab.ipch
文件 3080192 2014-06-11 14:13 ipch\pcmrecord-7d9ad14c\pcmrecord-cd963aab.ipch
文件 685 2014-06-16 00:48 pcmrecord\Debug\pcmrecord.Build.CppClean.log
文件 1356 2014-06-16 00:53 pcmrecord\Debug\pcmrecord.log
文件 34008 2014-06-16 00:53 pcmrecord\Debug\pcmrecord.obj
文件 1638400 2014-06-16 00:48 pcmrecord\Debug\pcmrecord.pch
文件 1310 2014-06-16 00:53 pcmrecord\Debug\pcmrecord.tlog\cl.command.1.tlog
文件 20016 2014-06-16 00:53 pcmrecord\Debug\pcmrecord.tlog\CL.read.1.tlog
文件 730 2014-06-16 00:53 pcmrecord\Debug\pcmrecord.tlog\CL.write.1.tlog
文件 1110 2014-06-16 00:53 pcmrecord\Debug\pcmrecord.tlog\li
文件 2656 2014-06-16 00:53 pcmrecord\Debug\pcmrecord.tlog\li
文件 376 2014-06-16 00:53 pcmrecord\Debug\pcmrecord.tlog\li
文件 146 2014-06-16 00:53 pcmrecord\Debug\pcmrecord.tlog\pcmrecord.lastbuildstate
文件 11249 2014-06-16 00:48 pcmrecord\Debug\stdafx.obj
文件 510976 2014-06-16 00:53 pcmrecord\Debug\vc120.idb
文件 225280 2014-06-16 00:53 pcmrecord\Debug\vc120.pdb
文件 1861 2014-06-16 00:53 pcmrecord\pcmrecord.cpp
文件 4537 2014-06-11 14:13 pcmrecord\pcmrecord.vcxproj
文件 1316 2014-06-11 14:13 pcmrecord\pcmrecord.vcxproj.filters
文件 1524 2014-06-11 14:13 pcmrecord\ReadMe.txt
文件 215 2014-06-11 14:13 pcmrecord\stdafx.cpp
文件 234 2014-06-11 14:13 pcmrecord\stdafx.h
文件 236 2014-06-11 14:13 pcmrecord\targetver.h
文件 29229056 2014-06-16 01:05 pcmrecord.sdf
文件 973 2014-06-11 14:13 pcmrecord.sln
..A..H. 18944 2014-06-16 01:05 pcmrecord.v12.suo
............此处省略11个文件信息
- 上一篇:《数据结构题集C语言版》严蔚敏,吴伟民高清晰pdf版
- 下一篇:PDFDemo和资料
相关资源
- PDFDemo和资料
- wavelet的dll封装与c++调用
- c++教程谭浩强pdf版
- C++ 基于数据包过滤的防火墙设计与实
- 图书管理系统C++课设
- 用visual C++ 6.0编写的计算机图形的一些
- NTL库VC 数论C++函数库
- 学生选课管理系统C++实现
- VC++图像处理源码库
- Data Structures and Algorithm Analysis in C++
- 人工神经网络之BP网络模拟三角函数
- B样条曲线生成算法,用VC++加OpenGL写的
- 不规则三角网生长算法
- c++大作业(程序以及报告)
- 计算机图形学 大作业 多功能图形学程
- 用C++stl与QT实现的A*算法Demo
- 挖金矿游戏源码c++
- C++多人联网泡泡大战完整源码
- 移动曲面拟合法C++描述
- 十个网络驱动层封包截取防火墙源码
- C++清华大学-郑莉-第四版-讲稿(学堂
- vs使用纯c++编写的com组件
- apriori算法c++程序实现,附测试数据以
- 仿360UI界面QT源码
- C++语言编写图像处理程序
- C++职工信息管理 实现文件存取操作
- MFC中B样条绘制
- 操作系统_生产者消费者c++、mfc实现
- 通用杀毒软件VC++源代码
- Windows程序设计小游戏捕鱼达人
评论
共有 条评论