Javafx媒体播放器
为什么它不起作用? 我试图更改文件名、路径,但仍然不起作用。 我有很多例外。 我不知道这个代码有什么问题。 文件路径/Users/Mariusz/Music/Audio.mp3 我更改了代码,但仍然不起作用Javafx媒体播放器,java,class,mp3,Java,Class,Mp3,为什么它不起作用? 我试图更改文件名、路径,但仍然不起作用。 我有很多例外。 我不知道这个代码有什么问题。 文件路径/Users/Mariusz/Music/Audio.mp3 我更改了代码,但仍然不起作用 if(e.getActionCommand().equals("Play")) { bar.setString(file.getName().split(".mp3")[0]); playSound(file); } public void playSou
if(e.getActionCommand().equals("Play")) {
bar.setString(file.getName().split(".mp3")[0]);
playSound(file);
}
public void playSound(File file){
String bip = file.toURI().toString();
Media hit = new Media(bip);
MediaPlayer mediaPlayer = new MediaPlayer(hit);
mediaPlayer.play();
}
线程“thread-12”java.lang.IllegalStateException中的异常:工具箱未初始化 位于com.sun.javafx.application.PlatformImpl.runLater(PlatformImpl.java:155) 位于com.sun.javafx.application.PlatformImpl.runLater(PlatformImpl.java:150) 位于javafx.application.Platform.runLater(Platform.java:52) 位于javafx.scene.media.media$\u MetadataListener.onMetadata(media.java:499) 位于com.sun.media.jfxmediimpl.MetadataParserImpl.done(MetadataParserImpl.java:158) 位于com.sun.media.jfxmediimpl.platform.java.ID3MetadataParser.parse(ID3MetadataParser.java:270) 在com.sun.media.jfxmediaimpl.MetadataParserImpl.run(MetadataParserImpl.java:141)上 线程“AWT-EventQueue-0”java.lang.IllegalStateException中出现异常:工具箱未初始化 位于com.sun.javafx.application.PlatformImpl.runLater(PlatformImpl.java:155) 位于com.sun.javafx.application.PlatformImpl.runLater(PlatformImpl.java:150) 位于javafx.application.Platform.runLater(Platform.java:52) 位于javafx.scene.media.MediaPlayer.init(MediaPlayer.java:450) 位于javafx.scene.media.MediaPlayer。(MediaPlayer.java:365) 播放声音(MyFrame.java:300) 在MyFrame.actionPerformed(MyFrame.java:281) 在javax.swing.AbstractButton.fireActionPerformed上(AbstractButton.java:2018) 位于javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2341) 在javax.swing.DefaultButtonModel.fireActionPerformed上(DefaultButtonModel.java:402) 在javax.swing.DefaultButtonModel.setPressed中(DefaultButtonModel.java:259) 在javax.swing.plaf.basic.BasicButtonListener.MouseRelease(BasicButtonListener.java:252) 位于java.awt.Component.ProcessMouseeEvent(Component.java:6505) 位于javax.swing.JComponent.ProcessMouseeEvent(JComponent.java:3320) 位于java.awt.Component.processEvent(Component.java:6270) 位于java.awt.Container.processEvent(Container.java:2229) 位于java.awt.Component.dispatchEventImpl(Component.java:4861) 位于java.awt.Container.dispatchEventImpl(Container.java:2287) 位于java.awt.Component.dispatchEvent(Component.java:4687) 位于java.awt.LightweightDispatcher.RetargetMouseeEvent(Container.java:4832) 位于java.awt.LightweightDispatcher.ProcessMouseeEvent(Container.java:4492) 位于java.awt.LightweightDispatcher.dispatchEvent(Container.java:4422) 位于java.awt.Container.dispatchEventImpl(Container.java:2273) 位于java.awt.Window.dispatchEventImpl(Window.java:2719) 位于java.awt.Component.dispatchEvent(Component.java:4687) 位于java.awt.EventQueue.dispatchEventImpl(EventQueue.java:729) 在java.awt.EventQueue.access$200(EventQueue.java:103) 在java.awt.EventQueue$3.run(EventQueue.java:688) 在java.awt.EventQueue$3.run(EventQueue.java:686) 位于java.security.AccessController.doPrivileged(本机方法) 位于java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76) 位于java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:87) 在java.awt.EventQueue$4.run(EventQueue.java:702) 在java.awt.EventQueue$4.run(EventQueue.java:700) 位于java.security.AccessController.doPrivileged(本机方法) 位于java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76) 位于java.awt.EventQueue.dispatchEvent(EventQueue.java:699) 位于java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:242) 在java.awt.EventDispatchThread.PumpeEventsforFilter(EventDispatchThread.java:161) 位于java.awt.EventDispatchThread.PumpeEventsforHierarchy(EventDispatchThread.java:150) 位于java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:146) 位于java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:138) 在java.awt.EventDispatchThread.run(EventDispatchThread.java:91) 采用URI,而不是文件路径说明符 在JavaFX2.2中,构造函数具有以下约束:
- 根据的要求,提供的URI必须符合RFC-2396
- 仅支持HTTP、文件和JAR URI
file.getPath()调用返回的空格字符在URI中是非法的
要成为有效的URI,必须将'
编码为%20
要为文件构造URI,请调用而不是当前调用file.getPath()
到底发生了什么?有例外吗?
Exception in thread "Thread-12" java.lang.IllegalStateException: Toolkit not initialized
at com.sun.javafx.application.PlatformImpl.runLater(PlatformImpl.java:155)
at com.sun.javafx.application.PlatformImpl.runLater(PlatformImpl.java:150)
at javafx.application.Platform.runLater(Platform.java:52)
at javafx.scene.media.Media$_MetadataListener.onMetadata(Media.java:499)
at com.sun.media.jfxmediaimpl.MetadataParserImpl.done(MetadataParserImpl.java:158)
at com.sun.media.jfxmediaimpl.platform.java.ID3MetadataParser.parse(ID3MetadataParser.java:270)
at com.sun.media.jfxmediaimpl.MetadataParserImpl.run(MetadataParserImpl.java:141)
Exception in thread "AWT-EventQueue-0" java.lang.IllegalStateException: Toolkit not initialized
at com.sun.javafx.application.PlatformImpl.runLater(PlatformImpl.java:155)
at com.sun.javafx.application.PlatformImpl.runLater(PlatformImpl.java:150)
at javafx.application.Platform.runLater(Platform.java:52)
at javafx.scene.media.MediaPlayer.init(MediaPlayer.java:450)
at javafx.scene.media.MediaPlayer.<init>(MediaPlayer.java:365)
at MyFrame.playSound(MyFrame.java:300)
at MyFrame.actionPerformed(MyFrame.java:281)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2018)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2341)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252)
at java.awt.Component.processMouseEvent(Component.java:6505)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3320)
at java.awt.Component.processEvent(Component.java:6270)
at java.awt.Container.processEvent(Container.java:2229)
at java.awt.Component.dispatchEventImpl(Component.java:4861)
at java.awt.Container.dispatchEventImpl(Container.java:2287)
at java.awt.Component.dispatchEvent(Component.java:4687)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4832)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4492)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4422)
at java.awt.Container.dispatchEventImpl(Container.java:2273)
at java.awt.Window.dispatchEventImpl(Window.java:2719)
at java.awt.Component.dispatchEvent(Component.java:4687)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:729)
at java.awt.EventQueue.access$200(EventQueue.java:103)
at java.awt.EventQueue$3.run(EventQueue.java:688)
at java.awt.EventQueue$3.run(EventQueue.java:686)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:87)
at java.awt.EventQueue$4.run(EventQueue.java:702)
at java.awt.EventQueue$4.run(EventQueue.java:700)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:699)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:242)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:161)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:150)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:146)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:138)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:91)