问题描述
我已经构建了一个小型文件库来分析 JavaFx 在播放它们时的功能。
对于某些文件类型,JavaFx 只会在媒体播放器级别引发异步错误。
是否可以在播放文件之前或以某种同步方式检测到?例如,为了防止用户播放,或切换到其他播放方式。
这是关于下面代码中的“媒体播放器错误 - 2 级”错误。 这会附加一些 .aifF 文件类型(例如,带符号的 16 位 PCM,...)
这是代码:
try {
String fileStr = file.toURI().toURL().toExternalForm();
Media media = new Media(fileStr);
if (media.getError() == null) {
media.setonError(() -> {
System.err.println("media error - level 2");
});
MediaPlayer player = new MediaPlayer(media);
if (player.getError() == null) {
player.setonError(() -> {
System.err.println("media player error - level 2");
});
player.statusproperty().addListener(new changelistener<MediaPlayer.Status>() {
@Override
public void changed(ObservableValue<? extends MediaPlayer.Status> obs,MediaPlayer.Status oldStatus,MediaPlayer.Status newStatus) {
appendLog("JavaFx :: Status :: " + Objects.toString(oldStatus,"--")
+ " -> " + Objects.toString(newStatus,"--"));
}
});
player.setonEndOfMedia(() -> {
appendLog("JavaFx :: reached the end");
player.stop();
});
appendLog("JavaFx :: Start");
player.play();
success = true;
appendLog("JavaFx :: Started");
}
else {
throw new InternalException("media player error - level 1");
}
}
else {
throw new InternalException("media error - level 1");
}
} catch (InternalException| MediaException ex) {
txtFile.append("JavaFx :: " + ex.getMessage() + "\n");
success = false;
} catch (MalformedURLException ex) {
txtFile.append("JavaFx :: " + ex.getMessage() + "\n");
return;
}
我正在使用 JavaSE8。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)