Activity
約150回再生したMediaPlayer
後、「ビデオを再生できませんでした」というシステムメッセージが表示されることがあります。アプリを強制的に再起動すると、この問題はさらに 150 回再生されます。
私はこれが何らかのメモリ リークであると想定していますが、何がリークしているのかは完全に不明であり、その症状は Android がアプリに割り当てるメモリ量と一致しません。ビデオは約 3 MB であるため、再生ごとにそれほどリークしている場合、アプリが 450 MB のメモリにアクセスできることを意味しますが、これは真実ではありません。
いずれにせよ、どうにかしてビデオを手動で解放できるかどうかを確認しようとしていますが、コールバックに渡されIllegalStateException
たリリースを呼び出したときに取得しています。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();
}
});
ドキュメントは、で release を呼び出すことができない状態がないことを暗示しているように思われるMediaPlayer
ので、困惑しています。違いが生じる場合に備えて、私はJellyBeanにいます。