前言
華爲榮耀某型號手機解h265綠屏,無法解碼。
解
華爲手機內置兩個解碼庫,一個自己的,一個OMX.google.hevc.decoder
自己的解碼綠屏
使用google的沒問題,使用type方式創建解碼庫會優先走他自己的
so解決辦法如下
String type = MediaFormat.MIMETYPE_VIDEO_HEVC;
mFormat = MediaFormat.createVideoFormat(type, width, height);
if(!TextUtils.isEmpty(Build.MANUFACTURER) && Build.MANUFACTURER.toUpperCase().contains("HUAWEI") && DecoderUtils.isSupportGoogleH265()) {
//華爲手機強制走google解碼
LogUtil.e(TAG,"華爲手機強制走google解碼");
mCodec = MediaCodec.createByCodecName("OMX.google.hevc.decoder");
}else {
mCodec = MediaCodec.createDecoderByType(type);
}
DecodeUtils
public static boolean isSupportGoogleH265(){
int count = MediaCodecList.getCodecCount();
for(int i=0;i<count;i++){
MediaCodecInfo info = MediaCodecList.getCodecInfoAt(i);
String name = info.getName();
if(name.toLowerCase().equals("omx.google.hevc.decoder")){
return true;
}
}
return false;
}
問題解決。