WEB开发网
开发学院软件开发VC Skype录音答录机编程思路和代码 阅读

Skype录音答录机编程思路和代码

 2008-09-01 19:25:37 来源:WEB开发网   
核心提示: 接下来我们在“偷取”录音数据(即通话中我说话的音频数据),看代码: 修改 waveInPrepareHeader 函数地址//CAPIHook g_waveInPrepareHeader("winmm.dll", "waveInPrep

接下来我们在“偷取”录音数据(即通话中我说话的音频数据),看代码:

//
// 修改 waveInPrepareHeader 函数地址
//
CAPIHook g_waveInPrepareHeader("winmm.dll", "waveInPrepareHeader", (PROC) Hook_waveInPrepareHeader, TRUE);
//
// This is the waveInPrepareHeader replacement function
//
MMRESULT WINAPI Hook_waveInPrepareHeader ( HWAVEIN hwi, LPWAVEHDR pwh, UINT cbwh )
{
// 我们都知道,常规录音是用多个录音缓冲轮流交替使用的方式来得到来自
// 硬件设备的语音数据的,当任何一个录音缓冲数据满的时候,录音程序将
// 调用 Win32 API waveInPrepareHeader 函数来准备下一个录音缓冲,调用这
// 个函数时传递的 LPWAVEHDR 指针中刚好有已经录好的音频数据,我们
// 用同样的方式将数据取走。
SendDataToMainWnd ( pwh->lpData,
pwh->dwBytesRecorded > 0 ? pwh->dwBytesRecorded : pwh->dwBufferLength,
ENUM_CATCHSOUNDTYPE_waveInPrepareHeader );
// Call the original waveInPrepareHeader function
MMRESULT nResult = ((PFN_waveInPrepareHeader)(PROC) g_waveInPrepareHeader )
(hwi, pwh, cbwh);
// Return the result back to the caller
return(nResult);
}

至此,Skype通话过程中音频输入和输出的数据(即对方讲话和我自己讲话的声音)已经全部“偷取”到了,接下来只要压缩成mp3格式即可,mp3压缩代码网上很多,随便下载一个来用就可以了,我用的是“hw_mp3_enc.dll library”,效果一般,但用做电话录音足亦。

上一页  1 2 3 4 5 6  下一页

Tags:Skype 录音 答录机

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接