第二次通话时视频无法播放

时间:2011-05-06 07:59:32

标签: android video dialog

使用onCreateDialog中的以下代码,打开显示视频的Dialog

dialog = new Dialog(this);
dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
dialog.setContentView(R.layout.video_dialog);

final VideoView videoView = (VideoView) dialog.findViewById(R.id.videoView);

videoView.setVideoURI(Uri.parse("android.resource://" + getPackageName() + "/" + R.raw.test2));
videoView.setZOrderOnTop(true);
videoView.start();

我第一次打电话时效果很好。但如果我通过按后退按钮取消Dialog并再次打开Dialog,则视频无法启动。对话框打开但我只能看到Dialog的黑色背景。

我尝试设置OnCancelListener,以便我可以确保视频已停止,并且通过执行以下操作不会再次使用该对话框

dialog.setOnCancelListener(new OnCancelListener() {
    @Override
    public void onCancel(DialogInterface dialog) {
    videoView.stopPlayback();
    //videoView.suspend();
    dialog = null;
}

stopPlayback()suspend()都没有做到这一点。

任何人都可以说出可能导致此问题的原因吗?

1 个答案:

答案 0 :(得分:1)

您必须在onPrepareDialog中移动代码。第一次在对话框中运行时会创建onCreateDialog,但是第二次创建对话框并且只调用onPrepareDialog。关于对话框的info多一点