有没有办法找出使用MediaCodec.createDecoderByType(type)接收的解码器是硬件解码器还是软件解码器?
答案 0 :(得分:10)
没有真正的正式标志用于指示编解码器是硬件还是软件编解码器。实际上,你可以这样做:
MediaCodec codec = MediaCodec.createDecoderByType(type);
if (codec.getName().startsWith("OMX.google.")) {
// Is a software codec
}
(MediaCodec.getName()
方法自API级别18开始可用。对于较低的API级别,您需要迭代MediaCodecList
中的条目,并手动选择适合您需要的正确编解码器。)