Java播放MP3播放音频
下面我演示用jdk自带包、框架等分别展示播放mp3、等music
一、使用javafx包
AudioClip
注意jdk11以上剥离了javafx
public static void main(String[] args) throws Exception {File file = new File("C:\\Users\\Administrator\\Desktop\\塞壬唱片-MSR,BaoUner - 生命流.mp3");URI uri = file.toURI();System.out.println(uri);// file:/C:/Users/Administrator/Desktop/塞壬唱片-MSR,BaoUner%20-%20生命流.mp3AudioClip audioClip = new AudioClip(uri.toString());audioClip.setCycleCount(99);// 播放次数audioClip.play();// 延迟,不关闭main用于播放音乐Thread.sleep(10000);}}
Media
使用javafx加入场景模式
import javafx.scene.Scene;import javafx.scene.layout.AnchorPane;import javafx.scene.media.Media;import javafx.scene.media.MediaPlayer;import javafx.scene.media.MediaView;import javafx.stage.Stage;import java.io.File;import .URI;/*** @author lingkang* @date /12/11*/public class MyMusic01 extends Application {@Overridepublic void start(Stage primaryStage) throws Exception {File file = new File("C:\\Users\\Administrator\\Desktop\\塞壬唱片-MSR,BaoUner - 生命流.mp3");URI uri = file.toURI();System.out.println(uri);Media media = new Media(uri.toString());MediaPlayer mediaPlayer = new MediaPlayer(media);mediaPlayer.setAutoPlay(true);MediaView mediaView = new MediaView(mediaPlayer);// 可以使用按钮控制//mediaPlayer.play();primaryStage.setScene(new Scene(new AnchorPane(mediaView)));primaryStage.show();}public static void main(String[] args) throws Exception {launch(args);}}
二、java自带包
AudioClip
使用java自带AudioClip 只能播放wav
格式文件,其他格式无法播放
import java.applet.Applet;import java.applet.AudioClip;import java.io.File;import .URI;/*** @author lingkang* @date /12/11*/public class MyMusic02 {public static void main(String[] args) throws Exception {// 只支持 wavFile file = new File("C:\\Users\\Administrator\\Desktop\\aoUner_-_231148159229145189230181129.wav");URI uri = file.toURI();System.out.println(uri);// AudioClip 只能播放 wav 格式的musicAudioClip audioClip = Applet.newAudioClip(uri.toURL());audioClip.play();// 独立线程播放//循环播放audioClip.loop();}}
Clip
使用Clip,也是只支持wav
import javax.sound.sampled.AudioInputStream;import javax.sound.sampled.AudioSystem;import javax.sound.sampled.Clip;import java.io.File;import .URI;/*** @author lingkang* @date /12/11*/public class MyMusic03 {public static void main(String[] args) throws Exception {//只能播放 wav 格式的musicFile file = new File("C:\\Users\\Administrator\\Desktop\\aoUner_-_231148159229145189230181129.wav");URI uri = file.toURI();System.out.println(uri);AudioInputStream audioIn = AudioSystem.getAudioInputStream(file);Clip clip = AudioSystem.getClip();clip.open(audioIn);clip.start();Thread.sleep(15000);}}
三、使用框架
jaco-mp3-player
的框架
下载地址 /
只支持map3
import jaco.mp3.player.MP3Player;import java.io.File;import .URI;/*** @author lingkang* @date /12/11*/public class MyMusic04 {public static void main(String[] args) throws Exception {File file = new File("C:\\Users\\Administrator\\Desktop\\塞壬唱片-MSR,BaoUner - 生命流.mp3");//File file = new File("C:\\Users\\Administrator\\Desktop\\aoUner_-_231148159229145189230181129.wav");URI uri = file.toURI();System.out.println(uri);// 只支持map3new MP3Player(file).play();Thread.sleep(15000);}}
jlayer
最后更新
<!-- /artifact/javazoom/jlayer --><dependency><groupId>javazoom</groupId><artifactId>jlayer</artifactId><version>1.0.1</version></dependency>
import javazoom.jl.player.Player;import java.io.File;import java.io.FileInputStream;import .URI;/*** @author lingkang* @date /12/11*/public class MyMusic05 {public static void main(String[] args) throws Exception {File file = new File("C:\\Users\\Administrator\\Desktop\\塞壬唱片-MSR,BaoUner - 生命流.mp3");//File file = new File("C:\\Users\\Administrator\\Desktop\\aoUner_-_231148159229145189230181129.wav");URI uri = file.toURI();System.out.println(uri);// 只支持mp3格式Player player = new Player(new FileInputStream(file));player.play();// 线程阻塞System.out.println("Song is playing");}}
总结
推荐使用javafx包下的AudioClip