spielen .wav Datei aus jar als Ressource mit java
Ich spielen möchte, ein .wav-Datei mit java-code in eine jar-Datei als Ressource. Mein code wird wie folgt Aussehen -
try {
URL defaultSound = getClass().getResource("/images/ads/WindowsNavigationStart.wav");
//getClass().getSy.getResource("/images/ads/WindowsNavigationStart.wav");
File soundFile = new File(defaultSound.toURI());
AudioInputStream audioInputStream = AudioSystem.getAudioInputStream(soundFile);
Clip clip = AudioSystem.getClip();
clip.open(audioInputStream);
clip.start( );
} catch (Exception ex) {
ex.printStackTrace();
}
Die Datei WindowsNavigationStart.wav ist vorhanden in einer meiner jar-Datei. Aber immer folgende exception -
java.lang.IllegalArgumentException: URI is not hierarchical
at java.io.File.<init>(File.java:363)
at au.com.webscan.wwwizard.app.admin.customfile.UpOneLevelFolder.btnUpFolderActionPerformed(Unknown Source)
at au.com.webscan.wwwizard.app.admin.customfile.UpOneLevelFolder.access$000(Unknown Source)
at au.com.webscan.wwwizard.app.admin.customfile.UpOneLevelFolder$1.actionPerformed(Unknown Source)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236)
at java.awt.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java:272)
at java.awt.Component.processMouseEvent(Component.java:6288)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3267)
at java.awt.Component.processEvent(Component.java:6053)
at java.awt.Container.processEvent(Container.java:2041)
at java.awt.Component.dispatchEventImpl(Component.java:4651)
at java.awt.Container.dispatchEventImpl(Container.java:2099)
at java.awt.Component.dispatchEvent(Component.java:4481)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4577)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4238)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4168)
at java.awt.Container.dispatchEventImpl(Container.java:2085)
at java.awt.Window.dispatchEventImpl(Window.java:2478)
at java.awt.Component.dispatchEvent(Component.java:4481)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:643)
at java.awt.EventQueue.access$000(EventQueue.java:84)
at java.awt.EventQueue$1.run(EventQueue.java:602)
at java.awt.EventQueue$1.run(EventQueue.java:600)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:98)
at java.awt.EventQueue$2.run(EventQueue.java:616)
at java.awt.EventQueue$2.run(EventQueue.java:614)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:613)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)
Bitte geben Sie mir eine Lösung. Danke an Euch alle.
- Wo ist deine wav ? Wenn es gezippt mit Ihrem java cannot create File-Objekt mit dem URI. Jedoch, die Verwendung der InputStream ist möglich.
- Es ist in einer jar-Datei erstellt durch ant-build.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ändern:
Zu:
defaultSound jar:file:/E:/console2012/console2012/lib/pics-webcommerce.jar!/images/ads/WindowsNavigationStart.wav javax.sound.sampled.UnsupportedAudioFileException: could not get audio input stream from input URL
Fehler in meiner wav-Datei?Haben Sie versucht:
Im wesentlichen ich glaube nicht, können Sie eine Datei erstellen, die aus einer URI der jar-Datei. Aber Sie kann passieren der input-stream direkt an.
java.io.IOException: mark/reset not supported
InputStream is= getClass().getResourceAsStream("/images/ads/WindowsNavigationStart.wav"); AudioInputStream audioInputStream = AudioSystem.getAudioInputStream(new BufferedInputStream(is));
Verwenden Klasse.getResourceAsStream()
Sobald Sie einen handle zu der inputStream, Holen Sie sich die audioInputStream und den rest zu tun.
java.io.IOException: mark/reset not supported
Perfekte Lösung.......
Bitte Lesen Sie meine Vorherige Antwort an eine einzige-jar java-Anwendung . Der Titel ist irreführend, aber das poster wurde versucht, etwas zu tun, nahezu identisch mit Ihnen. Einige der besten details sind im link zu dem chat-Protokoll.
dies funktionierte gut für mich:
Folgende mir erlaubt, einen Ton spielen in Eclipse-Projekt und eine exportierte jar-Datei:
- beachten Sie die BufferedInputStream verwendet
- Beachten Sie, inputStream verwendet wird, wird anstelle der Datei.
In meiner main():
in meiner Klasse:
wie Kal schrieb :
Ich genau das getan, und es hat nicht funktioniert auf den ersten, aber das problem der "java.io.IOException" war, dass ich verwendete Datei.separator und aus irgendeinem Grund win 8.1 nicht bewältigen konnte,"\\" ...