2013-08-20 13 views
5

Ho un codice Android per riprodurre un video utilizzando i pulsanti di videoview e di controllo come pausa, riavvolgimento e avanzamento tramite mediacontroller. Funziona su nexus S e su molti telefoni Samsung, ma i pulsanti mediacontroller non sembrano funzionare su nexus 7! Ho bisogno che funzioni su tutti i dispositivi. C'è qualcosa in più che devo fare?mediacontroller non funziona sulla scheda nexus 7

MediaController mediacontroller = new MediaController(Activity.this); 
mediacontroller.setAnchorView(videoview); 
Uri video = Uri.parse("path/to/video"); 
videoview.setMediaController(mediacontroller); 
videoview.setVideoURI(video); 
videoview.start(); 
+0

Link Issue Tracker (nessuna risposta al momento): https://code.google.com/p/android/issues/detail?id=59776 – Geobits

risposta

3

Appena incappato in questa risposta in Unable to pause/forward/backward video using mediacontroller in android. Alcuni dispositivi LG sembrano avere questo problema pure.

Come menzionato da @Vineela Yarlagadda, è necessario eseguire l'override dei metodi VideoView sotto

@Override 
public boolean canSeekForward() { 
    return true; 
} 

@Override 
public boolean canSeekBackward() { 
    return true; 
} 

@Override 
public boolean canPause() { 
    return true; 
} 

Testato & opere su Nexus 7.


soluzione alternativa: Utilizzare un SurfaceView invece di un VideoView come suggerito nel codice di esempio in ApiDemos.

setContentView(R.layout.media_player2); 
mSurface = (SurfaceView) findViewById(R.id.surface); 
holder = mSurface.getHolder(); 
holder.addCallback(this); 

mMediaPlayer = new MediaPlayer(); 
mMediaPlayer.setDataSource(stream); 
mMediaPlayer.setDisplay(holder); 
mMediaPlayer.prepareAsync(); 
mController = new MediaController(this); 
mMediaPlayer.setOnBufferingUpdateListener(this); 
mMediaPlayer.setOnCompletionListener(this); 
mMediaPlayer.setOnPreparedListener(this); 
mMediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC); 
mController.setMediaPlayer(this); 
mController.setAnchorView(mSurface); 

ho aperto la code.google.com/p/android/issues/detail?id=59776 bug dopo aver incontrato lo stesso problema, come @kriswiz quando ho usato VideoView e il giocatore. Il video verrà riprodotto su un Nexus 7 e su Samsung Nexus ora.

+0

sì ho visto lo stesso post di te "Impossibile mettere in pausa/inoltrare/backward video utilizzando mediacontroller in Android ". Ho provato anche lui ma non ha funzionato per me. – kriswiz

Problemi correlati