IOS_音视频不同步问题

音视频不同步

1、问题现象:iOS版本在网络环境差的情况下,会比较容易出现音视频不同步的问题

2、问题分析:

          经多次测试发现,观看时间越长,音频延迟的越严重;

          然后查看Log,发现音频接收缓存队列中并没有堆积buffer;

        2017-12-20 11:22:14.072473+0800 Kalay[465:106760] channel.audioQueue.count:[0] channel.avChannel:[0]
        2017-12-20 11:22:14.077151+0800 Kalay[465:106760] channel.audioQueue.count:[0] channel.avChannel:[0]

   这说明接收到的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之后的版本中也有加入音视频同步机制,保证接收到的音频和视频数据时间戳上有同步。

    目前客户测试下来,没有再反馈此问题;


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值