3

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

4

0 回答 0