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

📄 rectestdlg.h

📁 实时语音通信的实现
💻 H
字号:
// RecTestDlg.h : header file
//

#if !defined(AFX_RECTESTDLG_H__290A608A_1E69_46C6_BB47_939AA3598904__INCLUDED_)
#define AFX_RECTESTDLG_H__290A608A_1E69_46C6_BB47_939AA3598904__INCLUDED_

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


/////////////////////////////////////////////////////////////////////////////
// CRecTestDlg dialog
#define InBlocks 4 //存储输入音频数据的单元数
#define OutBlocks 4  //存储输出音频数据的单元数
#define  INP_BUFFER_SIZE 16384
#define  PORT 8000
#include "stdafx.h"

struct CAudioData
{
	PBYTE lpdata;
	DWORD dwLength;
};

class CRecTestDlg : public CDialog
{
// Construction
public:
	CRecTestDlg(CWnd* pParent = NULL);	// standard constructor
    CString GetError(DWORD error);
// Dialog Data
	//{{AFX_DATA(CRecTestDlg)
	enum { IDD = IDD_RECTEST_DIALOG };
	//}}AFX_DATA

	// ClassWizard generated virtual function overrides
	//{{AFX_VIRTUAL(CRecTestDlg)
	protected:
	virtual void DoDataExchange(CDataExchange* pDX);	// DDX/DDV support
	//}}AFX_VIRTUAL

// Implementation
protected:
	HICON m_hIcon;
 	
	HWAVEIN hWaveIn;    //声音输入
	HWAVEOUT hWaveOut;  //输出设备

	PWAVEHDR pWaveHdr1,pWaveHdr2;    //相关"头结构体"          
	PWAVEHDR pWaveHdrOut;		
	WAVEFORMATEX m_waveformin,m_waveformout;    

	PBYTE pBuffer1,pBuffer2;//输入设备所用缓冲区
public:
	//用于暂存录入后要发送的及接收到的即将要播放的声音文件的循环队列,
	CAudioData m_AudioDataIn[InBlocks],m_AudioDataOut[OutBlocks];
   	int   nAudioIn, nSend, //录入、发送指针
	      nAudioOut, nReceive;//接收、播放指针
        //对于录音和放音都存在和网络的同步问题,主要靠这些指针进行协调
	// Generated message map functions
	//{{AFX_MSG(CRecTestDlg)
	virtual BOOL OnInitDialog();
	afx_msg void OnSysCommand(UINT nID, LPARAM lParam);
	afx_msg void OnPaint();
	afx_msg HCURSOR OnQueryDragIcon();
	afx_msg void OnBegin();
	afx_msg void OnMM_WIM_DATA(UINT wParam,LONG lParam);
	afx_msg void OnMM_WIM_CLOSE(UINT wParam,LONG lParam);
	afx_msg void OnMM_WOM_OPEN(UINT wParam,LONG lParam);
	afx_msg void OnMM_WOM_DONE(UINT wParam,LONG lParam);
	afx_msg void OnMM_WOM_CLOSE(UINT wParam,LONG lParam);
	virtual void OnOK();
	//}}AFX_MSG
	DECLARE_MESSAGE_MAP()
};

//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.

#endif // !defined(AFX_RECTESTDLG_H__290A608A_1E69_46C6_BB47_939AA3598904__INCLUDED_)

⌨️ 快捷键说明

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