0

我知道这个问题之前已经在这个网站上被问过,但我的问题有点偏离它。

我想在.mp3不使用外部 Java 库(例如javafx. 这有可能吗?如果有,你是怎么做到的?我没有反对图书馆javafx,我只是想知道用于教育目的。

我知道使用这些javax库可以.wav很容易地播放文件。

public void playSound() {
try {
    AudioInputStream audioInputStream = AudioSystem.getAudioInputStream(new File("D:/Music/test.wav").getAbsoluteFile());
    Clip clip = AudioSystem.getClip();
    clip.open(audioInputStream);
    clip.start();
    } catch(Exception e) {
    e.printStackTrace();
    }
}

如果您只能.wav使用此库播放文件,为什么只有一种文件类型?仅仅是开发人员的选择,还是在选择这种文件类型时有某种策略?.wav通过访问其他文件类型的文件是否有一些速度优势?

4

5 回答 5

3

据我所知,MP3 受专利保护,不能包含在标准编解码器中。

于 2013-02-06T00:28:08.703 回答
2

这可能吗..?

直到/除非 Oracle 在 J2SE 中为其提供 SPI,如Java Sound 标记中所述。维基。鉴于汤姆解释的情况,我会说这将是“永远不会”。

如果您只能使用此库播放 .wav 文件,为什么只有一种文件类型?

同样,请参阅 Wiki,了解如何获取 J2SE 为其提供内置支持的类型。

于 2013-02-06T00:30:22.067 回答
1

有一个小型 java 库,提供所有源代码,并包含支持 mp3 甚至 MIDI 文件的声音播放器。它非常易于使用,并且您拥有所有可用的代码。如果你想尝试:http: //imr-lib.blogspot.com

于 2013-05-22T18:05:17.220 回答
1

如果没有额外的库,您将无法在 Java 中播放 mp3 文件。时期。

但是,有许多不同的库支持 Java mp3:

  • 已经提到 JavaFX(Oracle 开始将 JavaFX 与 Java 7 捆绑在一起,因此它很容易获得)。
  • Javazoom,似乎在 2008 年就被抛弃了。
  • 几个FFmpeg包装器,例如Xuggle,通常需要您学习新的 API,因为它们没有实现javax.sound.sampled.spi您可以在此处找到基于 FFmpeg 的项目列表。
  • 适用于 OS X 和 Windows 的SampledSP库。javax.sound.sampled.spi这是在不同程度上实现的库的集合(完全公开 - 我写了它们)。
于 2013-07-01T09:30:13.877 回答
0

有一个简单的库叫做 jlayer http://www.javazoom.net/javalayer/javalayer.html

于 2013-02-17T08:41:45.373 回答