如何在Java应用程序中播放 .mp3
和 .wav
文件?我正在使用Swing . 我尝试在互联网上寻找类似这样的例子:
public void playSound() {
try {
AudioInputStream audioInputStream = AudioSystem.getAudioInputStream(new File("D:/MusicPlayer/fml.mp3").getAbsoluteFile());
Clip clip = AudioSystem.getClip();
clip.open(audioInputStream);
clip.start();
} catch(Exception ex) {
System.out.println("Error with playing sound.");
ex.printStackTrace();
}
}
但是,这只会播放 .wav
文件 .
同样的:
http://www.javaworld.com/javaworld/javatips/jw-javatip24.html
我希望能够使用相同的方法播放 .mp3
文件和 .wav
文件 .
12 回答
要向Java Sound添加MP3读取支持,请将JMF的
mp3plugin.jar
添加到应用程序的运行时类路径 .请注意,
Clip
类具有内存限制,使其不适合超过几秒钟的高品质声音 .使用此库:import sun.audio . *;
Java FX有
Media
和MediaPlayer
类,它们将播放mp3文件 .示例代码:
您将需要以下import语句:
我写了一个纯java的mp3播放器:mp3transform .
你只能用java API玩.wav:
码:
和jLayer一起玩.mp3
我使用它已经有一段时间了,但JavaLayer非常适合MP3播放
我建议使用BasicPlayerAPI . 它's open source, very simple and it doesn' t需要JavaFX . http://www.javazoom.net/jlgui/api.html
下载并解压缩zip文件后,应将以下jar文件添加到项目的构建路径中:
basicplayer3.0.jar
all 来自 lib 目录的jar(在BasicPlayer3.0内)
这是一个简约的用法示例:
所需进口:
这就是你开始播放音乐所需要的一切 . 播放器正在启动并管理自己的播放线程,并提供 play, pause, resume, stop 和 seek 功能 .
有关更高级的用法,您可以查看jlGui音乐播放器 . 它是一个开源的WinAmp克隆:http://www.javazoom.net/jlgui/jlgui.html
要查看的第一个类是 PlayerUI (在包javazoom.jlgui.player.amp中) . 它很好地演示了BasicPlayer的高级功能 .
使用标准的javax.sound API,一个Maven依赖,完全开源(需要 Java 7 ):
pom.xml
代码
参考文献:
我找到的最简单方法是从http://www.javazoom.net/javalayer/sources.html下载JLayer jar文件并将其添加到Jar库http://www.wikihow.com/Add-JARs-to-Project-Build-Paths-in-Eclipse-%28Java%29
这是该类的代码
这是进口
为了给读者另一种选择,我建议使用JACo MP3播放器库,一个跨平台的java mp3播放器 .
特征:
CPU使用率非常低(~2%)
令人难以置信的小型图书馆(约90KB)
不需要JMF(Java Media Framework)
易于集成到任何应用程序中
易于集成到任何网页(作为applet) .
有关其方法和属性的完整列表,您可以查看其文档here .
示例代码:
有关更多详细信息,我创建了一个包含可下载源代码的简单教程here .
您需要先安装JMF(download using this link)
不要忘记添加JMF jar文件
搜索freshmeat.net获取JAVE(代表Java音频视频编码器)库(链接here) . 它's a library for these kinds of things. I don'知道Java是否具有本机mp3功能 .
如果你想要一种方法来运行这两种类型的文件,你可能需要使用继承和一个简单的包装函数将mp3函数和wav函数包装在一起 .