2015-06-15 2 views
8

Я пытаюсь воспроизвести видео 4K в своем приложении, но пока все устройства не могут воспроизводить видео 4K, у меня возникают некоторые проблемы.Проверьте, поддерживает ли устройство Android 4K видео?

  • Как я могу проверить во время выполнения, если это устройство поддерживает его или нет, прежде чем воспроизводить видео?
+0

Я пробовал R & D на нем в течение нескольких часов, но не могу найти никаких данных по этой проблеме ... Я просто хочу знать, поддерживает ли это телефон или нет? –

+0

Что вы имеете в виду, когда говорите, что устройство поддерживает видео 4k? Вы имеете в виду, если у устройства есть ресурсы для воспроизведения видео? – hasan83

+0

@ Jordi Castilla minSdkVersion, пожалуйста? Алос, дайте мне знать, если вы также используете Camera2API api? –

ответ

5

Прежде всего, вы должны помнить, что 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+.