从 Android 10(API 级别 29)及更高版本开始,
MediaCodecInfo
显示有关编解码器的更多信息:
isSoftwareOnly()
- 如果编解码器仅在软件中运行,则返回 true。软件编解码器使不 呈现性能的保证。
isHardwareAccelerated()
- 如果编解码器由硬件加速,则返回 true。
isVendor()
- 如果编解码器由设备供应商提供,则返回 true;如果提供编解码器,则返回 false Android 平台的影响
isAlias()
MediaCodecList
可能包含同一底层编解码器的其他条目 使用备用的编解码器名称(别名)。如果 此条目中的 codec 是另一个编解码器的别名。
此外,
MediaCodec.getCanonicalName()
返回通过别名创建的编解码器的基础编解码器名称。
性能点
“性能点”表示编解码器在特定位置呈现视频的能力,
高度、宽度和帧速率例如,UHD_60
性能点
表示以 60 帧渲染的超高清视频(3840x2160 像素)
每秒。
方法
MediaCodecInfo.VideoCapabilities.getSupportedPerformancePoints()
返回一个列表
PerformancePoint
编解码器可以呈现或捕获的条目
您可以通过调用PerformancePoint
PerformancePoint.covers(PerformancePoint)
。
例如,UHD_60.covers(UHD_50)
会返回 true。
我们为所有硬件加速编解码器都提供了性能点列表。 如果编解码器连最低标准都无法满足,则此列表可能为空 性能点
请注意,已升级到 Android 10(API 级别 29)及更高版本且没有
更新供应商映像将没有性能点数据,
数据来自供应商 HAL。在此示例中,getSupportedPerformancePoints()
返回 null。