我有一个Activity
,其中有一个MediaPlayer
,大约播放 150 次后,会显示一条系统消息,说“无法播放视频”。应用程序的强制重启会将此问题重置为另外 150 次播放。
我假设这是某种内存泄漏,尽管我完全不清楚会泄漏什么,而且这些 simptoms 与 Android 分配给我的应用程序的内存量不相符。视频大约 3mb,所以,如果我每次播放都泄漏那么多,这意味着我的应用程序可以访问 450mb 的内存,我们知道这是不正确的。
无论如何,我正在尝试查看是否可以以某种方式手动发布视频,但是IllegalStateException
当我调用 release 时,我得到了一个MediaPlayer
传递给我的onCompletion
回调的消息。
我的代码如下所示:
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();
}
});
该文档似乎暗示没有状态不能在 a 上调用 release MediaPlayer
,所以,我很难过。我在 JellyBean,以防万一。