Bri*_*ngs 5 android android-studio
我正在开发一个类似于 Inshot App 的应用程序,在该应用程序中,我在编辑过程后选择视频和图像以在最后制作一个视频文件。当我选择两者时,图像必须首先转换为视频,所以我已经转换了它。我已经完成了在时间线视图中仅显示一个视频的帧的编码,因为我已经使用 videoview 将视频 wrt 显示为帧,Videoview 只能获得一个 uri。现在我想在我选择时显示多个视频。请帮我做这件事。感谢和问候。
在编辑器中显示这些视频之前,我们无法合并这些多个视频。我们只能在编辑后合并这些视频。
这是 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)
| 归档时间: |
|
| 查看次数: |
452 次 |
| 最近记录: |