我创建了一个应用程序,女巫合并视频并添加 mp3 音频覆盖。
合并视频我没有问题,但音频没有在输出视频中播放。
这是我的代码:
Movie[] inMovies = new Movie[count];
for (int i = count - 1; i >= 0; i--) {
File file = new File(lv1List.get(i));
if (file.exists()) {
try {
inMovies[counter] = MovieCreator.build(file.getAbsolutePath());
counter++;
} catch (Exception e) {
Log.d("mp4parse", e.getMessage());
}
}
}
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("vide")) {
videoTracks.add(t);
}
}
}
try {
MP3TrackImpl aacTrack = new MP3TrackImpl(new FileDataSourceImpl(audiopath));
CroppedTrack aacTrackShort = new CroppedTrack(aacTrack, 1, aacTrack.getSamples().size());
audioTracks.add(aacTrackShort);
} catch (Exception e) {
e.printStackTrace();
}
Movie result = new Movie();
try {
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()])));
}
} catch (Exception e) {
e.printStackTrace();
}
try {
Container out = new DefaultMp4Builder().build(result);
String filename = Environment.getExternalStorageDirectory().getAbsolutePath() + "/MERGEDoutput" + Long.toString(System.currentTimeMillis()) + ".mp4";
FileOutputStream fos = new FileOutputStream(new File(filename));
out.writeContainer(fos.getChannel());
fos.close();
} catch (Exception e) {
}
输出视频没有声音。输入 mp3 是通常的音乐曲目。