在一个布局中同时播放2个VideoView并重叠。

4

我想在一个布局中让两个VideoView重叠显示,就像这样:

image

这是我的代码:

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无法播放。如果我最小化应用程序,然后再最大化,两个视频就可以同时运行了。 请帮忙解决,谢谢!


1
我不确定我完全理解你的问题。你的意思是:如果你同时启动两个视频,那么只有一个会开始播放,然后最小化再恢复前台,两个视频都会播放?我发布了一个答案,可能可以解决你的问题的一部分。 - allprog
@Bloom 你找到解决方案了吗? - max
1个回答

5

VideoView是一个表面视图,不应互相覆盖。布局中组件的顺序在渲染期间不被考虑。解决方案是使用setZOrderMediaOverlay()方法来告诉系统video2在任何其他表面之上。在你的代码中我看不到video2,但你应该在它的初始化中包含以下代码。

video2View.setZOrderMediaOverlay(true);

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接