📄 wavein.h
字号:
/*------------------------------------------------------------------------------*\
[模块名称]
CWaveIn
[文件名称]
WaveIn.h
[相关文件]
WaveIn.cpp
[目的]
方便音频采集
\*------------------------------------------------------------------------------*/
#ifndef _WAVEIN_H_
#define _WAVEIN_H_
#define WISA_POOR 8000
#define WISA_LOW 11025
#define WISA_NORMAL 22050
#define WISA_HIGH 44100
#define NUM_BUF 10
#define SIZE_AUDIO_FRAME 960
#define SIZE_AUDIO_PACKED 60
#include <mmsystem.h>
class CWaveIn
{
public:
//线程处理
static DWORD WINAPI AudioInThreadProc(LPVOID lpParameter);
public:
//获取数据
virtual void GetData(char *pBuffer,int iLen);
//启动录音
BOOL StartRec();
//停止录音
BOOL StopRec();
//获取实例
inline DWORD GetInstance();
//获取采样位数
inline WORD GetBit();
//获取采样速率
inline DWORD GetSample();
//获取频道数
inline WORD GetChannel();
//设置采样位数
inline void SetBit(WORD wBit);
//设置采样速率
inline void SetSample(DWORD dwSample);
//设置采样速率
inline void SetChannel(WORD wChannel);
//获取错误信息
inline MMRESULT GetLastMMError();
CString GetLastErrorString();
//构造函数
CWaveIn();
//析构函数
virtual ~CWaveIn();
protected:
//打开设备
BOOL OpenDev();
//关闭设备
BOOL CloseDev();
//停止线程
BOOL StopThread();
//启动线程
BOOL StartThread();
//准备缓存
BOOL PerPareBuffer();
//释放缓存
BOOL FreeBuffer();
//开始录音
BOOL OpenRecord();
//结束录音
BOOL CloseRecord();
protected:
//用户实例数据
static DWORD s_dwInstance;
protected:
//频道数
WORD m_wChannel;
//采样速率
DWORD m_dwSample;
//采样位数
WORD m_wBit;
protected:
//音频输入设备句柄
HWAVEIN m_hIn;
//函数调用返回信息
MMRESULT m_mmr;
//回调函数指针
DWORD m_dwAudioInId;
//线程句柄
HANDLE m_hAudioIn;
//WAVEHDR结构缓存指针
WAVEHDR* m_pHdr;
//线程启动标志
BOOL m_bThreadStart;
//设备打开标记
BOOL m_bDevOpen;
//内存分配标记
BOOL m_bAllocBuffer;
//录音开始标记
BOOL m_bRecord;
};
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -