jouer .fichier wav à partir de bocal en tant que ressource à l'aide de java
Je veux jouer à un .fichier wav à l'aide de code java qui est dans un fichier jar en tant que ressource. Mon code ressemble à ceci -
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();
}
Le fichier WindowsNavigationStart.wav est exister dans un de mes fichier jar. Mais l'obtention de l'exception suivante:
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)
Merci de me donner une solution. Merci à vous tous.
Où est votre wav ? Si il zippée avec votre java, vous ne pouvez pas créer de Fichier de l'objet avec l'URI. Toutefois, pour utiliser le InputStream est possible.
C'est dans un fichier jar créé par ant.
C'est dans un fichier jar créé par ant.
OriginalL'auteur Pritom | 2011-12-08
Vous devez vous connecter pour publier un commentaire.
Changer:
:
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
, Erreur dans mon fichier wav?Wav est un format de conteneur'. Il peut avoir beaucoup de différents types de codages. Java ne comprend que certaines de ces codages. Essayez-le avec la gauche/droite wav disponible à cette support de la page.
Bonjour, son travail, je vous remercie beaucoup.
Bonjour, cela fonctionne pour moi. try{ URL defaultSound = ce.getClass().getResource(thePathToFile); AudioInputStream audioInputStream = système de Sonorisation.getAudioInputStream(defaultSound); des Clip = système de Sonorisation.getClip(); clip.ouvert(audioInputStream); clip.start(); } catch (Exception ex) {ex.printStackTrace();}
OriginalL'auteur Andrew Thompson
Avez-vous essayé:
Essentiellement je ne pense pas que vous pouvez créer un Fichier d'un URI dans le fichier jar. Mais vous pouvez passer le flux d'entrée directement.
java.io.IOException: mark/reset not supported
Pour surmonter cette IOException, envelopper le InputStream dans un BufferedInputStream. Solution complète serait:
InputStream is= getClass().getResourceAsStream("/images/ads/WindowsNavigationStart.wav"); AudioInputStream audioInputStream = AudioSystem.getAudioInputStream(new BufferedInputStream(is));
Merci pour le BufferedInputStream pointe. Il a fait toute la différence pour moi.
BufferedInputStream a également résolu mon problème.
OriginalL'auteur wyz
Utilisation Classe.getResourceAsStream()
Une fois que vous avez une poignée à l'inputStream, obtenir le audioInputStream et de faire le reste.
java.io.IOException: mark/reset not supported
OriginalL'auteur Kal
Solution Parfaite.......
OriginalL'auteur RAJU SHARMA
Veuillez vous référer à ma réponse précédente à faire une seule application java jar . Le titre est trompeur, mais l'affiche était en train de faire quelque chose presque identique à vous. Certains des meilleurs détails sont dans le lien vers le journal de chat.
OriginalL'auteur ziesemer
OriginalL'auteur Bishoy Basily
cela a bien fonctionné pour moi:
OriginalL'auteur Kaito
Le suivant me permet de jouer un son lors de l'Éclipse du projet et exporté le fichier jar:
- noter la BufferedInputStream est utilisé
- Remarque, inputStream est utilisé à la place du fichier.
Dans mon main():
dans ma classe:
OriginalL'auteur Leo Ufimtsev
comme Kal a écrit :
Je n'ai que ça et ça n'a pas fonctionné au début, mais le problème de la "java.io.IOException", c'est que j'ai utilisé le Fichier.séparateur et pour quelque raison que win 8.1 ne pouvais pas gérer "\\"...
OriginalL'auteur Michał R