📄 talkabout.h
字号:
#ifndef _SOUND_TALK_ABPUT_OUT_
#define _SOUND_TALK_ABPUT_OUT_
#include <mmsystem.h>
//设备列表,可以是回放和录音设备
typedef struct _tagSoundDevice{
BYTE btDeviceType; //0:replay,1:capture
char pstrDeviceDesc[100];
char pstrDeviceName[100];
GUID * pDeviceGuid;
} SOUND_DEVICE;
//支持的音频格式
typedef struct _tagFormat{
int nFormatIndex;
char pstrFormatDesc[255];
WAVEFORMATEX wfx;
} SOUND_FORMAT;
//支持的音频输入源
typedef struct _tagInputSource{
UINT uLineIndex;
MIXERLINE LineInfo;
char pstrSourceName[255];
} SOUND_INPUT_SOURCE;
typedef BOOL (CALLBACK *LPReadDataCallback)(BYTE *, DWORD, DWORD *, HANDLE, short, LPVOID);
//BOOL CALLBACK ReadDataCallback( BYTE * pData,DWORD nDataLen, DWORD * pnDataReaded, HANDLE hDevice, short nChannel, VOID* pContext );
typedef BOOL (CALLBACK *LPCaptureDataCallback)(BYTE *, UINT, HANDLE, LPVOID);
//BOOL CALLBACK CaptureDataCallback( BYTE * pData,UINT nDataLen,HANDLE hDevice,VOID* pContext );
#ifdef __cplusplus
extern "C" {
#endif // __cplusplus
//函数列表
//all
BOOL __stdcall TK_Destroy();
BOOL __stdcall TK_GetFIleWaveFormatex(LPCTSTR pFile, WAVEFORMATEX * pwfx);
//input
HANDLE __stdcall TK_CreateIn(HWND hMsgWnd,SOUND_DEVICE * pInputDevice);
BOOL __stdcall TK_EnumCaptureSoundDevice(SOUND_DEVICE * pDeviceList,int & nDeviceCount); //可以在TK_CreateIn前调用
BOOL __stdcall TK_EnumInputSource(HANDLE hDevice, SOUND_INPUT_SOURCE * pSourceList,int & nSourceCount);
BOOL __stdcall TK_EnumInputFormats(HANDLE hDevice, SOUND_FORMAT * pFormatList,int & nFormatCount);
BOOL __stdcall TK_SetInputSource(HANDLE hDevice, SOUND_INPUT_SOURCE & source);
BOOL __stdcall TK_InputGetVolume(HANDLE hDevice, LONG* pVol);
BOOL __stdcall TK_InputSetVolume(HANDLE hDevice, LONG vol);
BOOL __stdcall TK_InputGetMinMaxVolume(HANDLE hDevice, LONG * pMinVol, LONG * pMaxVol);
BOOL __stdcall TK_StartCaputre(HANDLE hDevice, WAVEFORMATEX * pwfx, UINT nDataMsg, LPCaptureDataCallback fb, VOID* pContext, LPCTSTR pstrFile);
BOOL __stdcall TK_StopCaputre(HANDLE hDevice);
//output
HANDLE __stdcall TK_CreateOut(HWND hMsgWnd,SOUND_DEVICE * pOutputDevice);
BOOL __stdcall TK_EnumSoundDevice(SOUND_DEVICE * pDeviceList,int & nDeviceCount); //可以在TK_CreateOut前调用
BOOL __stdcall TK_EnumOutputFormats(HANDLE hDevice, SOUND_FORMAT * pFormatList,int & nFormatCount);
BOOL __stdcall TK_StartPlay(HANDLE hDevice, short nChannel,WAVEFORMATEX * pwfx,LPReadDataCallback fb,VOID * pContext,LPCTSTR pstrFile);
BOOL __stdcall TK_StopPlay(HANDLE hDevice, short nChannel);
BOOL __stdcall TK_OutputGetVolume(HANDLE hDevice, short nChannel, LONG* pVol);
BOOL __stdcall TK_OutputSetVolume(HANDLE hDevice, short nChannel, LONG vol);
BOOL __stdcall TK_OutputGetMinMaxVolume(HANDLE hDevice, short nChannel, LONG * pMinVol, LONG * pMaxVol);
#ifdef __cplusplus
}
#endif // __cplusplus
#endif //_SOUND_TALK_ABPUT_OUT_
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -