Host 端获取到Camera 数据流经过Mediacodec编码后为H264流发送到另一个设备上面进行显示预览; /**1.建立AOA通信
*2.获取Camera预览数据流
*3.对Camera进行编码为H264
*4.发送数据到device端,AOA数据发送最大量为16K(分包处理)
*5.接收到数据后Mediacodec进行解码显示;
*/
调试过程出现的问题: 直接接收到host端发送过来的数据,进行解码会出现卡顿丢帧问题; 原因:发送过来后,直接解码,是耗时操作,第一帧解码完成后,已经是第N帧的数据了,又开始解码第
N帧的数据;所以中间会丢失几帧数据,所以表现出来的就是卡顿;
解决:接收到host端数据后,进行缓存到,使用ArrayBlockingQueue(阻塞队列)即可解决数据丢失问题;
MainActivity.java
import android.Manifest;
import android.app.PendingIntent;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.content.pm.PackageManager;
import android.graphics.ImageFormat;
import android.graphics.SurfaceTexture;
import android.hardware.Camera;
import android.hardware.usb.UsbConstants