Saltar al contenido

En Android, usando exoplayer, ¿cómo llenar la vista de superficie con un video que no tiene la misma relación de aspecto con el dispositivo?

Siéntete en la libertad de divulgar nuestro sitio y códigos con tus amigos, necesitamos tu ayuda para aumentar esta comunidad.

Solución:

Hay una manera más rápida de llenar la pantalla con el video. Ve a la SimpleExoPlayerView.java clase, cambia el resizeMode de AspectRatioFrameLayout.RESIZE_MODE_FIT a AspectRatioFrameLayout.RESIZE_MODE_FILL.
RESIZE_MODE_FILL ignorará la relación de aspecto especificada. Úselo de esta manera si usa ExoPlayer como un módulo en su proyecto.

ACTUALIZADO
Si usa ExoPlayer como una biblioteca, tienen un método para setResizeMode(). solo te pones a AspectRatioFrameLayout.RESIZE_MODE_FILL en tu opinión:
simpleExoPlayerView.setResizeMode(AspectRatioFrameLayout.RESIZE_MODE_FILL)
¡Eso es todo!

Esto también se puede hacer en XML si usa SimpleExoPlayerView.

Solo agrega app:resize_mode="zoom" para mantener la relación de aspecto del video o app:resize_mode="fill" si no te importa la relación de aspecto.


Puedes retirar la com.google.android.exoplayer.AspectRatioFrameLayout.

A continuación, ponga un simple FrameLayout con ancho y alto en match_parent.

Tenga en cuenta que el SurfaceView debe permanecer en ancho y alto = match_parent.

Explicación: AspectRatioFrameLayout está configurando la altura correcta de la vista de acuerdo con la relación de video real (calculando en función del ancho, la altura y la relación de píxeles). Si no quieres esto, Exoplayer todavía puede mostrar la vista en un SurfaceView como lo estaban haciendo antes. Si el SurfaceView no es @Override no tendrá relación de aspecto.

Puntuaciones y reseñas

Recuerda que puedes dar difusión a este escrito si te fue útil.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *