javafx - 在 JavaFX 中播放 MP3 文件时出现问题 - 兼容性问题?
问题描述
我正在尝试使用 JavaFX 播放一个或两个小的 MP3 文件,尝试使用 MediaPlayer 和 AudioClip,但在每种情况下都会出现异常。某种兼容性问题?
技术栈 (1) Windows 10 home (2) Java 8 update 211 (3) Java SE Development kit 13.0.1 (4) JavaFX 11.0.2。
异常报告:
(1) MediaPlayer(当我创建一个新的 Media 对象时)
Exception in thread "JavaFX Application Thread" java.lang.IllegalAccessError: class com.sun.media.jfxmediaimpl.NativeMediaManager (in unnamed module @0x30696d74) cannot access class com.sun.glass.utils.NativeLibLoader (in module javafx.graphics) because module javafx.graphics does not export com.sun.glass.utils to unnamed module @0x30696d74
(2) AudioClip(当我创建一个新的 AudioClip 对象时)
Exception in thread "JavaFX Application Thread" java.lang.IllegalAccessError: class com.sun.media.jfxmediaimpl.NativeMediaManager (in unnamed module @0x403bc23b) cannot access class com.sun.glass.utils.NativeLibLoader (in module javafx.graphics) because module javafx.graphics does not export com.sun.glass.utils to unnamed module @0x403bc23b
代码清单:
// play a sound clip using Media
private void playMedia1() {
fullFileName = "short.mp3";
if (checkFileExists(fullFileName)) {
File f = new File(fullFileName);
System.out.println("File URI : " + f.toURI().toString());
Media media = new Media(f.toURI().toString());
MediaPlayer mplayer = new MediaPlayer(media);
mplayer.setAutoPlay(true);
} else {
System.out.printf("File %s not found%n", fullFileName);
}
}
// play a sound clip using AudioClip
private void playMedia2() {
fullFileName = "short.mp3";
if (checkFileExists(fullFileName)) {
File f = new File(fullFileName);
System.out.println("File URI : " + f.toURI().toString());
AudioClip clip1 = new AudioClip(f.toURI().toString());
clip1.play();
} else {
System.out.printf("File %s not found%n", fullFileName);
}
}
// test we can open the specified file
private boolean checkFileExists(String filename) {
File f = new File(filename);
return f.exists();
}
解决方案
推荐阅读
- windows - 为什么某些 Windows 服务器机器上的旧程序会错误地显示俄语字符串?
- bash - Bash Script:不识别大写和小写
- javascript - Next.js 仅在 Image 组件上设置点击事件
- node.js - 数据未添加到 mongodb
- ios - 如何在swift 5中滚动到tableview的底部单元格
- android - 约束布局中的多文本视图
- go - 添加新的实现而无需触及现有代码 - 如何?
- c# - 在 wpf 中,我可以使用 SHDocVw 打开 InternetExplorer 以访问 HTMLDocument。需要进行 Microsoft Edge 迁移
- javascript - html输入框最小值和十进制值
- firebase - 测试 Firebase 的“https.onCall”函数