最近需要解码海康的裸数据流,是h264的.因为是小白,啥也不会,于是就搜吧,这样那样的问题和解决办法一大堆,一个个测试呗,结果看到MediaCodec能够解码byte[]数组的功能,于是就开始了复制粘贴....
好吧,完毕,测试,直接蹦....
华为手机测试
因为需要的就是实例化MediaCodec,所以问题不大,开始看问题
一步一步的屏蔽代码运行测试
发现在
MediaCodec mediaCodec=MediaCodec.createEncoderByType("video/avc");MediaFormat format = MediaFormat format=MediaFormat.createVideoFormat("video/avc", 640, 480); //这里format参数设置我没写上来,有需要的自己添加 ...... mediacoder.configure(format, null, null, MediaCodec.CONFIGURE_FLAG_ENCODE);
上面的这一句屏蔽后,运行没问题了,那么,问题来了,是哪个参数出了问题呢?
耗费半天时间,测试到是第三个参数不能为null
原因不明,别问我为什么,因为我也小白..
然后又是一番资料查询,没看到有这方面说明的,好像就没有人出现这种情况一样,于是,我就悲剧了,自己整个参数出来呗,然后的然后,整出了个uuid
好吧,上代码
UUID uuid=UUID.randomUUID();//这个据说是可以得到本机的那什么唯一标识还是什么意思,没留意
因为mediacoder.configure(format, null, 参数三, MediaCodec.CONFIGURE_FLAG_ENCODE);
参数三是一个MediaCrypto类型的,我一向都是不知道什么意思