gpt4 book ai didi

java - 无法捕获有关音频剪辑的异常

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:06:31 25 4
gpt4 key购买 nike

我最近开始使用 JavaFX,但在音频剪辑和异常处理方面遇到了一些问题。

当我在一台音频系统有问题的电脑上尝试时,抛出了异常。

异常抛出:

Exception in thread "Thread-4" com.sun.media.jfxmedia.MediaException: Could not create player!
at javafx.media/com.sun.media.jfxmediaimpl.NativeMediaManager.getPlayer(NativeMediaManager.java:274)
at javafx.media/com.sun.media.jfxmedia.MediaManager.getPlayer(MediaManager.java:118)
at javafx.media/com.sun.media.jfxmediaimpl.NativeMediaAudioClipPlayer.play(NativeMediaAudioClipPlayer.java:319)
at javafx.media/com.sun.media.jfxmediaimpl.NativeMediaAudioClipPlayer.clipScheduler(NativeMediaAudioClipPlayer.java:112)
at javafx.media/com.sun.media.jfxmediaimpl.NativeMediaAudioClipPlayer.access$000(NativeMediaAudioClipPlayer.java:47)
at javafx.media/com.sun.media.jfxmediaimpl.NativeMediaAudioClipPlayer$Enthreaderator.lambda$static$0(NativeMediaAudioClipPlayer.java:85)
at java.base/java.lang.Thread.run(Thread.java:844)

这是我的实现片段

此外,我尝试了 Throwable。但是我的代码有问题。

实现代码

try{
audio = new AudioClip(new File("Ding.mp3").toURI().toString());
audio.play();
Thread.sleep(1000);
}catch(Exception e){
System.out.println("can't play audio");
}

导入部分

import java.io.File;
import javafx.application.*;
import javafx.scene.*;
import javafx.scene.layout.*;
import javafx.scene.control.*;
import javafx.scene.paint.*;
import javafx.scene.image.*;
import javafx.scene.effect.*;
import javafx.scene.text.*;
import javafx.scene.input.*;
import javafx.scene.canvas.*;
import javafx.scene.shape.*;
import javafx.scene.media.*;
import javafx.scene.media.AudioClip;
import javafx.stage.*;
import javafx.event.*;
import javafx.geometry.*;
import javafx.collections.*;
import java.util.*;
import java.net.MalformedURLException;

P.s this is my whole code https://github.com/yamakataoka/Pomodoro/blob/master/Pomodoro.java

你知道怎么抓吗?

最佳答案

您无法捕获此异常,因为它是在处理媒体工作流的不同线程上抛出的。

不幸的是,Java 没有提供任何简单的方法来捕获此类异常。

您得到异常很可能是因为 JavaFX 找不到您提供的文件。先用一个 URL 试试看是否正确:

AudioClip clickSound = new AudioClip("https://github.com/sgrinev/mastering-javafx-9-10-book/raw/master/resources/mouse-click.wav");

如果有效,请检查下一个问题的答案,了解 JavaFX 中正确的资源声明:How to target a file (a path to it) in Java/JavaFX

P.S.:如果你真的致力于捕获这个异常,你可以深入研究下一个 API:https://docs.oracle.com/javase/6/docs/api/java/lang/Thread.html#setDefaultUncaughtExceptionHandler(java.lang.Thread.UncaughtExceptionHandler)

关于java - 无法捕获有关音频剪辑的异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54143914/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com