最近在做sip客户端的开发,基于windows平台的.在语音会话中老是出现中断的问题.经过查找发现有两种状况:
1.发送线程发送一段时间后就不发送数据了.
2.播放线程播放一段时间后,在waveoutwrite函数里不返回了,而msdn上说这个函数是异步的,无论如何也会返回的.
对于问题1最后排除了rtp库的问题,发现问题处在在打开录音设备时设的那个回调函数上,那个回调函数执行一段时间后就再也没有进去.多方查找原因也没有找到,从网上down的几个源码也是用回调函数实现的,也出现这个问题.换到其他机子上也是这样.最后,一个同事,找到以前他写的一个源码,不采用回调函数,而采用回调线程,问题就解决了.再也没有中断过.
虽然问题解决了,还是很纳闷,为什么回调函数就不可以?