私はAndroid上でオンラインストリーミングプレーヤーを開発しています。私はメディアプレイヤーがこれまでバッファリングを止めていないことに気づきました!これは、バッファの100%を読み取り、「何か」をやって維持し、ストリームだけ一度しか読むことができないので、そこは何もバッファリングするために残っていない...私はAndroid mediaplayerエンドレスバッファリング
public void onBufferingUpdate(MediaPlayer player, int percent)
がパーセント= 100これで無限と呼ばれていることがわかり 一晩以上電池を消耗します。私は何か間違ったことをしているのですか、これに関して合理的な説明がありますか?バッファリングをキャンセルすることはできないようですが、停止する唯一の方法はメディアプレーヤー自体をリセットすることです。私はこの無限の「緩衝」を止めるために何らかの方法が必要です!私は私が見るメディアプレーヤ
mMediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
mMediaPlayer.setDataSource(streamUrl);
mMediaPlayer.setOnBufferingUpdateListener(this);
mMediaPlayer.setOnInfoListener(this);
mMediaPlayer.setOnPreparedListener(this);
mMediaPlayer.setOnErrorListener(this);
mMediaPlayer.prepareAsync();
ログメッセージのinitどの
この:
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
...
これまでに何かを見つけましたか?私は、ビデオがMediaPlayerを通じてサービスで再生されるアプリケーションを開発しています。そして、それを放置した後、電話が画面を消していて、眠っているときでも、バッテリーが消耗していたことに気付きました! MediaPlayerの停止とリセットはそれを修正したようですが、プレーヤーを再初期化する必要がある場合は、再開するのに時間がかかりますので、一時停止のままにしておくことができればさらに好ましいでしょう。 – Flyview
私はHuaweiの携帯電話(少なくとも私がテストした他のどのデバイスも正常に動作していました)だけで、このように動作することを理解しました。最終的に私はこのようにしました。プレイヤーがしばらくの間ポーズをとり、バッファリングしている場合、プレイヤーをリセットします。 – Arvydas