📄 readme.txt
字号:
========================================================================
Talk About 使用说明
========================================================================
一、结构说明
1、设备列表,可以是回放和录音设备
typedef struct _tagSoundDevice{
BYTE btDeviceType; //0:回放设备,1:捕获设备
char pstrDeviceDesc[100]; //设备说明
char pstrDeviceName[100]; //设备名称
GUID * pDeviceGuid; //设备GUID
} SOUND_DEVICE;
2、支持的音频格式
typedef struct _tagFormat{
int nFormatIndex; //格式序号
char pstrFormatDesc[255]; //格式说明
WAVEFORMATEX wfx; //格式的信息
} SOUND_FORMAT;
3、支持的音频输入源
typedef struct _tagInputSource{
UINT uLineIndex; //音频输入源序号
MIXERLINE LineInfo; //音频输入源信息
char pstrSourceName[255]; //音频输入源名称
} SOUND_INPUT_SOURCE;
二、回调函数说明
1、typedef BOOL (CALLBACK *LPReadDataCallback)(BYTE *, DWORD, DWORD *, HANDLE, short, LPVOID);
说明:
这个回调函数在音频播放时使用。
在播放完已有的音频数据,需要新的音频数据填充时回调。
BYTE * 将新的音频数据拷贝到这里
DWORD 需要拷贝的数据的长度
DWORD * 实际拷贝的数据的长度(如果没有新的数据,请将该项赋值为0返回)
HANDLE 播放设备句柄,由TK_CreateOut返回
short 播放设备的混音通道
LPVOID 用户数据指针
使用:
请参照如下定义:
BOOL CALLBACK ReadDataCallback( BYTE * pData,DWORD nDataLen, DWORD * pnDataReaded, HANDLE hDevice, short nChannel, VOID* pContext );
2、typedef BOOL (CALLBACK *LPCaptureDataCallback)(BYTE *, UINT, HANDLE, LPVOID);
说明:
这个回调函数在音频捕获时使用。
在捕获到一定量的数据,通过这个回调函数交给用户。
BYTE * 数据地址
UINT 数据长度
HANDLE 采集设备句柄,由TK_CreateIn返回
LPVOID 用户数据指针
使用:
请参照如下定义:
BOOL CALLBACK CaptureDataCallback( BYTE * pData,UINT nDataLen,HANDLE hDevice,VOID* pContext );
三、函数列表
1、公用函数
BOOL TK_Destroy();
函数说明:删除函数。
参数列表:无
注意事项:将同时卸载采集和播放设备
BOOL __stdcall TK_GetFIleWaveFormatex(LPCTSTR pFile, WAVEFORMATEX * pwfx);
函数说明:从WAVE文件中取得格式信息。
参数列表:
LPCTSTR pFile (IN)WAVE全路径文件名
WAVEFORMATEX * pwfx (OUT)WAVE格式
注意事项:无
2、关于音频捕获的函数
BOOL TK_EnumCaptureSoundDevice(SOUND_DEVICE * pDeviceList,int & nDeviceCount);
函数说明:
获得捕获设备列表函数。
参数列表:
SOUND_DEVICE * pDeviceList (IN)设备列表
int & nDeviceCount (IN/OUT)设备数量
传入时需要赋值分配的设备数组长度
传出时值是已赋值设备个数
注意事项:
可以在TK_CreateIn前调用。
HANDLE __stdcall TK_CreateIn(HWND hMsgWnd,SOUND_DEVICE * pInputDevice);
函数说明:
初始化音频采集设备
参数列表:
HWND hMsgWnd (IN)接收消息的窗口句柄
SOUND_DEVICE * pInputDevice (IN)指定采集设备,赋NULL则为缺省采集设备
返回值:打开的采集设备句柄
注意事项:无
BOOL __stdcall TK_EnumInputSource(HANDLE hDevice, SOUND_INPUT_SOURCE * pSourceList,int & nSourceCount);
函数说明:
获得捕获音频输入源列表。
参数列表:
HANDLE hDevice (IN)指定采集设备句柄
SOUND_INPUT_SOURCE * pSourceList (OUT)输入源列表
int & nSourceCount (IN/OUT)输入源数量
传入时需要赋值分配的输入源数组长度
传出时值是已赋值输入源个数
注意事项:无
BOOL __stdcall TK_EnumInputFormats(HANDLE hDevice, SOUND_FORMAT * pFormatList,int & nFormatCount);
函数说明:
获得捕获设备支持的格式列表。
参数列表:
HANDLE hDevice (IN)指定采集设备句柄
SOUND_FORMAT * pFormatList (IN)格式列表
int & nFormatCount (IN/OUT)格式数量
传入时需要赋值分配的格式数组长度
传出时值是已赋值格式个数
注意事项:无
BOOL __stdcall TK_SetInputSource(HANDLE hDevice, SOUND_INPUT_SOURCE & source);
函数说明:
设置捕获音频输入源。
参数列表:
HANDLE hDevice (IN)指定采集设备句柄
SOUND_INPUT_SOURCE & source (IN)要设置的输入源
注意事项:必须设置音频输入源,否则无法设定音量。
BOOL __stdcall TK_InputGetMinMaxVolume(HANDLE hDevice, LONG * pMinVol, LONG * pMaxVol);
函数说明:
得到捕获音量的范围。
参数列表:
HANDLE hDevice (IN)指定采集设备句柄
LONG * pMinVol (OUT)音频范围的最小值
LONG * pMaxVol (OUT)音频范围的最大值
注意事项:无
BOOL __stdcall TK_InputGetVolume(HANDLE hDevice, LONG* pVol);
函数说明:
得到当前捕获音频。
参数列表:
HANDLE hDevice (IN)指定采集设备句柄
LONG* pVol (OUT)当前音量
注意事项:无
BOOL __stdcall TK_InputSetVolume(HANDLE hDevice, LONG vol);
函数说明:
设置当前捕获音量。
参数列表:
HANDLE hDevice (IN)指定采集设备句柄
LONG vol (IN)要设置的音量
注意事项:无
BOOL __stdcall TK_StartCaputre(HANDLE hDevice, WAVEFORMATEX * pwfx, UINT nDataMsg, LPCaptureDataCallback fb, VOID* pContext, LPCTSTR pstrFile);
函数说明:
开始捕获音频数据。
参数列表:
HANDLE hDevice (IN)指定采集设备句柄
WAVEFORMATEX * pwfx (IN)捕获音频的格式
UINT nDataMsg (IN)有数据消息:将发送这个消息到hMsgWnd
LPCaptureDataCallback fb (IN)有数据时回调
VOID* pContext (IN)用户数据指针
LPCTSTR pstrFile (IN)需要直接保存文件时的文件名
不保存则赋NULL
注意事项:无
BOOL __stdcall TK_StopCaputre(HANDLE hDevice);
函数说明:
停止捕获音频数据。
参数列表:
HANDLE hDevice (IN)指定采集设备句柄
注意事项:无
3、关于音频播放的函数
BOOL TK_EnumSoundDevice(SOUND_DEVICE * pDeviceList,int & nDeviceCount);
函数说明:
获得回放音频设备。
参数列表:
SOUND_DEVICE * pDeviceList (OUT)设备列表
int & nDeviceCount (IN/OUT)设备数量
传入时需要赋值分配的设备数组长度
传出时值是已赋值设备个数
注意事项:
可以在TK_CreateOut前调用
HANDLE __stdcall TK_CreateOut(HWND hMsgWnd,SOUND_DEVICE * pOutputDevice);
函数说明:
初始化音频播放设备
参数列表:
HWND hMsgWnd (IN)接收消息的窗口句柄
SOUND_DEVICE * pInputDevice (IN)指定播放设备,赋NULL则为缺省播放设备
返回值:打开的播放设备句柄
注意事项:无
BOOL __stdcall TK_EnumOutputFormats(HANDLE hDevice, SOUND_FORMAT * pFormatList,int & nFormatCount);
函数说明:
获得回放设备支持的音频格式。
参数列表:
HANDLE hDevice (IN)指定播放设备句柄
SOUND_FORMAT * pFormatList (IN)格式列表
int & nFormatCount (IN/OUT)格式数量
传入时需要赋值分配的格式数组长度
传出时值是已赋值格式个数
注意事项:无
BOOL __stdcall TK_StartPlay(HANDLE hDevice, short nChannel,WAVEFORMATEX * pwfx,LPReadDataCallback fb,VOID * pContext,LPCTSTR pstrFile);
函数说明:
开始回放。
参数列表:
HANDLE hDevice (IN)指定播放设备句柄
short nChannel (IN)指定播放的混音通道,最大为16
SOUND_FORMAT &format (IN)音频回放格式
LPReadDataCallback fb (IN)需要数据时回调
VOID * pContext (IN)用户数据指针
LPCTSTR pstrFile (IN)需要将回放的数据存盘时的文件名
不保存则赋NULL
注意事项:无
BOOL __stdcall TK_StopPlay(HANDLE hDevice, short nChannel);
函数说明:
停止回放
参数列表:
HANDLE hDevice (IN)指定播放设备句柄
short nChannel (IN)指定播放的混音通道
注意事项:无
BOOL __stdcall TK_OutputGetMinMaxVolume(HANDLE hDevice, short nChannel, LONG * pMinVol, LONG * pMaxVol);
函数说明:
得到播放音量的范围。
参数列表:
HANDLE hDevice (IN)指定播放设备句柄
short nChannel (IN)指定播放的混音通道
LONG * pMinVol (OUT)音频范围的最小值
LONG * pMaxVol (OUT)音频范围的最大值
注意事项:如果hDevice为非法的(如0),将控制系统主音量
BOOL __stdcall TK_OutputGetVolume(HANDLE hDevice, short nChannel, LONG* pVol);
函数说明:
得到当前播放音频。
参数列表:
HANDLE hDevice (IN)指定播放设备句柄
short nChannel (IN)指定播放的混音通道
LONG* pVol (OUT)当前音量
注意事项:如果hDevice为非法的(如0),将控制系统主音量
BOOL __stdcall TK_OutputSetVolume(HANDLE hDevice, short nChannel, LONG vol);
函数说明:
设置当前播放音量。
参数列表:
HANDLE hDevice (IN)指定播放设备句柄
short nChannel (IN)指定播放的混音通道
LONG vol (IN)要设置的音量
注意事项:如果hDevice为非法的(如0),将控制系统主音量
/////////////////////////////////////////////////////////////////////////////
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -