ho impostato:Android: Media Player Durata Problema
mSeekBar.setMax(mp.getDuration()); // 8480
Dopo il completamento della Audiofile, cosa sto ottenendo è:
player.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
public void onCompletion(MediaPlayer mediaPlayer)
{
Log.e("onComplete>>", ""+mediaPlayer.getCurrentPosition());
// mediaPlayer.getCurrentPosition() = 8192
Log.e("getDuration", ""+mediaPlayer.getDuration());
// mediaPlayer.getDuration() = 8480
if(mediaPlayer.getCurrentPosition()>=mediaPlayer.getDuration())
{
// Why never get called???
}
}
});
Quindi, perché è la posizione attuale del MediaPlayer non raggiunge mai il totale durata del file audio?
o tecnicamente possiamo dire come:
Why Not?
mediaPlayer.getCurrentPosition()==mediaPlayer.getDuration()
Perché sempre
mediaPlayer.getCurrentPosition() < mediaPlayer.getDuration() in OnCompletion ascoltatore?
Per esempio:
Ho un gioco Simbolo per l'avvio del lettore. Ora, quando premo il simbolo , convertiremo in simbolo Pausa.
Ho una Maxduration di audiodfile.
Ora voglio convertire Pausa simbolo per Giocare Simbolo quando il file audio viene riprodotto completamente. Quindi quello che sto facendo sta controllando:
if(mediaPlayer.getCurrentPosition()>=mediaPlayer.getDuration())
{
// Convert Imagview from Pause to Play
// But never get called
}
Cosa c'è di output di 'Log.i ("onComplete >>", "" + mediaPlayer.getCurrentPosition()); Log.i ("getDuration", "" + mediaPlayer.getDuration()); ' –
posizione corrente è sempre inferiore a GetDuration. –
Hmm .. Ho trovato una [discussione del problema] (https://code.google.com/p/android/issues/detail?id=38627) per lo stesso, ma non so se qualcuno abbia ancora trovato una soluzione o una spiegazione. . e [this] (http://www.anddev.org/multimedia-problems-f28/mediaplayer-getcurrentposition-t20032.html), pure. –