Service
我的应用程序正在使用and流式传输音乐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 冻结问题的建议