我正在尝试使用 java 播放一个简单的 mp3 文件。我写的代码是:
public void playAudio(String fileSource) {
try (InputStream music = new FileInputStream(fileSource)) {
AudioStream audioStream = new AudioStream(music);
AudioPlayer.player.start(audioStream);
} catch (Exception e) {
JOptionPane.showMessageDialog(null, "error");
}
}
但是当我提供带有文件路径的方法时,没有播放任何内容。缺少什么代码?谢谢。
答案 0 :(得分:2)
你的例子可以播放midi、wav文件,也许其他一些文件,但不能播放mp3,因为专利问题,但是如果你可以使用JavaFX,那么你可以像这样播放mp3:
import java.io.File;
import javafx.scene.media.Media;
import javafx.scene.media.MediaPlayer;
public class MainClass {
public static void main(String[] args) {
com.sun.javafx.application.PlatformImpl.startup(()->{});
Media sound = new Media(new File("C:\\Users\\SomeUser\\Desktop\\someFile.mp3").toURI().toString());
MediaPlayer player = new MediaPlayer(sound);
player.play();
try {
Thread.sleep(20000); //don't exit too early
} catch (InterruptedException e) {
e.printStackTrace();
}
com.sun.javafx.application.PlatformImpl.exit();
}
}
否则您可以使用其他一些库,例如 Java Stream Player
顺便说一下,您的初始示例的正确语法是:
InputStream in = null;
try {
in = new FileInputStream("someFile.wav");
} catch (FileNotFoundException e) {
e.printStackTrace();
}
AudioStream as = null;
try {
as = new AudioStream(in);
} catch (IOException e) {
e.printStackTrace();
}
AudioPlayer.player.start(as);