Android: Media Player Duración Edición

Yo he puesto:

mSeekBar.setMax(mp.getDuration()); // 8480 

Después de completar Audiofile, lo que estoy recibiendo es:

  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??? } } }); 

¿Por qué la posición actual de MediaPlayer nunca alcanza la duración total del archivo de audio?

O técnicamente podemos decir como:

¿Por qué no?

 mediaPlayer.getCurrentPosition()==mediaPlayer.getDuration() 

Porqué siempre

MediaPlayer.getCurrentPosition () <mediaPlayer.getDuration () en OnCompletion escucha?

Por ejemplo:

Tengo un símbolo de juego para iniciar el reproductor. Ahora, cuando presione el símbolo de reproducción , se convertirá en símbolo de Pausa .

Tengo un Maxduration de audiodfile.

Ahora quiero convertir el símbolo de Pausa a Símbolo de reproducción cuando el archivo de audio se reproduce por completo. Así que lo que estoy haciendo es Verificar:

 if(mediaPlayer.getCurrentPosition()>=mediaPlayer.getDuration()) { // Convert Imagview from Pause to Play // But never get called } 

Si usted necesita hacer una cierta tarea en la terminación comprobando el currentPoision a la duración, usted puede hacer abajo del truco:

 if(mediaPlayer.getDuration()-mediaPlayer.getCurrentPosition()<1000){//milliseconds new Handler().postDelayed( new Runnable() { @Override public void run() { // Convert Imageview from Pause to Play } },1000); } 
FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.