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

📄 record.h

📁 实现了录音,放音功能!在evc4.0下编译功过,wince5.0下能正常录音,放音,暂停录放音!
💻 H
字号:

#ifndef _RECORD_H_
#define _RECORD_H_

#include <windows.h>
#include <dsound.h>
#include "codectypes.h"
#include "AudioFile.h"

#define WM_RECDING  WM_USER + 800
#define WM_STOPRECD  WM_USER + 801

typedef struct  {
	//	RiffHdr riffHdr;
	char fileID[4];
	DWORD fileleth;
	char wavTag[4];
	char FmtHdrID[4];
	DWORD  FmtHdrLeth;
	//	ChunkHdr FmtHdr;
	WORD FormatTag;
	WORD Channels;
	DWORD SamplesPerSec;
	DWORD AvgBytesPerSec;
	WORD BlockAlign;
	WORD BitsPerSample;
	//	ChunkFmtBody FmtBody;
	char DataHdrID[4];
	DWORD  DataHdrLeth;
	//	ChunkHdr DataHdr;
} WaveHdr;

struct buf_Mode {
	BYTE ucSize;
	BYTE ucUsed;
};

enum BufMode { _2to4, _4to8, _8to16 };


class Record
{
public:
	virtual ~Record();
	MMRESULT ToRec();

	MMRESULT InitRecord(WAVEFORMATEX & wfx);
	MMRESULT OpenMic();
	MMRESULT SetBufSiz(DWORD dwBufSiz);
	MMRESULT ClosMic();
	MMRESULT ClosRecord();
	MMRESULT ToPlay(LPCTSTR pszFileName);
	MMRESULT ToPaus();
	MMRESULT ToStop();
	void SetCodecInterface(CodecInterfaceType& CodecInterf);

	friend extern Record & Recorder(BufMode ModeKey = _4to8, DWORD dwBufSiz = 1600 /* 100ms sample data */);

	HANDLE m_fh;
	DWORD m_dwPCMSiz;

protected:
	Record(BufMode ModeKey, DWORD dwBufSiz);

	CodecInterfaceType* m_pCodecInterf;

	const BYTE m_BUFBLKSIZE;
	const BYTE m_BUFBLKUSED;
	DWORD m_BufSiz;
	UINT m_uiDeviceId;
	WAVEFORMATEX m_wfx;
	DWORD m_dwWaitTime;                                     // The time wait to check buffer.
	PWAVEHDR m_pDataHdr;                                    // Pointer to waveHeader(wave data header) array.
	BYTE m_BufNO;
	HWAVEIN m_hwi;                                          // Handle of the wave in device.
	HANDLE m_hevDone;                                       // Handle of the event in recording.
	PBYTE m_pEncData;
	DWORD m_EncDataSiz;

	CodecContext m_Data;
	

private:
};


#endif

⌨️ 快捷键说明

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