2011-05-27 20 views
11

Estoy tratando de implementar un MediaPlayer en una aplicación de Android, pero ahora tengo dos problemas, que no son THE BIG SHOWSTOPPER pero son más que molestos y tengo que arreglarlo, sólo para mí.Problemas de almacenamiento en búfer con android.media.MediaPlayer

Implementé un controlador async MediaPlayer + a una actividad, que funciona bien. Mi plan era mostrar también el porcentaje del almacenamiento en búfer en el MediaControl. Esto también funciona

Pero ahora, después de que puedo ver el porcentaje, vi un comportamiento extraño: si busco una posición que ya está en el búfer, el almacenamiento en búfer comenzará de nuevo desde esta posición. ¿Es esto un comportamiento/problema/característica conocida y/o normal?

Aquí están los detalles más:

estoy usando el SDK 2.2 Así es como ponerlo en práctica

public class Details extends Activity implements MediaPlayer.OnPreparedListener, MediaController.MediaPlayerControl { 

[...] 

private void setPosition(int currentPos){ 
    position = currentPos; 
} 

[...] 

public void onCreate(Bundle savedInstanceState) { 

[...] 

mediaPlayer.setOnBufferingUpdateListener(new MediaPlayer.OnBufferingUpdateListener() { 
      @Override 
      public void onBufferingUpdate(MediaPlayer mp, int progress) { 
       setPosition(progress); 
      } 
     }); 

[...] 

public int getBufferPercentage() { 
    return position; 
} 

[...] 

public void seekTo(int i) { 
    General.mediaPlayer.seekTo(i); 
} 
} 

enter image description here

Lo que me esperaba después de hacer clic en la barra de búsqueda

enter image description here

Lo que tengo

enter image description here

es esto normal?

+0

+1 debido a la ilustración de la imagen: D –

+0

Hey g.tobi. ¿Alguna suerte con esto? – basilisk

+0

Hola, lo siento por la respuesta tardía ... No lo arreglé aún :( –

Respuesta

1

Este thread confirma que, aunque una posición ya está almacenada temporalmente, MediaPlayer envía una solicitud a un servidor.

Cuestiones relacionadas