Io uso MediaPlayer per la riproduzione di un singolo brano mp3 dalla rete. L'origine dati è un URL HTTP.MediaPlayer.seekTo() non funziona per la posizione senza buffer
Supponiamo di avere lo stato di riproduzione successivo.
durata del brano: 01:00
progresso attuale: 0:10
attuale progresso buffer 0:30
Diciamo che voglio saltare una parte di una canzone e cercare in avanti. Lo faccio con il metodo MediaPlayer.seekTo(). Se cerco di posizionare il buffer (0:20), viene eseguito correttamente. Ma se cerco una posizione che non è ancora stata memorizzata nel buffer (0:40), MediaPlayer si comporta in modo strano. Indica immediatamente che ha cercato correttamente senza attendere il riempimento del buffer. Infatti continua a suonare nella stessa posizione in cui era prima di cercare. D'ora in poi il metodo MediaPlayer.getCurrentPosition() restituisce una posizione errata. Quando la riproduzione raggiunge la sua fine e la chiamata OnCompletionListener.onCompletion è chiamata, la posizione corrente del lettore multimediale è molto più alta dell'intera durata della canzone.
Qualche idea per risolvere questo?
Grazie. Sembra essere la ragione. – plugmind
sì, ci sono un paio di bug nel bug tracker relativo al lettore multimediale ....;) btw: se la risposta fosse disponibile, si prega di accettare la risposta (segno di spunta verde) –
Questo bug è ancora applicabile a 2,2 Motorola Droid dispositivi, perché per qualsiasi motivo, usano ancora PVPlayer invece di stagefright/awesomeplayer. La migliore soluzione alternativa è la soluzione di jBilbo, o da scaricare e riprodurre da SD. – brack