Android でオンライン ストリーミング プレーヤーを開発しています。mediaplayer がバッファリングを停止しないことがわかりました。ストリームは一度しか読み取れず、バッファするものが残っていないため、バッファの 100% を読み取り、「何か」を実行し続けます...
public void onBufferingUpdate(MediaPlayer player, int percent)
パーセント= 100で際限なく呼び出されます。これは、一晩でバッテリーを消耗します。私は何か間違ったことをしていますか、それともこれについて合理的な説明がありますか? バッファリングをキャンセルすることはできないようです。それを停止する唯一の方法は、mediaplayer 自体をリセットすることです。この終わりのない「バッファリング」を止める方法が必要です!
これは私がメディアプレーヤーを初期化する方法です
mMediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
mMediaPlayer.setDataSource(streamUrl);
mMediaPlayer.setOnBufferingUpdateListener(this);
mMediaPlayer.setOnInfoListener(this);
mMediaPlayer.setOnPreparedListener(this);
mMediaPlayer.setOnErrorListener(this);
mMediaPlayer.prepareAsync();
表示されるログ メッセージ:
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
...