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

📄 hsound.h

📁 一个使用tapi实现的自动语音应答的例子
💻 H
字号:
// HSound.h: interface for the CHSound class.
//
//////////////////////////////////////////////////////////////////////

#if !defined(AFX_HSOUND_H__337B018A_B6BF_4AF8_AB44_60952DFA6897__INCLUDED_)
#define AFX_HSOUND_H__337B018A_B6BF_4AF8_AB44_60952DFA6897__INCLUDED_

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

#include <mmsystem.h>
#include "HPlayList.h"

class CHSound  
{
private:
	BOOL PlayNextFile();
	void PlayNextBuffer(MSG msg);
	HPSTR Open( LPCTSTR szWaveFile, LPWAVEFORMATEX& lpWaveFmt, DWORD& dwDataSize );

	DWORD GetStatus();
	void SetStatus(DWORD dwCurStat);

								  /* Thread to process messages like WM_DONE */
	static UINT CallBackThread (LPVOID pParam);	   
												/* Different possible states */
	#define STT_ASLEEP	0x00000001
	#define STT_PREPARE	0x00000010
	#define STT_PLAYING	0x00000100
	#define STT_RSTTING	0x00001000
	#define STT_CLOSING	0x00010000
	#define STT_OPENING	0x00100000
	#define STT_FILEOPN	0x01000000
	#define STT_EXTRNRS	0x10000000

	static	BOOL		m_bThreadContinue;
	static	HANDLE		m_hStatEvent;
	static	DWORD		m_dwStatus;
	static	BOOL		m_bContinue;
	
	CRITICAL_SECTION	m_statusCrtcSec;
	CRITICAL_SECTION	m_externalResetCrtcSec;
	DWORD				m_dwCurrtBufIndex;
	DWORD				m_dwBufCnt;
	DWORD				m_dwMinBufSize;
	DWORD				m_dwDataSize;
	CWinThread			*m_pCallBackThread;
	HWAVEOUT			m_hWaveOut;
	// Just to make a function more quick!
	HPSTR				m_lpData, m_lpBuf2;
	DWORD				m_dwBLength;
	MMRESULT			mmRes;
	static LPWAVEHDR	m_lpWHdr;

	CHPlayList			m_playList;
							   /* Callback function to receive waveout events*/
	BOOL				m_bExitAfter,
						m_bForceClose;
	UINT				m_sndIndex;
	CWnd*				m_wndTimer;
	DWORD				m_dwDevId;
	unsigned long		m_boss;

public:
	void SetManager(unsigned long mngrThread);
	BOOL Reset();
	BOOL Play (DWORD dwDevId, LPCTSTR szWaveFile);
	BOOL PlayList(DWORD dwDeviceId, BOOL bExitAfter = FALSE, BOOL bDisableForceExit = FALSE);
	BOOL IsPlaying();
	BOOL Close();			  						    /* Close and Cleanup */
	BOOL Stop();										     /* Stop playing */
	BOOL Pause();

	void CleanPlayList();
	void AddToPlayList(CString szWaveFile);

	void SetTimerWindow(CWnd* wndTimer);
	void KillTimer();
	void SetTimer();

	CHSound();
	virtual ~CHSound();
};

#endif // !defined(AFX_HSOUND_H__337B018A_B6BF_4AF8_AB44_60952DFA6897__INCLUDED_)

⌨️ 快捷键说明

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