java中的getscheme_“ java.lang.IllegalArgumentException:uri.getScheme()== null!使用JavaFX播放音频时发生错误”...

我正在尝试在Java和其中一种格式上播放mp3音频。我相信是JavaFX,一切正常,直到尝试播放音频为止。

这是代码:

import javax.sound.sampled.AudioPermission;

import javafx.application.Application;

import javafx.event.ActionEvent;

import javafx.event.EventHandler;

import javafx.scene.Scene;

import javafx.scene.control.Button;

import javafx.scene.layout.StackPane;

import javafx.scene.media.Media;

import javafx.scene.media.MediaPlayer;

import javafx.stage.Stage;

public class fx_main extends Application {

@Override

public void start(Stage primaryStage) {

Button btn = new Button();

btn.setText("Say 'Hello World'");

btn.setOnAction(new EventHandler() {

@Override

public void handle(ActionEvent event) {

System.out.println("Hello World!");

Media m = new Media("/04.mp3");

MediaPlayer mp = new MediaPlayer(m);

mp.play();

}

});

StackPane root = new StackPane();

root.getChildren().add(btn);

Scene scene = new Scene(root, 300, 250);

primaryStage.setTitle("Hello World!");

primaryStage.setScene(scene);

primaryStage.show();

}

public static void main(String[] args) {

launch(args);

}

}

当我按下按钮并尝试加载声音文件时,出现此异常:

Hello World!

Glass detected outstanding Java exception at -[GlassViewDelegate sendJavaMouseEvent:]:src/com/sun/mat/ui/GlassViewDelegate.m:543

Exception in thread "JavaFX Application Thread" java.lang.IllegalArgumentException: uri.getScheme() == null!

at com.sun.media.jfxmedia.locator.Locator.(Locator.java:217)

at javafx.scene.media.Media.(Media.java:369)

at fx_man$1.handle(fx_man.java:27)

at fx_man$1.handle(fx_man.java:1)

at com.sun.javafx.event.CompositeEventHandler.dispatchBubblingEvent(CompositeEventHandler.java:69)

at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:217)

at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:170)

at com.sun.javafx.event.CompositeEventDispatcher.dispatchBubblingEvent(CompositeEventDispatcher.java:38)

at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:37)

at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:92)

at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:35)

at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:92)

at com.sun.javafx.event.EventUtil.fireEventImpl(EventUtil.java:53)

at com.sun.javafx.event.EventUtil.fireEvent(EventUtil.java:28)

at javafx.event.Event.fireEvent(Event.java:171)

at javafx.scene.Node.fireEvent(Node.java:6866)

at javafx.scene.control.Button.fire(Button.java:179)

at com.sun.javafx.scene.control.behavior.ButtonBehavior.mouseReleased(ButtonBehavior.java:193)

at com.sun.javafx.scene.control.skin.SkinBase$4.handle(SkinBase.java:336)

at com.sun.javafx.scene.control.skin.SkinBase$4.handle(SkinBase.java:329)

at com.sun.javafx.event.CompositeEventHandler.dispatchBubblingEvent(CompositeEventHandler.java:64)

at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:217)

at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:170)

at com.sun.javafx.event.CompositeEventDispatcher.dispatchBubblingEvent(CompositeEventDispatcher.java:38)

at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:37)

at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:92)

at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:35)

at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:92)

at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:35)

at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:92)

at com.sun.javafx.event.EventUtil.fireEventImpl(EventUtil.java:53)

at com.sun.javafx.event.EventUtil.fireEvent(EventUtil.java:33)

at javafx.event.Event.fireEvent(Event.java:171)

at javafx.scene.Scene$MouseHandler.process(Scene.java:3369)

at javafx.scene.Scene$MouseHandler.process(Scene.java:3209)

at javafx.scene.Scene$MouseHandler.access$1900(Scene.java:3164)

at javafx.scene.Scene.impl_processMouseEvent(Scene.java:1582)

at javafx.scene.Scene$ScenePeerListener.mouseEvent(Scene.java:2267)

at com.sun.javafx.tk.quantum.GlassViewEventHandler$MouseEventNotification.run(GlassViewEventHandler.java:250)

at com.sun.javafx.tk.quantum.GlassViewEventHandler$MouseEventNotification.run(GlassViewEventHandler.java:173)

at java.security.AccessController.doPrivileged(Native Method)

at com.sun.javafx.tk.quantum.GlassViewEventHandler.handleMouseEvent(GlassViewEventHandler.java:292)

at com.sun.glass.ui.View.handleMouseEvent(View.java:530)

at com.sun.glass.ui.View.notifyMouse(View.

java:924)

如何解决错误?单击后是否要播放音频文件?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值