gpt4 book ai didi

Android - 合并两个 MP4 文件

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:44:34 24 4
gpt4 key购买 nike

我正在编写一个 Android 项目,我正在其中录制多个音频文件。因此,我正在设置以下参数。录音效果很好。

recorder.setAudioSource(MediaRecorder.AudioSource.MIC);
recorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4);
recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);

我的问题是每次记录时,输出都写在一个单独的文件中。现在,我需要将这些文件合并为一个文件。有谁知道如何在一个 Android 项目中组合多个 MPEG 4 文件?

感谢您的帮助....

最佳答案

我建议使用我的 mp4parser库,那么您就不必处理 native 库。看看 AppendExample。它做的正是你想做的。留意最新版本。请参阅下面的 AppendExample 以了解其工作原理。

    Movie[] inMovies = new Movie[]{MovieCreator.build(Channels.newChannel(AppendExample.class.getResourceAsStream("/count-deutsch-audio.mp4"))),
MovieCreator.build(Channels.newChannel(AppendExample.class.getResourceAsStream("/count-english-audio.mp4")))};

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()])));
}

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

FileChannel fc = new RandomAccessFile(String.format("output.mp4"), "rw").getChannel();
fc.position(0);
out.getBox(fc);
fc.close();

关于Android - 合并两个 MP4 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11083272/

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