嗨我正在开发android应用程序,其中我有一个简单的活动,其中包含按钮来启动新的活动。新活动包含表面视图以显示视频。 我知道准备媒体播放器在主线程上工作,这就是为什么我使用prepareAsync。所以我的问题就是这样。我点击活动状态按钮,开始新的活动并开始加载视频。如果我在视频开始前点击回来,即媒体播放器开始(),它会回到上一个活动。但是该活动的UI在一段时间内不活跃。这意味着我无法点击开始按钮一段时间。过了一段时间后,它再次活跃起来。有没有人面临同样的问题。我的代码如下所示:Android准备媒体播放器导致UI阻止
@Override
public void surfaceCreated(SurfaceHolder arg0) {
// TODO Auto-generated method stub
Log.i("FFFFFFFFFFFFFFFFFFF ", "FFFFFFFFFFFFFFFFFFF ");
mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
mediaPlayer.setDisplay(surfaceHolder);
try {
mediaPlayer.setDataSource(getApplicationContext(), targetUri);
mediaPlayer.prepareAsync();
//mediaPlayer.prepare();
} catch (IllegalArgumentException e) {
e.printStackTrace();
} catch (IllegalStateException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
mediaPlayer.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
@Override
public void onPrepared(MediaPlayer mp) {
// TODO Auto-generated method stub
mediaPlayer.start();
}
});
}
如何避免这种情况。难道我做错了什么。需要帮忙。谢谢。
您是否尝试过在onBackPressed中调用mediaPlayer.release()? – Niko
是的,我在做onDestroy内的mediaPlayer.release()。也做mediaPlayer = null.But仍然是相同的结果。 – nilkash
http://stackoverflow.com/questions/7445145/mediaplayer-prepare-problem可能的重复? – palsch