java - 在没有 FFmpeg 的 Java (JDK) 中将音频添加到 MP4
问题描述
我目前正在开发一个 Java 项目,我必须将几张图片组合到一个 MP4 文件中,并将音轨添加到这个文件中(如 WAV 或 MP3)。
我已经设法使用JCodec从图像中创建了一个 MP4 文件。我之所以选择这个库,是因为如果我想让它在 Android 上运行,这个库在那里是兼容的。
我尝试使用MP4 Parser,但它只接受AAC/M4A
文件。但我希望这适用于WAV
文件或MP3
. 到目前为止,我发现的所有其他有用的库都以某种方式使用 FFmpeg。我不希望使用该程序的人必须安装 FFMPEG 命令行工具,然后我会从 Java 调用该工具。
所以我想知道的是,
- 有没有一种方法可以在不使用 FFmpeg 的情况下将音频添加到 Java 中的 MP4 文件,或者至少以某种方式使用它,而无需安装命令行工具?
- 如果有,我必须使用 AAC/M4A 文件吗?如果是,那么我也想知道如何将 WAV 或 MP3 文件转换为 Java 中的 AAC/M4A。有没有一个很好的图书馆来做这项工作?我已经被困在这一点上大约一个星期了,我希望这个线程会带来一些更有用的结果。
我希望有人能帮忙,祝你天天快乐,不管你能不能帮忙。
再见,罗比。
解决方案
使用此代码,您可以将 jdk 的 .wav 和其他支持的格式添加到您的 java 代码中
import java.io.File;
import javax.sound.sampled.*;
在这里使用 try catch 或 throws 方法 我使用了 try catch 方法
public class Music {
public static void main(String[] args){
try{
File file = new File("--file location--");
AudioInputStream audioStream =AudioSystem.getAudioInputStream(file);
Clip clip = AudioSystem.getClip();
clip.open(audioStream);
clip.start();
Thread.sleep(s*1000); // s = time in seconds
}catch(Exception e){
System.out.println(e);
System.out.println("File Not Supported");
}
}
}
推荐阅读
- amazon-dynamodb - 使用 DynamoDbMapper 的过滤器表达式的多个 AND 和 OR 条件
- sql - 如何获取记录中列值的最大值?(大查询)
- ruby-on-rails - Rails 回形针和文件类型
- c# - 在 MainWindow 的其他地方绑定选定的 ListBox 图像
- ios - 根据视图设置按钮一侧的角半径?
- javascript - 带有日期字段的 Kendo JS 网格问题
- tensorflow - AttributeError:“顺序”对象没有属性“_feed_input_names”
- javascript - Mongoose 预保存未使用鉴别器运行
- java - how wait some time without Thread.sleep()?
- java - 如何在 SEservice 中使用 Executor (Open Mobile API for Android 9.0)