⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 recorder.h

📁 VB2005源码
💻 H
字号:
// Recorder.h: interface for the CRecorder class.
//
//////////////////////////////////////////////////////////////////////

#if !defined(AFX_RECORDER_H__0ADF01BB_785C_4FA5_B241_3E9D26B90EC9__INCLUDED_)
#define AFX_RECORDER_H__0ADF01BB_785C_4FA5_B241_3E9D26B90EC9__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000

#include <mmsystem.h>
#pragma comment(lib,"winmm.lib")

typedef struct _PCMFORMAT
{
	WORD    wBitsPerSample;//no.of bits per sample for Recording 
	WORD	wChannels;//no.of channels for Recording
	DWORD	dwSampleRate;//Sampling rate for Recording
}PCMFORMAT, *LPPCMFORMAT;
struct WAVECLASS
{
	HWAVE hWave;
	void* lpData;
};

#define MAXNUMOFBUFFER 16

typedef BOOL (*ProcessBuffer)(void* lpData, LPWAVEHDR pwh);

class Recorder
{
public:
	Recorder(int nBufferLength=2048);
	Recorder(PCMFORMAT pcm,int nBufferLength=2048);
	Recorder(WORD wBitsPerSample,WORD wChannels,DWORD dwSampleRate,int nBufferLength=2048);
	virtual ~Recorder();
	void Open(DWORD dwCallBack=NULL,DWORD dwCallbackType=CALLBACK_FUNCTION,MCIDEVICEID wMCIDeviceID=WAVE_MAPPER);
	void Close();
	void Start();
	void Stop();
	void ProcessNextBuffer(LPWAVEHDR pwh);
	void SetFormat(LPPCMFORMAT lpPcmFormat);
	void SetFormat(WORD wBitsPerSample,WORD wChannels,DWORD dwSampleRate);
	BOOL IsRecording();
	BOOL IsDeviceOpen();
	void SetBufferFunction(void* lpData, ProcessBuffer fnProcess) { m_lpData = lpData, fnProcessBuffer = fnProcess; }
	DWORD GetPosition();
	BOOL Pause();
	BOOL Continue();
	BOOL IsFormatSupported(WAVEFORMATEX wfEx, UINT nDev=WAVE_MAPPER);
	HANDLE m_hEvent;
	LPWAVEHDR m_lpWaveHdr;
protected:
	void* m_lpData;
	HANDLE m_hThread;
	ProcessBuffer fnProcessBuffer;
	WAVECLASS m_waveClass;
	GLOBALHANDLE m_hWaveInHdr[MAXNUMOFBUFFER];
	LPWAVEHDR m_lpWaveInHdr[MAXNUMOFBUFFER];
	GLOBALHANDLE m_hInBuffer[MAXNUMOFBUFFER];
	LPBYTE m_lpInBuffer [MAXNUMOFBUFFER];
	PCMFORMAT m_PcmFormat;
	WAVEFORMATEX m_WaveFormat;
	HWAVEIN m_hWaveIn;
	BOOL m_bRecording;
	BOOL m_bDeviceOpen;
	DWORD m_dwBufferSize;
};

#endif // !defined(AFX_RECORDER_H__0ADF01BB_785C_4FA5_B241_3E9D26B90EC9__INCLUDED_)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -