¿Comprueba si el dispositivo Android recibe video de 4K?

Estoy intentando reproducir un video de 4K en mi aplicación, pero siempre y cuando todos los dispositivos no puedan reproducir vídeos de 4K estoy teniendo algunos problemas.

  • ¿Cómo puedo comprobar en tiempo de ejecución si ese dispositivo lo admite o no antes de reproducir el video?

En primer lugar, hay que recordar que 4k es sólo una resolución, pero también hay que recordar acerca de la velocidad de bits.

Este es un método para probar si la combinación de resolución / velocidad binaria es alcanzable en un determinado dispositivo:

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

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

También hay:

 isSizeSupported(int width, int height) 

El único inconveniente de estos métodos es que es compatible con el nivel 21 de la API.

También puede comprobar las capacidades de códec utilizando este método:

 MediaCodecInfo.VideoCapabilities.getVideoCapabilities() 

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

Pero por lo que sé, pueden devolver una resolución inferior a la realmente soportada.

Por otro lado, en su caso, los dispositivos de androide lollipop más probable es que no son lo suficientemente rápido para reproducir video 4k. O incluso si pueden, su resolución es demasiado baja para realmente obtener cualquier beneficio de la resolución de 4k.

Por lo tanto, en mi opinión, la solución más elegante es asumir 4k no es compatible con android 5.0 y utilizar un método de arriba comprobar si es compatible con android 5.0+.

  • ¿Cómo transferir un programa Java existente a Android? (Qué importar)
  • ¿Es el cierre y la reapertura de las instancias de Realm malas para el rendimiento?
  • Error: Gradle: la ejecución falló para la tarea ': app: preDexDebug'
  • Barra de acción como fragmento
  • Si un servicio vinculado o hilos personalizados cuando descarga algo?
  • ¿Pasar un argumento al llamar a setOnClickListener?
  • Android Asyntask: Usar referencia débil para el contexto para evitar la rotación del dispositivo de pantalla
  • Tratando de verificar si existe un archivo en el almacenamiento interno
  • Codificación y decodificación de bytes con ZXing
  • Fechas horarias de la fecha de Android driving me nuts
  • Detectar subrogados altos en una cadena utilizando expresiones regulares
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.