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

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


你可能感兴趣的:(iOS_PSC)