我有一个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,以防万一。