Join FlipAndroid.COM Telegram Group: https://t.me/joinchat/F_aqThGkhwcLzmI49vKAiw


Asegúrese de que el búfer de vídeo se conserva después de cambios de orientación sin manipulación en Cambios de configuración manualmente

¿Hay de todos modos que usted puede hacer que la aplicación mantiene el búfer después de la orientación sin manipular manualmente los cambios de configuración.

El escenario básicamente:

  1. Búfer de vídeo hasta que el último punto se debe conservar cuando la orientación cambia.

  2. Necesidad de volver a cargar un nuevo diseño (porque portait y lanscape tiene diversa disposición), por lo tanto dejar que la aplicación reanude la actividad para recargar nuevos recursos es la mejor manera que pienso.

  3. El componente de vídeo está en un fragmento.

Alternativas que he intentado pero no son aceptables:

  1. El primer trabajo alrededor es guardar la posición del vídeo y después de que se haya creado la opinión, utilice seekTo para ir al último punto. Sin embargo, esto hará que el dispositivo vuelva a almacenar el búfer de nuevo.

  2. Había intentado jugar con el fragmento setRetainInstance (true) y asegurar que el reproductor de medios no se reinicialice después de los cambios de orientación. Después de cada onCreateView, simplemente establezco mediaplayer.setDisplay () en un nuevo titular de superficie. Desafortunadamente esto hace que el reproductor de medios de comunicación entre en estado de error que a su vez requiere que el reproductor de medios para ser reseted.

Cualquier sugerencia / solución para esto?

Editado: He visto en algún lugar de stackoverflow que puedes cambiar el soporte de superficie mediaplayer mientras el mediaplayer está activo en android 4.0+. Sin embargo, estoy desarrollando una aplicación para Android 3.x.

3 Solutions collect form web for “Asegúrese de que el búfer de vídeo se conserva después de cambios de orientación sin manipulación en Cambios de configuración manualmente”

Creo que puede anular onConfigurationChanged () y hacer re-layout programatically.

Puede modificar el diseño sin tocar el video.

Tal vez es tarde para usted, pero puede haber otros enfrentan el mismo problema. Puede utilizar la segunda opción. Si no establece la visualización de MediaPlayer en null antes de destruir la vista de fragmento, cuando accede a mediaplayer de nuevo se está ejecutando en estado de error. Mi solución fue la implementación de eventos superficiales y superficiales destruidos de superficie.

@Override public void surfaceCreated(SurfaceHolder holder) { mediaPlayer.setDisplay(holder); } @Override public void surfaceDestroyed(SurfaceHolder holder) { mediaPlayer.setDisplay(null); } 

No creo que sea posible mantener el búfer mientras gira en android sin usar las banderas android: configChanges. Estas son las opciones disponibles:

  1. Permite la rotación y la recreación de la actividad, pero guarda la posición del video. Esto perderá el búfer pero le permitirá continuar desde la última posición. Esto no funciona con secuencias en vivo, solo para archivos locales o VOD remoto. Tendrás que guardar tu posición en onSaveInstanceState y restaurarla en onCreate para una actividad / fragmento. O mantenga el valor utilizando setRetainInstance(true) pero esta última opción no se recomienda.

  2. Utilice los android:configChanges="orientation|screenSize" y administre el cambio de tamaño de la interfaz de usuario. Echa un vistazo a este POC como referencia: https://github.com/caspercba/POCMediaPlayerRotation

  3. Ir a un jugador de terceros como NexStreaming.

Aclamaciones

FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.