gpt4 book ai didi

android - 如何在android中录制视频时添加暂停和恢复功能

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:09:12 30 4
gpt4 key购买 nike

要求:

我想开发一个具有暂停和恢复功能的视频重新编码的应用程序。

我试过:

我已经开发了应用程序来使用表面 View 重新编码视频。

已研究:

我已经搜索了所有网站以及like但直到现在我还没有得到解决方案我知道 android 中没有用于暂停和恢复视频的默认选项,并且也知道通过合并视频我们可以实现它。

我需要什么:

如果有任何可用的外部插件,请与我分享,如果您已经实现,请指导我如何实现,并与我分享与如何合并视频相关的任何资源..我已经搜索但没有看到合适的资源请分享任何东西,如果你发现..

最佳答案

终于找到答案了 :)
我对 ffmpeg 的研究似乎更深入,并且围绕它进行了更多天的挖掘,但无法为 ffmepg 获取
适当的资源,我尝试使用 mp4parser lib并成功完成了我的要求。

合并多个视频的代码

public class MergeVide extends AsyncTask<String, Integer, String> {

@Override
protected void onPreExecute() {
progressDialog = ProgressDialog.show(Video.this,
"Preparing for upload", "Please wait...", true);
// do initialization of required objects objects here
};

@Override
protected String doInBackground(String... params) {
try {
String paths[] = new String[count];
Movie[] inMovies = new Movie[count];
for (int i = 0; i < count; i++) {
paths[i] = path + filename + String.valueOf(i + 1) + ".mp4";
inMovies[i] = MovieCreator.build(new FileInputStream(
paths[i]).getChannel());
}
List<Track> videoTracks = new LinkedList<Track>();
List<Track> audioTracks = new LinkedList<Track>();
for (Movie m : inMovies) {
for (Track t : m.getTracks()) {
if (t.getHandler().equals("soun")) {
audioTracks.add(t);
}
if (t.getHandler().equals("vide")) {
videoTracks.add(t);
}
}
}

Movie result = new Movie();

if (audioTracks.size() > 0) {
result.addTrack(new AppendTrack(audioTracks
.toArray(new Track[audioTracks.size()])));
}
if (videoTracks.size() > 0) {
result.addTrack(new AppendTrack(videoTracks
.toArray(new Track[videoTracks.size()])));
}

BasicContainer out = (BasicContainer) new DefaultMp4Builder()
.build(result);

@SuppressWarnings("resource")
FileChannel fc = new RandomAccessFile(String.format(Environment
.getExternalStorageDirectory() + "/wishbyvideo.mp4"),
"rw").getChannel();
out.writeContainer(fc);
fc.close();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
String mFileName = Environment.getExternalStorageDirectory()
.getAbsolutePath();
mFileName += "/wishbyvideo.mp4";
filename = mFileName;
return mFileName;
}

@Override
protected void onPostExecute(String value) {
super.onPostExecute(value);
progressDialog.dismiss();
Intent i = new Intent(Video.this, VideoUpload.class);
i.putExtra("videopath", value);
i.putExtra("id", id);
i.putExtra("name", name);
i.putExtra("photo", photo);
startActivity(i);
finish();
}
}


计数只是视频文件计数

上面的代码用于合并更多视频并将最终代码发送到另一个 Activity ,因为我决定预览视频。
在使用上面的代码之前,请确保使用 mp4parser 库。

关于android - 如何在android中录制视频时添加暂停和恢复功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17500675/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com