Sto sviluppando un lettore di streaming online su Android. Ho scoperto che il mediaplayer non smetterà mai di buffering! Si legge il 100% di buffer e continua a fare 'qualcosa', perché flusso può essere letto solo una sola volta e non c'è più niente da tamponare ... Vedo cheBuffer infinito mediaplayer Android
public void onBufferingUpdate(MediaPlayer player, int percent)
si chiama all'infinito con cento = 100. scarica la batteria per una notte. Sto facendo qualcosa di sbagliato o c'è qualche spiegazione ragionevole su questo? Sembra che il buffering non possa essere annullato, l'unico modo per fermarlo è resettare il mediaplayer stesso. Ho bisogno di un modo per fermare questo interminabile "buffering"!
questo come ho init MediaPlayer
mMediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
mMediaPlayer.setDataSource(streamUrl);
mMediaPlayer.setOnBufferingUpdateListener(this);
mMediaPlayer.setOnInfoListener(this);
mMediaPlayer.setOnPreparedListener(this);
mMediaPlayer.setOnErrorListener(this);
mMediaPlayer.prepareAsync();
Messaggi di log che vedo:
10-30 08:45:21.169: D/MediaPlayer(13217): Message: MEDIA_BUFFERING_UPDATE(3), ext1=93, ext2=0x0
10-30 08:45:22.169: D/MediaPlayer(13217): Message: MEDIA_BUFFERING_UPDATE(3), ext1=100, ext2=0x0
10-30 08:45:23.169: D/MediaPlayer(13217): Message: MEDIA_BUFFERING_UPDATE(3), ext1=100, ext2=0x0
10-30 08:45:24.172: D/MediaPlayer(13217): Message: MEDIA_BUFFERING_UPDATE(3), ext1=100, ext2=0x0
10-30 08:45:25.172: D/MediaPlayer(13217): Message: MEDIA_BUFFERING_UPDATE(3), ext1=100, ext2=0x0
...
Hai mai capito qualcosa? Sto sviluppando un'applicazione in cui un video viene riprodotto attraverso un MediaPlayer in un servizio e mi sono reso conto che dopo averlo lasciato "in pausa" stava scaricando la batteria anche quando il telefono è spento e si suppone dorma! Fermare e reimpostare MediaPlayer sembra averlo risolto, ma sarebbe comunque preferibile se fosse possibile lasciarlo in pausa, poiché è necessario più tempo per riprendere se devo reinizializzare il lettore. – Flyview
Ho capito che si comportava così solo sul mio telefono Huawei (almeno qualsiasi altro dispositivo testato funzionava correttamente). Alla fine l'ho fatto così: se il giocatore è in pausa da un po 'di tempo e sta facendo il buffering, allora resetto il giocatore. – Arvydas