当我调用release()时,为什么MediaPlayer调用IllegalStateException?

时间:2013-03-29 03:58:11

标签: java android android-mediaplayer android-videoview illegalstateexception

我有一个Activity,其中有一个MediaPlayer,在约150次播放后会发出一条系统消息,说“视频无法播放”。应用程序的强制重启会将此问题重置为另外150次播放。

我假设这是某种类型的内存泄漏,虽然我完全不清楚将会泄漏什么,而且这些症状与Android分配我的应用程序的内存数量无关。视频大约是3mb,所以,如果我在每次播放时都泄漏了那么多,那么我的应用程序可以访问450mb的内存,我们知道这不是真的。

无论如何,我试图看看我是否可以以某种方式手动发布视频,但是当我在传递给我的IllegalStateException上调用release时,我得到MediaPlayer { {1}}回调。

我的代码如下所示:

onCompletion

documentation似乎意味着没有你不能在VideoView vv = (VideoView)findViewById(R.id.movie); Uri videoURI = Uri.parse("android.resource://" + getPackageName() + "/raw/video_in" ); vv.setVideoURI(videoURI); vv.start(); vv.setOnCompletionListener(new OnCompletionListener() { @Override public void onCompletion(MediaPlayer mp) { Intent i = new Intent(getPackageName() + ".SCENE_2"); startActivity(i); mp.stop(); mp.release();//here the exception is raised finish(); } }); 上调用释放的状态,所以,我很难过。我在JellyBean,以防万一。

0 个答案:

没有答案