音视频不同步
1、问题现象:iOS版本在网络环境差的情况下,会比较容易出现音视频不同步的问题
2、问题分析:
经多次测试发现,观看时间越长,音频延迟的越严重;
然后查看Log,发现音频接收缓存队列中并没有堆积buffer;
3、问题解决:
发现在网络环境比较差的情况下,avRecvAudioData会经常返回-20012的错误码,
else if (readSize ==AV_ER_DATA_NOREADY) {
// usleep(2*1000);
usleep(100);
}
得到-20012后,接收线程会执行usleep,看来接收线程就是被这儿给阻塞住了,
sleep 2000ms时间太长,但拿掉usleep会使cpu达到100%的使用率,于是就改成sleep 100ms;
另外,在SDK 3.1.5.19之后的版本中也有加入音视频同步机制,保证接收到的音频和视频数据时间戳上有同步。
目前客户测试下来,没有再反馈此问题;