媒体播放器不工作
MediaPlayer isn't working
如何使用MediaPlayer播放m4a文件?
这是我的代码:
public void audioPlayerButtons(ActionEvent actionEvent) {
String bip = "Songs/01 Clarity.m4a";
Media hit = new Media(bip);
MediaPlayer mediaPlayer = new MediaPlayer(hit);
if (actionEvent.getSource() == playbtn) {
mediaPlayer.play();
} else if (actionEvent.getSource() == pausebtn) {
mediaPlayer.pause();
} else if (actionEvent.getSource() == forwardbtn) {
mediaPlayer.stop();
} else if (actionEvent.getSource() == backwardbtn) {
mediaPlayer.isAutoPlay();
}
但它抛出错误:
Exception in thread "JavaFX Application Thread" java.lang.RuntimeException: java.lang.reflect.InvocationTargetException
at javafx.fxml.FXMLLoader$MethodHandler.invoke(FXMLLoader.java:1762)
at javafx.fxml.FXMLLoader$ControllerMethodEventHandler.handle(FXMLLoader.java:1645)
at com.sun.javafx.event.CompositeEventHandler.dispatchBubblingEvent(CompositeEventHandler.java:86)
你能帮我理解为什么吗?
基本上,我的目标是使用 mediaPlayer 制作一个 mp3 播放器
根据 Javadocs for the Media
constructor:
The source must represent a valid URI and is immutable. Only HTTP,
FILE, and JAR URLs are supported. If the provided URL is invalid then
an exception will be thrown.
您提供的值 ("Songs/01 Clarity.m4a"
) 肯定不是有效的 URI,因为它有空格。
你需要这样的东西
String bip = getClass().getResource("Songs/01 Clarity.m4a").toExternalForm();
(这将尝试找到与当前 class 相关的歌曲,如果您打算将 m4a 文件与您的应用程序捆绑在一起,这将非常有用),或者
String bip = new File("Songs/01 Clarity.m4a").toURI().toString();
这将在文件系统上相对于工作目录查找文件。
无论哪种情况,您都可能需要更改路径以使其正确。
如何使用MediaPlayer播放m4a文件? 这是我的代码:
public void audioPlayerButtons(ActionEvent actionEvent) {
String bip = "Songs/01 Clarity.m4a";
Media hit = new Media(bip);
MediaPlayer mediaPlayer = new MediaPlayer(hit);
if (actionEvent.getSource() == playbtn) {
mediaPlayer.play();
} else if (actionEvent.getSource() == pausebtn) {
mediaPlayer.pause();
} else if (actionEvent.getSource() == forwardbtn) {
mediaPlayer.stop();
} else if (actionEvent.getSource() == backwardbtn) {
mediaPlayer.isAutoPlay();
}
但它抛出错误:
Exception in thread "JavaFX Application Thread" java.lang.RuntimeException: java.lang.reflect.InvocationTargetException
at javafx.fxml.FXMLLoader$MethodHandler.invoke(FXMLLoader.java:1762)
at javafx.fxml.FXMLLoader$ControllerMethodEventHandler.handle(FXMLLoader.java:1645)
at com.sun.javafx.event.CompositeEventHandler.dispatchBubblingEvent(CompositeEventHandler.java:86)
你能帮我理解为什么吗?
基本上,我的目标是使用 mediaPlayer 制作一个 mp3 播放器
根据 Javadocs for the Media
constructor:
The source must represent a valid URI and is immutable. Only HTTP, FILE, and JAR URLs are supported. If the provided URL is invalid then an exception will be thrown.
您提供的值 ("Songs/01 Clarity.m4a"
) 肯定不是有效的 URI,因为它有空格。
你需要这样的东西
String bip = getClass().getResource("Songs/01 Clarity.m4a").toExternalForm();
(这将尝试找到与当前 class 相关的歌曲,如果您打算将 m4a 文件与您的应用程序捆绑在一起,这将非常有用),或者
String bip = new File("Songs/01 Clarity.m4a").toURI().toString();
这将在文件系统上相对于工作目录查找文件。
无论哪种情况,您都可能需要更改路径以使其正确。