java - 为什么在实例化 javafx Media 对象时会引发 IllegalArgumentException?
问题描述
我正在用 java 编写游戏,我正在创建一个名为“Audio”的类中的 Media 和 MediaPlayer 类来播放 .mp3 文件。这是我的代码:
Main类的相关部分:
Audio audio = new Audio(audioPath + "oxygen-theme-song.mp3");
audio.play();
音频类:
import javafx.scene.media.Media;
import javafx.scene.media.MediaPlayer;
import javafx.util.Duration;
public class Audio {
private Media audio;
private MediaPlayer audioPlayer;
public Audio(String audioPath) {
audio = new Media(audioPath);
audioPlayer = new MediaPlayer(audio);
}
public void play() {
audioPlayer.play();
}
public void stop() {
audioPlayer.pause();
audioPlayer.setStartTime(Duration.ZERO);
}
}
这会引发以下异常:
Exception in thread "main" java.lang.IllegalArgumentException: uri.getScheme() == null! uri == 'Sound-Effects/oxygen-theme-song.mp3'
at javafx.media/com.sun.media.jfxmedia.locator.Locator.<init>(Locator.java:218)
at javafx.media/javafx.scene.media.Media.<init>(Media.java:393)
at primecubed.oxygen.Audio.<init>(Audio.java:12)
at primecubed.oxygen.Main.main(Main.java:118)
.mp3 文件确实存在于正确的位置,所以我想不出抛出这个文件的原因。有人可以帮忙吗?
解决方案
推荐阅读
- c++ - 信号没有被其他类捕获
- angular - Ionicons 未在浏览器构建中加载 (ionic build --prod) - Ionic Application
- python - 复制列值以适合列名数组
- android - 如何以编程方式获取快捷方式 ID?
- excel - 将工作表另存为外部文件中的值
- powershell - 找不到指定的文件。这个powershell脚本有什么问题吗?
- kubernetes - 执行“kubeadm alpha certs xxx”时主机名无效
- kentico - 如何修改地址信息类文件
- reactjs - Material-table:如何为 EmptyDataSourceMessage 赋予自定义样式
- c# - 如何通过LINQ从字典中提取数据