在现有逻辑尽量不动的情况下对CarEye的推流库在网络状态不理想的情况下进行一点优化,现有的逻辑是你调用接口推送媒体流并不是立刻就推送到网络上的,而是推送到一个队列中,然后有专门的推送线程从队列中读取数据然后进行推送,在网络正常的情况下这种逻辑是没有问题的,但如果网络不理想的时候,而你的队列申请的空间又不足够大,就会很容易造成队列溢出,这时候进行入队操作时会不断出队旧数据释放空间以将新数据入队,这就造成了一种假死局面,CPU的压力过大,线程切换缓慢,那么在此之前接口函数中进行了一点优化,在入队时会检测网络状态,如果网络断开则丢掉非关键帧,只将关键帧进行入队操作,虽然这样没法完全杜绝假死现象,但在很大程度上减轻了入队时的压力,从而保证了线程的有效切换。