【问题标题】:Java - Convert ogg to mp3Java - 将 ogg 转换为 mp3
【发布时间】:2012-08-06 16:37:49
【问题描述】:

我正在编写一个 Java 程序,我想将一个 ogg 文件转换为 mp3 文件。
我花了很多时间试图找到一个好的库来做到这一点,但目前没有成功。

我想我需要一个 ogg 解码器 (jorbis ?) 和一个 mp3 编码器 (lameOnJ ?)。
此外,一旦转换完成,我需要在文件中设置一些标签(艺术家/曲目标签等)。

这是一个 Windows 和 OS X 应用程序。
您能否给我一些有关如何处理的提示,如果可能的话,请提供示例。

谢谢

【问题讨论】:

  • 您的具体问题是什么?有库可以执行每个可用步骤,并且您已经找到了要使用的候选者。您只需要编写粘合代码即可将它们连接在一起。
  • 嗯,我对 Java 还很陌生,很难找到编写这种胶水代码的好例子。
  • 没有人会为你写的(除非你付钱给他们)。而且很可能没有示例可以满足您的需要。但是您可以搜索每个步骤的部分解决方案示例(分而治之!)。从第一步开始,解码ogg文件。当你拥有它时,扩展它以将解码的数据输入编码器。等等……

标签: java mp3 ogg


【解决方案1】:

你有很多选择,这取决于你要付出多少努力,以及你对执行平台有什么限制。

许多开发人员会简单地调用 System.exec() 来调用外部 decode/encode/label 可执行文件,将中间文件写入磁盘。这有点笨拙,但一旦设置正确,它就可以工作。

更复杂的选择是使用您找到的库。您仍然可以使用文件系统来临时存储未压缩的版本。

但是,您可以通过流水线来避免存储中间步骤,也许可以加快速度。您需要将解码器的输出作为编码器的输入,并设置它们都运行。

这方面的细节取决于 API。如果幸运的话,它们可以处理块,并且您可以在单个线程中管理它们。

如果它们使用流,您可能需要亲自动手并使用线程。编码器一个线程,解码器一个线程。

【讨论】:

  • @Durandal 说一个 API 有一个同步方法 OggDecoder.decode(InputStream in, OutputStream out),另一个有 Mp3Encoder.encode(InputStream in, OutputStream out)。如果您想将一个管道传输到另一个,您将需要线程——或者将中间格式存储在某个地方。
  • 啊,我想得还不够远。我现在明白你的意思了。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2023-03-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-12-08
  • 2013-05-28
  • 1970-01-01
相关资源
最近更新 更多