如何在Android中复用mp3和mp4文件

问题陈述:我正在设计一个Android应用程序,我必须从用户的图库中获取图像,将它们组合成一个video文件并添加背景音乐。 我使用jcodec库使用我的图像资源创建mp4video文件(我知道如何从图库中获取图像并在ImageViews中显示它们并从中创建位图)。 我有一个mp4文件。 现在,我想用mp3文件在其中添加背景音乐。

请有人帮我这个吗? 我无法使用jcodec或至少添加它我不知道该怎么做。 我可以使用任何可以完成这项工作的库,但它应该是Java,因为我不想使用ndk。 我尝试使用ffmpeg和opencv for java但它增加了我的应用程序的大小超过15MB并且jcodec已经完成了制作mp4文件的一半工作。

我可以给你我用来制作mp4文件的代码。 提前致谢。

我认为JCODEC不支持在MP4中添加mp3 。但是JAVACV支持在mp4中添加mp3

从这个链接https://github.com/bytedeco/javacv下载JAVACV

此库支持从图像创建video,并在mp4中添加mp3

在mp4中添加mp3的代码。

注意:它可能不适用于JCODEC创建mp4,使用JAVACV创建mp4

 FrameGrabber grabber1 = new FFmpegFrameGrabber(videoPath); FrameGrabber grabber2 = new FFmpegFrameGrabber(audioPath); grabber1.start(); grabber2.start(); FrameRecorder recorder = new FFmpegFrameRecorder(OutputPath, grabber1.getImageWidth(), grabber1.getImageHeight(), 2); recorder.setFormat("mp4"); recorder.setVideoQuality(1); recorder.setFrameRate(grabber1.getFrameRate()); recorder.setSampleRate(grabber2.getSampleRate()); recorder.start(); Frame frame1, frame2 = null; long timestamp = -2; int count = 0; boolean isFirstTime = false; boolean isFirstCheck = true; while ((frame1 = grabber1.grabFrame())!=null) { //frame1 = grabber1.grabFrame(); frame2 = grabber2.grabFrame(); recorder.record(frame1); recorder.record(frame2); } recorder.stop(); grabber1.stop(); grabber2.stop(); } catch (org.bytedeco.javacv.FrameGrabber.Exception e) { e.printStackTrace(); } catch (Exception e1) { }