2013-03-23 15 views
6

Buon pomeriggio/mattina! Spero che qualcuno possa darmi una mano con un piccolo problema che sto avendo. Sto riproducendo un file .mp3 remoto usando uno VideoView e un MediaController personalizzato.Controlli di riproduzione di VideoView Android Mostra "Riproduci" Inizialmente invece di "Pausa" Anche se il file è già in riproduzione

mio MediaController si presenta così:

public class MyMediaController extends MediaController { 

public MyMediaController(Context context) { 
    super(context);  
} 

// Do nothing on the overridden hide method so the playback controls will never go away. 
@Override 
public void hide() { 

} 

// Override the dispatchKeyEvent function to capture the back KeyEvent and tell the activity to finish. 
@Override 
public boolean dispatchKeyEvent(KeyEvent event) 
{ 
    if (event.getKeyCode() == KeyEvent.KEYCODE_BACK) 
    { 
     ((Activity) getContext()).finish(); 
    } 

    return super.dispatchKeyEvent(event); 
} 

}

E il mio codice di allegare al mio VideoView assomiglia a questo:

VideoView videoView = (VideoView) findViewById(R.id.VideoView); 

    // Use our own media controller, which inherits from the standard one. Do this to keep 
    // playback controls from disappearing. 
    mediaController = new MyMediaController(this); 
    mediaController.setAnchorView(videoView); 

    Uri video = Uri.parse(URL); 

    videoView.setMediaController(mediaController); 
    videoView.setVideoURI(video); 

    // Set a handler that will show the playback controls as soon as audio starts. 
    videoView.setOnPreparedListener(new OnPreparedListener() { 

     @Override 
     public void onPrepared(MediaPlayer arg0) { 

      mediaController.show(); 
     } 

    }); 

    videoView.start(); 

Il problema che sto avendo è che quando il file .mp3 inizia a suonare, la barra di controllo in basso ha il pulsante "Play" che mostra (cioè triangolo) invece del pulsante "Pausa" (due barre parallele) anche se l'audio è un sto già giocando. Qualcuno sa come risolvere questo?

EDIT 1:

mi piacerebbe anche essere interessati a qualsiasi altra soluzione per la riproduzione di un .mp3 remota. Gli unici requisiti che ho sono che l'utente può mettere in pausa/riprodurre l'audio e anche vedere qual è il nome del file audio (titolo).

Grazie!

+2

Hai risolto questo? –

+0

hanno risolto questo problema – iAviatorJose

risposta

0

Semplicemente:

@Override 
     public void onPrepared(MediaPlayer arg0) { 

     if (mediaController.isShowing==false) {mediaController.show();} 
     } 
3

provate questo: E 'risolto il problema per me.

mMediaPlayer.setOnPreparedListener(new MediaPlayer.OnPreparedListener() { 
    @Override 
    public void onPrepared(MediaPlayer mp) { 
     mp.start(); 
     mMediaController.show(); 
    } 
});