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

📄 soundbase.h

📁 wince下的录音放音小程序
💻 H
字号:
/**///////////////////////////////////////////////////////////////////////  
// SoundBase.h: interface for the CSoundBase class.                 //
/**///////////////////////////////////////////////////////////////////////
//AUTHOR:                                                           //
//    norains                                                       //
//VERSION:                                                          //
//  1.0.0                                                         //
//DATE:                                                             //
//    Wednesday  10-January -2007                                   //
//Environment:                                                      //
//  EVC4.0 + Standard SDK                                         //
/**///////////////////////////////////////////////////////////////////////
#ifndef SOUNDBASE_H
#define SOUNDBASE_H

#include "mmsystem.h"
//------------------------------------------------------------------------------
//Macro define
#define MAX_SAVEPATH_LENGTH   500 //The length of saved path

//------------------------------------------------------------------------------
//Value type

enum ChannelType
{
 CHANNEL_SINGLE,
 CHANNEL_DOUBLE
};

enum SamplesPerSecType
{
 SAMPLES_11025,
 SAMPLES_22050,
 SAMPLES_44100
};

enum BitsPerSampleType
{
 BITS_8,
 BITS_16
};
//---------------------------------------------------------------------------
//Struct

//Wave format data
typedef struct
{
 ChannelType channel;
 SamplesPerSecType samples;
 BitsPerSampleType bits;
}WAVEFORMAT_SETTING,*PWAVEFORMAT_SETTING;
//------------------------------------------------------------------------------
class CSoundBase  
{
public:
 void StopPlaying();
 void StopRecording();
 void StopAll();
 static CSoundBase* GetInstance();
 BOOL Play(const TCHAR *pszPath = NULL);
 BOOL Record(TCHAR *pszPath,const PWAVEFORMAT_SETTING pWaveFormat = NULL);

 virtual ~CSoundBase();
protected:
 void OnWIM_OPEN(WPARAM wParam, LPARAM lParam);
 void OnWIM_DATA(WPARAM wParam, LPARAM lParam);
 void OnWIM_CLOSE(WPARAM wParam, LPARAM lParam);
 BOOL WriteWaveFileHeader(TCHAR *pszFilename, const PWAVEFORMATEX pWFX, DWORD dwBufferSize,BOOL bCover);
 static void CALLBACK WaveInProc(HWAVEIN hWi,UINT uMsg, DWORD dwInstance,  DWORD dwParam1, DWORD dwParam2);
 CSoundBase();
 void SetRecordWaveFormat(const PWAVEFORMAT_SETTING pWaveFormat);
 
 static CSoundBase *m_pInstance;
 WAVEFORMATEX m_WaveFormatEx;
 BOOL m_bRecording;
 HANDLE m_hSaveFile;
 HWAVEIN m_hWaveIn;
 PBYTE m_pBuffer1;
 PBYTE m_pBuffer2;
 PWAVEHDR m_pWaveHdr1;
 PWAVEHDR m_pWaveHdr2;
 DWORD m_dwDataLength; //The length of the data
 TCHAR m_szSavePath[MAX_SAVEPATH_LENGTH]; //The path to save


};

#endif // SOUNDBASE_H
  

  

⌨️ 快捷键说明

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