源码介绍
NetTalk软件结构及事情流程
一.概述:
NetTalk是可视电话软件,能够实现远距离的面临面沟通。
二.组成部份
分网络传输部份、音频输入、音频输出、视频输入、视频输出、音频视频压缩、音频波形显示、界面。共创建个线程,音频输入线程、音频输出线程(这两个有WINAPI隐式创建)、音频视频压缩传送线程和主线程。由于音频的采样率比视频采样率高得多,这里的音频的采样率为8000Hz而视频仅为20左右,所以从宏观来看,音频是接连的,而视频是非接连的,这也就是无须为视频输入输出创建独立线程的原因。
网络传输:鉴于UDP协议,有两组SOCKET,一组用于指令发送和接受(要求可靠),另一组负责音频视频数据的传送和接受(不保证可靠性)。
音频输入:通过waveIn函数族完成接连的录音
音频输出:通过waveOut函数族完成接连的放音
视频输入:通过cap函数族对视频举行捕捉
视频输出:通过cap函数族实现视频输出
音频视频压缩:音频压缩采取G.729规范(8:1,1kbps),视频压缩采取H.263+规范
音频波形显示:将PCM音频数据以波形动态地显示出来
界面:与用户交互
三.事情流程:
1. 软件一般自动运行(当操作系统启用时运行),与服务器通讯,向服务器传送登录信息. 注:目前并没有服务器介入,而直接是客户与客户的通讯
2. 进入监听状态,等候呼叫
3. 呼叫,能够从地址簿呼叫,也可直接打入IP呼叫
4. 与被叫方取得联系后,期待发送方回应,当超过一定时间或由用户终止时,取消呼叫
5. 被叫方接受呼叫请求时,起头实时视频通讯,直就任意一方中断对话或非人为中断