簡體   English   中英

對話框黑屏上的Android VideoView重新加載時

[英]Android VideoView in dialog black screen on reload

我在自定義對話框中有一個VideoView。 第一次顯示該對話框時,視頻可以正確播放,但是如果關閉該對話框然后再次加載,則該視頻將無法播放,並且該對話框只是一個黑屏。

這是我用來創建對話框的代碼:

Dialog d;

protected Dialog onCreateDialog(int id) {
    switch(id) {
    case DIALOG_VIDEO:
        AlertDialog.Builder builder;

        LayoutInflater inflater = (LayoutInflater)getSystemService(LAYOUT_INFLATER_SERVICE);
        View layout = inflater.inflate(R.layout.video,null);

        final VideoView vv = (VideoView)layout.findViewById(R.id.vv);
        vv.setMediaController(new MediaController(this));

        vv.setVideoURI(path);

        vv.setZOrderOnTop(true);
        vv.requestFocus();
        vv.start();

        builder = new AlertDialog.Builder(this);
        builder.setView(layout);
        d = builder.create();
        d.setOnDismissListener(new DialogInterface.OnDismissListener() {
            public void onDismiss(DialogInterface dialog) {
                VideoView vv = (VideoView)d.findViewById(R.id.vv);

                vv.stopPlayback();
                vv.clearFocus();
            }
        });
        break;
    default:
        d = null;
    }

    return d;
}

我究竟做錯了什么 ?

謝謝您的時間,對不起我的英語不好。

創建對話框時,僅調用一次onCreateDialog(int id)方法。 因此,一旦創建對話框並關閉對話框,就不會再調用onCreateDialog(int id)方法,這就是為什么您無法第二次觀看視頻。 根據您的代碼,播放視頻的邏輯僅用於創建對話框。

您可以使用onPrepareDialog(int id),每次啟動對話框時都會調用它。

注意::您需要同時使用onCreateDialog(int id)和onPrepareDialog(int id)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM