2012-09-16 26 views
6

tengo una instancia de reproductor multimedia ejecutándose en un servicio en segundo plano. En mi actividad principal tengo una vista de superficie.Cómo separar/liberar Surfaceview desde android mediaplayer

Cuando se inicia la actividad y se crea la vista de superficie, me vinculo al servicio y configuro la superficie de visualización del reproductor de medios en la vista de superficie de mi actividad principal. Hago esto con mPlayer.setSurface(sv.getHolder().getSurface());

Se muestra el video y todo funciona bien hasta el momento. Cuando se destruye mi vista de superficie, en la devolución de llamada surfaceDestroyed() trato de separar la vista de superficie del reproductor llamando al mPlayer.setSurface(null);. El problema es que cuando hago esto, recibo un error del reproductor de medios (código de error 1).

Así que mi pregunta es esta, después de haber configurado un objeto MediaPlayer y configuré la vista superficial con mPlayer.setSurface(sv.getHolder().getSurface()); ¿hay alguna manera de liberar o separar esa vista de superficie sin detener o reiniciar el objeto del reproductor multimedia?

Gracias de antemano.

+0

¿Qué intenta conseguir eliminando la superficie del reproductor multimedia? – artkoenig

+0

@Artjom lo que estoy tratando de hacer es esto: si el usuario cierra la pantalla o se aleja de mi actividad principal, quiero continuar reproduciendo la parte de audio del video en segundo plano. Si el usuario vuelve a ingresar a mi actividad y se reproduce un clip en mi servicio en segundo plano, quiero que se muestre automáticamente el video en mi vista de superficie. ¿Hay alguna forma de que pueda hacer esto sin detener o restablecer el objeto MediaPlayer? – ilikekiwis

+0

@ilikekiwis Estoy tratando de hacer lo mismo aquí. ¿Tuviste una idea más reciente? – Wesley

Respuesta

0

Puede evitar la pausa de la reproducción cuando el usuario navega. Esto te ayudará a continuar la reproducción. Pero hay otro problema: cuando tu actividad/fragmento separado de la ventana SurfaceView se destruyó. Lo que significa que TIENE que reiniciar el reproductor multimedia con la instancia recreada de SurfaceView cuando el usuario regrese a su aplicación.

Cuestiones relacionadas