public static final class MediaCodecInfo.VideoCapabilities
extends Object
java.lang.Object | |
↳ | android.media.MediaCodecInfo.VideoCapabilities |
支持查询编解码器视频功能的类。
Public methods |
|
---|---|
boolean |
areSizeAndRateSupported(int width, int height, double frameRate) 返回是否支持给定的视频大小( |
Range<Double> |
getAchievableFrameRatesFor(int width, int height) 返回视频大小可实现的视频帧速率范围。 |
Range<Integer> |
getBitrateRange() 以比特/秒为单位返回支持的比特率范围。 |
int |
getHeightAlignment() 返回视频高度的对齐要求(以像素为单位)。 |
Range<Integer> |
getSupportedFrameRates() 返回支持的帧速率范围。 |
Range<Double> |
getSupportedFrameRatesFor(int width, int height) 返回视频大小支持的视频帧速率范围。 |
Range<Integer> |
getSupportedHeights() 返回支持的视频高度范围。 |
Range<Integer> |
getSupportedHeightsFor(int width) 返回视频宽度支持的视频高度范围 |
Range<Integer> |
getSupportedWidths() 返回支持的视频宽度范围。 |
Range<Integer> |
getSupportedWidthsFor(int height) 返回视频高度支持的视频宽度范围。 |
int |
getWidthAlignment() 返回视频宽度的对齐要求(以像素为单位)。 |
boolean |
isSizeSupported(int width, int height) 返回是否支持给定的视频大小( |
Inherited methods |
|
---|---|
From class java.lang.Object
|
boolean areSizeAndRateSupported (int width, int height, double frameRate)
返回是否支持给定的视频大小( width
和 height
)和 frameRate
组合。
Parameters | |
---|---|
width |
int
|
height |
int
|
frameRate |
double
|
Returns | |
---|---|
boolean |
Range<Double> getAchievableFrameRatesFor (int width, int height)
返回视频大小可实现的视频帧速率范围。 如果编解码器没有发布任何测量数据,可能会返回null
。
这是设备制造商根据编解码器支持的各种常见视频尺寸配置中的全速解码和编码测量的统计采样提供的性能估计。 因此,它只能用于比较设备上的各个编解码器。 该值不适合比较不同的设备,甚至不同的设备的不同的android版本。
在M
版本上 ,返回的范围对应于在测试配置中实现的最快帧速率。 因此,不应使用它来衡量设备上的保证甚至平均编解码器性能。
在N
版本中 ,返回的范围更接近于经过测试的配置中的持续性能。 人们可以期望在超过50%的时间内达到高于下限的持续性能,并且在经过测试的配置中高于低于下限的一半至少90%。 相反,可以预期至少90%的时间性能低于上限的两倍。
经测试的配置使用单个活动编解码器。 对于多个编解码器处于活动状态的用例,应用程序可能会降低性能,并且在大多数情况下性能会显着降低
返回的范围值是从测试的最近帧尺寸插入的。 编解码器的性能受到设备上的其他活动以及环境因素(如电池电量,温度或电源)的严重影响,并且即使在稳定的环境中也会有很大差异。
在只有编解码器性能很重要的情况下使用此方法,例如评估编解码器是否有机会达到性能目标。 编解码器按照设备制造商定义的首选顺序列在MediaCodecList
中。 因此,应用程序应该使用列表中的第一个合适的编解码器来实现电源使用和性能之间的最佳平衡。
Parameters | |
---|---|
width |
int : the width of the video |
height |
int : the height of the video |
Returns | |
---|---|
Range<Double> |
Throws | |
---|---|
IllegalArgumentException |
if the video size is not supported. |
Range<Integer> getBitrateRange ()
以比特/秒为单位返回支持的比特率范围。
Returns | |
---|---|
Range<Integer> |
int getHeightAlignment ()
返回视频高度的对齐要求(以像素为单位)。 这是视频高度必须为的倍数的2的幂。
Returns | |
---|---|
int |
Range<Integer> getSupportedFrameRates ()
返回支持的帧速率范围。
这不是一个绩效指标。 相反,它表达了编码标准中规定的限制,基于编码材料的复杂性,用于以特定帧速率稍后重放,或非实时解码此类材料。
Returns | |
---|---|
Range<Integer> |
Range<Double> getSupportedFrameRatesFor (int width, int height)
返回视频大小支持的视频帧速率范围。
这不是一个绩效指标。 相反,它表达了在编码标准中规定的限制,基于给定尺寸的编码材料的复杂性以用于稍后以特定帧速率播放,或者非实时地解码这些材料。
Parameters | |
---|---|
width |
int : the width of the video |
height |
int : the height of the video |
Returns | |
---|---|
Range<Double> |
Range<Integer> getSupportedHeights ()
返回支持的视频高度范围。
Returns | |
---|---|
Range<Integer> |
Range<Integer> getSupportedHeightsFor (int width)
返回视频宽度支持的视频高度范围
Parameters | |
---|---|
width |
int : the width of the video |
Returns | |
---|---|
Range<Integer> |
Range<Integer> getSupportedWidths ()
返回支持的视频宽度范围。
Returns | |
---|---|
Range<Integer> |
Range<Integer> getSupportedWidthsFor (int height)
返回视频高度支持的视频宽度范围。
Parameters | |
---|---|
height |
int : the height of the video |
Returns | |
---|---|
Range<Integer> |
int getWidthAlignment ()
返回视频宽度的对齐要求(以像素为单位)。 这是一个2的幂次值,视频宽度必须是倍数。
Returns | |
---|---|
int |
boolean isSizeSupported (int width, int height)
返回是否支持给定的视频大小( width
和 height
)。
Parameters | |
---|---|
width |
int
|
height |
int
|
Returns | |
---|---|
boolean |