首先在AndroidStudio中将数据转换为yuv图片数据,然后传到Unity,Unity解析Yuv图片数据并显示
MediaCodec mCodec = MediaCodec.createDecoderByType("video/avc"); final MediaFormat mediaformat = MediaFormat.createVideoFormat("video/avc", VIDEO_WIDTH, VIDEO_HEIGHT); mediaformat.setInteger(MediaFormat.KEY_COLOR_FORMAT, MediaCodecInfo.CodecCapabilities.COLOR_FormatYUV420Flexible); mCodec.configure(mediaformat, null,null, 0);
初始化MediaCodec,然后启动一个线程获取数据,保证数据是一帧的完整数据
然后调用queueInputBuffer,把数据传给MediaCodec。
MediaCodec.BufferInfo info = new MediaCodec.BufferInfo(); long timeoutUs = 1000; int outIndex = mCodec.dequeueOutputBuffer(info, timeoutUs); if (outIndex >= 0) { Image image = mCodec.getOutputImage(outIndex); ByteBuffer buffer = image.getPlanes()[0].getBuffer(); ByteBuffer buffer1 = image.getPlanes()[1].getBuffer(); byte[] arr = new byte[buffer.remaining()]; byte[] arr1 =