用 Java 分解 MP3

Posted

技术标签:

【中文标题】用 Java 分解 MP3【英文标题】:Decomposing MP3s in Java 【发布时间】:2012-01-06 19:31:05 【问题描述】:

读取 MP3 并将其转换为最基本的幅度波形(可以表示波形上的一个点以进行可视化的浮点数)的最流行的方法/API 是什么,然后我如何使用这个基本值来播放它在电脑的音频输出上? (所有这些都在 Java 中完成)

【问题讨论】:

(所有这些都是在 Java 中完成的),换句话说,您是在要求我们为您编写一个完整的应用程序? 不,我当然不是。我想要指向我应该使用什么 API(或 API 集合)的指针,如果有这样的东西,也许还有一个教程文档。 你总是可以花 220 美元购买规格,然后从那里开始。 【参考方案1】:

您可能想看看LAMEOnJ。它是 LAME (JavaDoc) 的 Java 包装器。

至于将字节数组转换为浮点数组,如何导入java.nio.ByteBufferjava.nio.ByteOrder,然后进行如下操作

float floatVal = ByteBuffer.wrap(array).order(ByteOrder.nativeOrder()).getFloat();

这应该可以为您提供一个浮点数组。至于演奏它,您可以为每个浮点值分配一个音高。

【讨论】:

这可能适用于未压缩的格式,但对于 MP3,您必须读取数据帧并解压缩它们,这并非易事。 只是一些事情:它不是一个实现,它是标准LAME(本机)库的一个包装器;其次,它使用了一个商业的、封闭源代码的产品(出于我无法理解的合理原因)。从头开始做一个更简单的包装器(可能是一个更简单的库)可能会好得多。 如果自定义编码,很多东西会更好! :P 我的回答是基于 ExtremeCoder 要求 API 的事实? 如果我有更好的答案,我会投反对票;事实上,我只是想指出你的一些缺点。 嗯 - 在我上次回复的第一部分中它说“0 反对票”......奇怪 - 某种错误?无论如何,你对缺点提出了很好的建议。谢谢! :)

以上是关于用 Java 分解 MP3的主要内容,如果未能解决你的问题,请参考以下文章

用java编程 将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。

用java编程 将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。

(java) ArrayList 分解,结果转换成 二维数组!!!

java实现一个整数分解为两个质数乘积

Java中带指数的素数分解

带计数器的独特因式分解