如何在android的时间线视图中添加多个视频的帧?

Bri*_*ngs 5 android android-studio

我正在开发一个类似于 Inshot App 的应用程序,在该应用程序中,我在编辑过程后选择视频和图像以在最后制作一个视频文件。当我选择两者时,图像必须首先转换为视频,所以我已经转换了它。我已经完成了在时间线视图中仅显示一个视频的帧的编码,因为我已经使用 videoview 将视频 wrt 显示为帧,Videoview 只能获得一个 uri。现在我想在我选择时显示多个视频。请帮我做这件事。感谢和问候。

在编辑器中显示这些视频之前,我们无法合并这些多个视频。我们只能在编辑后合并这些视频。

这是 Inshot 应用程序的屏幕截图,其中可以在时间线视图中并排放置多个视频。

InShot 应用截图

这是我在帧中仅显示一个视频的代码。

for(int i=0;i<uriPaths.size();i++) {
            if (uriPaths.get(i).contains(".jpg") ||uriPaths.get(i).contains(".jpeg")||uriPaths.get(i).contains(".JPG") ||uriPaths.get(i).contains(".JPEG")|| uriPaths.get(i).contains(".png")||uriPaths.get(i).contains(".PNG")) {
                vPath=getVideoFilePath();
                int finalI = i;
                listener=new EncodeListener() {
                    @Override
                    public void onProgress(float v) {

                    }

                    @Override
                    public void onCompleted() {
                        // exportMp4ToGallery(this, vPath);
                        runOnUiThread(new Thread(new Runnable() {
                            @Override
                            public void run() {

                                uris = Uri.fromFile(new File(String.valueOf(vPath)));

                                String replacedStr = String.valueOf(uris).replaceAll("%5B/", "");
                                replacedStr = String.valueOf(replacedStr).replaceAll("%5D", "");

                                mVideoView.setVideoURI(Uri.parse(replacedStr));
                                mVideoView.requestFocus();


                                mTimeLineView.setVideo(Uri.parse(replacedStr));

                                setMaxDuration(mMaxDuration);
                                setUpListeners();
                                setUpMargins();

                            }
                        })
                        );



                    }

                    @Override
                    public void onFailed(Exception e) {

                    }
                };
                duration= TimeUnit.SECONDS.toMicros(5);

                imageToVideo=new ImageToVideoConverter(vPath,uriPaths.get(i),listener,size=new Size(720,720),duration);
              imageToVideo.start();
            }
            else {

                uris = Uri.fromFile(new File(String.valueOf(uriPaths)));

                String replacedStr = String.valueOf(uris).replaceAll("%5B/", "");
                replacedStr = String.valueOf(replacedStr).replaceAll("%5D", "");
                mVideoView.setVideoURI(Uri.parse(replacedStr));
                mVideoView.requestFocus();

                mTimeLineView.setVideo(Uri.parse(replacedStr));

                setMaxDuration(mMaxDuration);
                setUpListeners();
                setUpMargins();
            }
        }
Run Code Online (Sandbox Code Playgroud)