微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何检测 JavaFx 媒体播放器将无法播放的文件

如何解决如何检测 JavaFx 媒体播放器将无法播放的文件

我已经构建了一个小型文件库来分析 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 举报,一经查实,本站将立刻删除。