Прежде всего, вы должны помнить, что 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 lollipop, скорее всего, недостаточно быстры, чтобы воспроизводить видео 4k. Или даже если они могут, их разрешение слишком низкое, чтобы получить какую-либо выгоду от разрешения 4k.
Так, на мой взгляд, самым изящным решением является предположить, что 4k не поддерживается ниже android 5.0 и использует вышеописанный метод проверки того, поддерживается ли он на android 5.0+.
Я пробовал R & D на нем в течение нескольких часов, но не могу найти никаких данных по этой проблеме ... Я просто хочу знать, поддерживает ли это телефон или нет? –
Что вы имеете в виду, когда говорите, что устройство поддерживает видео 4k? Вы имеете в виду, если у устройства есть ресурсы для воспроизведения видео? – hasan83
@ Jordi Castilla minSdkVersion, пожалуйста? Алос, дайте мне знать, если вы также используете Camera2API api? –