Skype录音答录机编程思路和代码
2008-09-01 19:25:37 来源:WEB开发网一个有趣的功能:我们录音后的mp3文件播放时,我可以让对方的声音在左声道,我自己的声音在右声道,好像两个人面对面在对话一样。其实做起来并不难,从上面的代码我们知道,其实输入和输出的音频数据是独立获取的,我们在合并到mp3文件时,将输入的数据存为左声道,输出的数据存为右声道即可。
既然叫“Skype答录机”,除了有录音功能外,还应该有自动应答功能,要实现这个功能有两个办法:
a) 当来电震铃超过规定的次数时自动提机,将录音通道切换到“立体声混音”,然后播放之前准备好的一个语音文件(如:您好,我现在不在电脑旁,有事请留言),本软件使用的就是这种方式;
b) 当来电震铃超过规定的次数时自动提机,然后播放之前准备好的一个语音文件(如:您好,我现在不在电脑旁,有事请留言)数据直接传递至上面的.dll文件相关函数中,然后 waveInPrepareHeader 函数中将系统从麦克风中录制的声音替换掉,这种方式比较难控制,但可以实 现很多奇怪的效果,比如通话变声等。
需要注意的地方:该程序是通过钩子方式截取Skype的音频数据,所以程序的执行效率要求很高,对于慢速处理的操作(如:压缩mp3数据、数据存盘等)最好是放到其他线程中处理,否则会影响Skype通话质量,造成通话断断续续的感觉,录音数据也可能会丢失。
软件执行界面
主界面:
☆ 配置界面:
说明:
由于该软件为“深圳市伟信科技开发有限公司”的商业软件,这个软件是为了“无线Skype话机”而开发的,使用该话机可以离开电脑像操作普通手机一样进行免费的Skype通话了。
详情请见:http://www.viction.net
出于商业道德的考虑,我不能将整个工程源代码全部公开,但有关Skype录音和应答方面的关键性代码已经全部包含在文件包里了,只要稍加修改就可以添加到自己的工程项目中了。
以上程序在Windows XP/ Skype2.5 上测试通过,但Skype3.0 以后的版本录音好像有点问题,因为时间的关系,我尚未查找其中的原因,我初步猜测 Skype 在调用 waveInPrepareHeader 函数前将数据清除掉了,可以试着捕捉 MM_WIM_DATA 消息来获取录音数据,因为工作比较忙,所以没时间来做尝试,有兴趣的朋友可以来完成它,如果有朋友完成了请将你的方法email给我,多谢。
谢谢曹昌利、陈容清、周伟波等几位同志对本软件的严格测试。
- ››Skype视频通话有望CES期间登录iPhone
- ››Skype官网出现iPhone应用帮助文档,随后被删除
- ››Skype新版整合Facebook增加视频会议功能
- ››Skype 2.0.1 for iPhone 评测
- ››Skype升级iPhone版应用 支持多任务处理
- ››Skype向所有设备和台式应用开放软件开发包
- ››Skype称将推多平台:支持手机与电视视频通话
- ››Skype终于出iPhone版了 还支持3G网络
- ››Skype 2.0 for iPhone 支持3G下工作
- ››Skype 2.0 for iPhone 已经可以工作在3G模式下
- ››Skype 周四登陆 Verizon 9 款黑莓 Android 手机
- ››Skype 发布 Symbian 应用 用户可拨打免费网络电话...
更多精彩
赞助商链接