2012-07-27 8 views
7

He usado MediaController en mi actividad, está funcionando bien, pero cuando reproduzco video por primera vez, entonces debe haber un botón de pausa visible pero en su lugar hay reproducción y cuando presiono ese botón, el video está en pausa correctamente y el estado sigue siendo el mismo y después de eso está funcionando correctamente. Y lo mismo sucede cuando se completa el video. ¿Esto es un error o estoy haciendo algo mal?Android mediacontroller Play Los controles de pausa no se actualizan correctamente

videoView.setOnPreparedListener(new OnPreparedListener() { 
    @Override 
    public void onPrepared(MediaPlayer mp) { 
      mediaController = new MediaController(VideoPlayerActivity.this){ 
     public void hide(){ 
     } 
     public void show(){ 
      if(isPlayingAd){ 
       super.hide(); 
      }else{ 
       super.show(); 
      } 
     } 
    }; 
    videoView.setMediaController(mediaController); 
    mediaController.setMediaPlayer(videoView); 
    mediaController.show(); 
    } 
}); 

Respuesta

5

He estado teniendo el mismo problema. No llamaba al MediaController.setVideoView como era, ya que pensé que VideoView.setMediaController era suficiente para cablear las cosas. Traté de agregar eso, luego moví la llamada al show dentro de onPrepared, y ahora está funcionando.

Ojalá tuviera un mejor entendimiento; mi mejor suposición es que tal vez todo debe estar conectado correctamente antes de que los medios estén preparados, y antes de llamar a show. En cualquier caso, esto es lo que tengo:

mMediaController = new MediaController(VideoPlayerActivity.this, false); 

mVideoView.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {    
    @Override 
    public void onPrepared(MediaPlayer pMp) { 
     mMediaController.show(); 
    }  
}); 

mVideoView.setMediaController(mMediaController); 
mMediaController.setMediaPlayer(mVideoView); 
mVideoView.setVideoPath(uri); // may not be applicable in your case 
mVideoView.requestFocus(); 
mVideoView.start(); 
+0

Tuve que llamar 'mVideoView.start()' antes 'mMediaController.show()'. Ambas llamadas están en 'onPrepared (MediaPlayer pMp)' en mi caso. Esa era la única forma de hacerlo funcionar en un dispositivo Samsung con Android 4.2.2 – OneWorld

0

Como Oneworld mencionado en la otra respuesta, tuve mismo problema con los dispositivos de Samsung de edad. Aunque MediaController se conectó correctamente con VideoView, el botón Reproducir pierde su sincronización hasta que se pausa y se reproduce nuevamente con MediaController.

Parece que esto solo sucede en los dispositivos Samsung antiguos (KitKat y menos, supongo).

La única solución que encontré fue reproducción de video programmically por videoview.start() antes de mostrar el controlador por mc.show().

Cuestiones relacionadas