Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/hadoop/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
单个android活动中的多个视频视图_Android - Fatal编程技术网

单个android活动中的多个视频视图

单个android活动中的多个视频视图,android,Android,我正在开发一个应用程序,其中一个屏幕上需要4个videoviewa,该视图就像一个屏幕上的四个sqaure框 我在一次活动中观看了4次视频 这是密码 vid1 = (VideoView) mView.findViewById(R.id.vid1); vid2 = (VideoView) mView.findViewById(R.id.vid2); vid3 = (VideoView) mView.findViewById(R.id.vid3); v

我正在开发一个应用程序,其中一个屏幕上需要4个videoviewa,该视图就像一个屏幕上的四个sqaure框 我在一次活动中观看了4次视频 这是密码

vid1 = (VideoView) mView.findViewById(R.id.vid1);
        vid2 = (VideoView) mView.findViewById(R.id.vid2);
        vid3 = (VideoView) mView.findViewById(R.id.vid3);
        vid4 = (VideoView) mView.findViewById(R.id.vid4);

private void PlayVideo() {
        lnrVideoPlayback.setVisibility(View.VISIBLE);
        Thread t1 = null, t2 = null, t3 = null, t4 = null;
        if (prefsVideo.getString("v1URI", null) != null) {

            vid1.setVideoURI(Uri.parse(prefsVideo.getString("v1URI", null)));
//          vid1.setLayoutParams(new LinearLayout.LayoutParams(getResources()
//                  .getDimensionPixelSize(R.dimen.boxviewheight),
//                  getResources().getDimensionPixelSize(R.dimen.boxviewheight)));

            vid1.setVisibility(View.VISIBLE);
            t1 = new Thread(new Runnable() {

                @Override
                public void run() {
                    android.os.Process
                            .setThreadPriority(android.os.Process.THREAD_PRIORITY_URGENT_DISPLAY);

                    vid1.start();

                }
            });
        }
        if (prefsVideo.getString("v2URI", null) != null) {
            vid2.setVideoURI(Uri.parse(prefsVideo.getString("v2URI", null)));
            vid2.setMediaController(new MediaController(getActivity()));
            vid2.setVisibility(View.VISIBLE);
            t2 = new Thread(new Runnable() {

                @Override
                public void run() {
                    android.os.Process
                            .setThreadPriority(android.os.Process.THREAD_PRIORITY_URGENT_DISPLAY);
                    vid2.start();
                }
            });
        }
        if (prefsVideo.getString("v3URI", null) != null) {
            vid3.setVideoURI(Uri.parse(prefsVideo.getString("v3URI", null)));
            vid3.setMediaController(new MediaController(getActivity()));
            vid3.setVisibility(View.VISIBLE);
            t3 = new Thread(new Runnable() {

                @Override
                public void run() {
                    android.os.Process
                            .setThreadPriority(android.os.Process.THREAD_PRIORITY_URGENT_DISPLAY);
                    vid3.start();
                }
            });
        }
        if (prefsVideo.getString("v4URI", null) != null) {
            vid4.setVideoURI(Uri.parse(prefsVideo.getString("v4URI", null)));
            vid4.setMediaController(new MediaController(getActivity()));
            vid4.setVisibility(View.VISIBLE);
            t4 = new Thread(new Runnable() {

                @Override
                public void run() {
                    android.os.Process
                            .setThreadPriority(android.os.Process.THREAD_PRIORITY_URGENT_DISPLAY);

                    vid4.start();
                }
            });
        }

        t1.start();
        t2.start();
        t3.start();
        t4.start();

    }

当我播放单个视频时,如果播放的视频不正确,当我同时播放4个视频时,在所有4个视频中都会显示消息“无法播放视频”

这取决于设备的系统/框架实现

  • 允许同时使用的媒体播放器实例的最大数量
  • 允许同时使用的最大视频表面数

  • 正常情况下,数字是2。

    是否可以在一个屏幕上显示4个视频?我记得我见过,基于OpenGL解决方案。所有视频都使用OpenMax接口由程序自己的本机代码解码。并将所有数据渲染到OpenGL曲面。因此,只要CPU的能力足够强大,就可以渲染任意数量的视频。我可以在一个屏幕上观看4个视频吗?你说过最多有2个实例吗?那么怎么可能呢?当我说视频观看时,最多有2个实例。当我说GLSurface时,一切都是你自己做的。技术上没有限制。