Service
私のアプリはとを使用して音楽をストリーミングしMediaPlayer
ていますが、メディアプレーヤーをリセットして次のトラックを再生しようとすると問題が発生します。mediaplayer のリセットに時間がかかり、別のスレッドで呼び出しても、次へをすばやく複数回押すと、UI がしばらくフリーズします。
これは、リストからトラックを再生するために使用するコードのスニペットです
private void playTrack(int position) {
if (!isAudioFocusAvailable())
return;
try {
sendBufferingStarted();
// Problem is here
mPlayer.reset();
mPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
mPlayer.setDataSource(mTracks.get(mCurrentPosition).getUrl());
mIsBuffering = true;
mPlayer.prepareAsync();
mIsPaused = false;
acquireWifiWakeLock();
} catch (IllegalArgumentException e) {
e.printStackTrace();
} catch (IllegalStateException e) {
e.printStackTrace();
} catch (IOException e) {
}
}
リセットと UI フリーズの問題を回避するための提案