有没有纯java的方法可以将.wav转换成.mp3?
我在Java方面做了很多工作,但无法结合Java.wav到.mp3转换器的工作示例。这个转换器将在Java小程序中使用,因此它应该只依赖于用纯Java编写的库,而不需要底层的C代码调用 有人能提供一个完全有效的例子吗 谢谢阅读您的wave文件@ 并将其编码为mp3@有没有纯java的方法可以将.wav转换成.mp3?,java,audio,mp3,wav,Java,Audio,Mp3,Wav,我在Java方面做了很多工作,但无法结合Java.wav到.mp3转换器的工作示例。这个转换器将在Java小程序中使用,因此它应该只依赖于用纯Java编写的库,而不需要底层的C代码调用 有人能提供一个完全有效的例子吗 谢谢阅读您的wave文件@ 并将其编码为mp3@ 正如所指出的,lameonj不是一个纯java解决方案。为此,选项似乎不多,但请看另一个问题:如果速度对您来说并不重要,请使用MP3的任何c实现(例如lame),并尝试将其编译为Java字节码。它会很慢(就像模拟器中的模拟器),但应
正如所指出的,lameonj不是一个纯java解决方案。为此,选项似乎不多,但请看另一个问题:如果速度对您来说并不重要,请使用MP3的任何c实现(例如lame),并尝试将其编译为Java字节码。它会很慢(就像模拟器中的模拟器),但应该可以工作
与尝试将MP3库移植到纯Java相比,这应该是一项少很多的工作。另一个可能相关的项目是。这显然是为了让JMF支持使用本机和Java编解码器的多种格式。从“格式”页面判断,他们在纯Java方面取得了重大进展。不幸的是,这个项目已经陷入了沉默
这在短期内对OP没有直接帮助。但是如果他或其他人渴望长期使用纯java编解码器,考虑参与进来。 < P>只需检查下面的源代码。
这项工作仍在进行中,但它是纯基于java的lame库的编码器部分的一个工作示例。请参阅SourceForge上的此链接 它的JAR是唯一的(没有源代码),但它在PC和Android上都能工作,但不一定像作者在文章中描述的那样 我只是将jump3r-1.0.3.jar文件作为一个库来使用并实例化了它 然后使用名为mp3.run()的mp3.Main e、 g.我的Android代码的一部分
String[] mp3Args = {"--preset","standard",
"-q","0",
"-m","s",
Environment.getExternalStorageDirectory().getPath()+"/myfile.wav",
Environment.getExternalStorageDirectory().getPath()+"/myfile.mp3"};
Main m = new mp3.Main();
try
{
m.run(mp3Args);
}
catch(Exception e)
{
System.out.println("ERROR processing MP3 " + e);// Some bug in Android seems to cause error BufferedOutputSteam is Closed. But it still seems to work OK.
}
我怀疑可以直接调用lame编码器传递数据缓冲区等,但由于没有记录此Java版本的确切API,因此需要进行一些研究我在项目中使用Jump3r将wav转换为mp3,因为IE11的html5播放器无法播放wav文件 Jump3r是在tomcat servlet中运行的最简单的解决方案。我无法集成像jave这样的其他解决方案,当然是因为安全经理。。。Jump3r是一个纯java程序 Jump3r在maven存储库()上可用,源代码在github()上可用 要转换文件,应该调用main方法(在下面的代码中,如果需要,我使用main方法的内联版本来捕获/抛出IOException)
嗯,您需要一个.way解码器和一个用纯Java编写的.mp3编码器。有这样的事吗?我对此表示怀疑。可能是close的重复,虽然这里的答案比需要本地LAME二进制代码的答案有用得多,但我想我会将您的答案与NestedVM答案结合起来谢谢,看起来这是我唯一的选择。Jump3r还处理字节数组。如果您正在寻找纯java,这是一个不错的选择。
private void convertWavFileToMp3File(File source, File target) throws IOException {
String[] mp3Args = { "--preset","standard",
"-q","0",
"-m","s",
source.getAbsolutePath(),
target.getAbsolutePath()
};
(new Main()).run(mp3Args);
}