检查安卓设备是否支持4K视频?

9

我正在尝试在我的应用程序中播放4K视频,但是由于不是所有设备都能播放4K视频,因此我遇到了一些麻烦。

  • 在播放视频之前,我如何在运行时检查该设备是否支持它?

我已经花了几个小时进行研究,但是找不到任何关于这个问题的数据... 我只想知道手机是否支持它? - Ayaan Khan
当你说设备支持4K视频时,你的意思是设备是否有足够的资源来播放视频吗? - hasan
@Jordi Castilla,请问您的minSdkVersion是多少?另外,能否告诉我您是否也在使用Camera2API api? - Anurag Singh
你是如何播放视频的?使用系统API还是自定义播放器? - manishg
你是如何测试的?能否分享整个方法? - NehaK
2个回答

8

首先,您必须记住4k只是一种分辨率,但您还必须记住比特率。

以下是一种测试特定设备是否可实现分辨率/比特率组合的方法:

boolean areSizeAndRateSupported (int width, int height, double frameRate)

https://developer.android.com/reference/android/media/MediaCodecInfo.VideoCapabilities.html#areSizeAndRateSupported(int,%20int,%20double)

此外还有:

isSizeSupported(int width, int height)

这些方法的唯一缺点是仅支持API级别21及以上。您还可以使用此方法检查编解码器功能:
MediaCodecInfo.VideoCapabilities.getVideoCapabilities()

https://developer.android.com/reference/android/media/MediaCodecInfo.CodecCapabilities.html#getVideoCapabilities()

据我所知,它们返回的分辨率可能比实际支持的要低。

另一方面,在您的情况下,Android 5.0以下的设备很可能不足以播放4K视频。即使它们可以,其分辨率也太低,无法真正从4K分辨率中获得任何好处。

因此,在我看来,最优雅的解决方案是假设Android 5.0以下不支持4K,并使用上述方法检查Android 5.0+是否支持。


-1

not an solution - undefined

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接