我之前在这个网站上知道这个问题有already been asked,但我的问题偏离了它。
我想在不使用.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
文件是否有一些速度优势?
答案 0 :(得分:3)
MP3受到专利保护,据我所知,不能包含在标准的编解码器中。
答案 1 :(得分:2)
这可能吗??
直到/除非Oracle在J2SE中为它提供SPI,如Java Sound tag. Wiki中所述。鉴于汤姆解释的情况,我会说这将是'永远'。
如果您只能使用此库播放.wav文件,为什么只有一种文件类型?
再次,请参阅Wiki,了解如何获取J2SE提供内置支持的类型。
答案 2 :(得分:1)
有一个小型的java库,提供所有的源代码,并包含一个支持mp3甚至MIDI文件的声音播放器。它非常易于使用,并且您可以使用所有代码。 如果你想尝试: http://imr-lib.blogspot.com
答案 3 :(得分:1)
如果没有额外的库,无法在Java中播放mp3文件。 周期。
但是,Java mp3支持有许多不同的库:
答案 4 :(得分:0)
有一个名为jlayer的简单库 http://www.javazoom.net/javalayer/javalayer.html