2011-05-06 55 views
0

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

您必須在onPrepareDialog中移動您的代碼。首次在對話框中運行時創建了onCreateDialog,但第二次調用該對話框並且僅調用了onPrepareDialog。更多info關於對話框

+0

不知道我錯過了,似乎有點顯而易見;)雖然謝謝! – taymless 2011-05-06 08:22:03