遇到问题
这个0x80001001也没有一个具体的什么解释。
AI建议
现在都是AI时代了,借助AI进行问题发现是个很有趣的过程。所以我们先问问CHATGPT
解决方案
1. 首先,有可能是其他的应用内容中没有及时释放MediaCodec资源或者操作系统跟硬件编码器的一些系统层面的问题。
因此,先不考虑别的问题,第一时间还是先重启设备。
2. 比较多的情况是由于“KEY_COLOR_FORMAT”的配置与设备所支持的不匹配。此时我们可以根据以下代码来获取一下。
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.LOLLIPOP) {
MediaCodecList codecList = new MediaCodecList(MediaCodecList.REGULAR_CODECS);
for (int i = 0; i < codecList.getCodecInfos().length; i++) {
MediaCodecInfo codecInfo = codecList.getCodecInfos()[i];
if (!codecInfo.isEncoder()) {
continue;
}
try{
MediaCodecInfo.CodecCapabilities capabilities = codecInfo.getCapabilitiesForType("video/avc");
int[] colorFormats = capabilities.colorFormats;
Ln.i("Supported color formats for " + codecInfo.getName() + ":");
for (int formats : colorFormats) {
Ln.i(" " + formats);
}
}catch (Exception ex){
Ln.i("Current codec " + codecInfo + ex);
}
}
}
通过这个获取对应的KEY_COLOR_FORMAT,从而修改对应的mediacodec format.