Видео не будет воспроизводиться при втором вызове - PullRequest
0 голосов
/ 06 мая 2011

С помощью следующего кода в 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 Ответ

1 голос
/ 06 мая 2011

Вы должны переместить свой код в onPrepareDialog . При первом запуске в диалоговом окне создается так, что onCreateDialog вызывается, но во второй раз диалоговое окно уже создано и вызывается только onPrepareDialog.Немного больше информация о диалогах

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...