【发布时间】:2014-03-29 03:03:58
【问题描述】:
我的应用正在使用Service 和MediaPlayer 流式传输音乐,但在尝试重置媒体播放器以播放下一首曲目时出现问题。尽管我在另一个线程中调用它,但重置媒体播放器需要很长时间,并且在多次快速按下下一次时会导致 UI 冻结一段时间。
这是我用来播放列表中曲目的 sn-p 代码
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 冻结问题的建议
【问题讨论】:
标签: android media-player android-service android-music-player background-music