4

このように1つのレイアウトで2つのビデオビューをオーバーラップさせたい

画像

この私のコード:

private void PlayVideo() {
    try {
        getWindow().setFormat(PixelFormat.TRANSLUCENT);
        MediaController mediaController = new MediaController(
                MainActivity.this);
        mediaController.setAnchorView(videoView);

        Uri video = Uri.parse(videourl);
        videoView.setMediaController(mediaController);
        videoView.setVideoURI(video);
        // videoView.requestFocus();
        videoView.setOnPreparedListener(new OnPreparedListener() {

            public void onPrepared(MediaPlayer mp) {
                progressDialog.dismiss();
                videoView.start();
            }
        });

    } catch (Exception e) {
        AlertDialog alertDialog = new AlertDialog.Builder(MainActivity.this)
                .create();

        // Setting Dialog Title
        alertDialog.setTitle("Alert Dialog");

        // Setting Dialog Message
        alertDialog.setMessage("Video Play Error :" + e.toString());

        progressDialog.dismiss();

        System.out.println("Video Play Error :" + e.toString());
        finish();
    }

私の問題は: ビデオ 1 は再生できますが、ビデオ 2 は再生できません。アプリケーションを最小化して再度最大化すると、2 つのビデオを同時に実行できます。助けてください、前にありがとう!

4

1 に答える 1

4

VideView互いに重なってはならないサーフェス ビューです。レンダリング中は、レイアウト内のコンポーネントの順序は考慮されません。解決策は、このメソッドを使用してsetZOrderMediaOverlay()、video2 が他のサーフェスの上にあることをシステムに通知することです。コードでは video2 が表示されませんが、初期化に次の行を含める必要があります。

video2View.setZOrderMediaOverlay(true);
于 2013-09-13T07:29:24.530 に答える