Bonjour/Bonsoir,

Je suis débutant en Java (javafx) j'ai décidé d'apprendre à comment jouer un son seulement, je ne sais pas par quelle magie mais rien ne fonctionne. J'ai recherché absolument partout sur internet toutes le commandes se suivent et se ressemblent, pourtant ca ne fonctionne pas chez moi.
J'aurais voulu créer quelque chose de simple, un bouton quand on click paf ca joue un son voici donc le code en question:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
ublic class Main extends Application {
 
    public static void main(String[] args) {
        launch(args);
 
    }
 
    @Override
    public void start(Stage stage) throws Exception {
        Button button = new Button("click here");
 
        Media sound = new Media(getClass().getResource("res/coin.mp3").toExternalForm());
        MediaPlayer player = new MediaPlayer(sound);
        button.setOnAction((e)->{
            player.play();
        });
 
        BorderPane panel = new BorderPane();
        panel.setCenter(button);
 
        Scene scene = new Scene(panel, 250,250);
        stage.setScene(scene);
        stage.show();
 
 
    }
}
Le fichier en question se nomme "coin.mp3" je l'ai déplacé absolument partout que ce soit dans le dossier "res" que dans le dossier principale ect...

J'ai essayé ceci:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
 
Media sound = new Media(Paths.get("coin.mp3").toUri().toString());
MediaPlayer player = new MediaPlayer(sound);
Et puis cela:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
 
URL musicURL = getClass().getResource("coin.mpg3");
Media media = new Media(musicURL.toExternalForm());
MediaPlayer player = new MediaPlayer(media);
J'ai aussi essayé avec l'object "AudioClip", rien n'y fait je suis en train de m'arracher les cheveux pour quelque chose de plutôt basique. Pour plus d'informations je vous met ici le/les message(s) d'erreur en question:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
/usr/lib/jvm/java-1.11.0-openjdk-amd64/bin/java --module-path /home/fang44/.local/share/JetBrains/IdeaIC2020.3/javafx-sdk-11.0.2/lib --add-modules javafx.controls,javafx.fxml -Djava.library.path=/home/fang44/.local/share/JetBrains/IdeaIC2020.3/javafx-sdk-11.0.2/lib -javaagent:/opt/idea/lib/idea_rt.jar=33167:/opt/idea/bin -Dfile.encoding=UTF-8 -classpath /media/fang44/49a12980-5170-427a-9f74-827843eb03f3/Documents/Java Projects/JavaFX/out/production/JavaFX:/home/fang44/.local/share/JetBrains/IdeaIC2020.3/javafx-sdk-11.0.2/lib/src.zip:/home/fang44/.local/share/JetBrains/IdeaIC2020.3/javafx-sdk-11.0.2/lib/javafx-swt.jar:/home/fang44/.local/share/JetBrains/IdeaIC2020.3/javafx-sdk-11.0.2/lib/javafx.web.jar:/home/fang44/.local/share/JetBrains/IdeaIC2020.3/javafx-sdk-11.0.2/lib/javafx.base.jar:/home/fang44/.local/share/JetBrains/IdeaIC2020.3/javafx-sdk-11.0.2/lib/javafx.fxml.jar:/home/fang44/.local/share/JetBrains/IdeaIC2020.3/javafx-sdk-11.0.2/lib/javafx.media.jar:/home/fang44/.local/share/JetBrains/IdeaIC2020.3/javafx-sdk-11.0.2/lib/javafx.swing.jar:/home/fang44/.local/share/JetBrains/IdeaIC2020.3/javafx-sdk-11.0.2/lib/javafx.controls.jar:/home/fang44/.local/share/JetBrains/IdeaIC2020.3/javafx-sdk-11.0.2/lib/javafx.graphics.jar sample.Main
Exception in Application start method
java.lang.reflect.InvocationTargetException
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base/java.lang.reflect.Method.invoke(Method.java:566)
	at javafx.graphics/com.sun.javafx.application.LauncherImpl.launchApplicationWithArgs(LauncherImpl.java:464)
	at javafx.graphics/com.sun.javafx.application.LauncherImpl.launchApplication(LauncherImpl.java:363)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base/java.lang.reflect.Method.invoke(Method.java:566)
	at java.base/sun.launcher.LauncherHelper$FXHelper.main(LauncherHelper.java:1051)
Caused by: java.lang.RuntimeException: Exception in Application start method
	at javafx.graphics/com.sun.javafx.application.LauncherImpl.launchApplication1(LauncherImpl.java:900)
	at javafx.graphics/com.sun.javafx.application.LauncherImpl.lambda$launchApplication$2(LauncherImpl.java:195)
	at java.base/java.lang.Thread.run(Thread.java:834)
Caused by: java.lang.NullPointerException
	at sample.Main.start(Main.java:31)
	at javafx.graphics/com.sun.javafx.application.LauncherImpl.lambda$launchApplication1$9(LauncherImpl.java:846)
	at javafx.graphics/com.sun.javafx.application.PlatformImpl.lambda$runAndWait$12(PlatformImpl.java:455)
	at javafx.graphics/com.sun.javafx.application.PlatformImpl.lambda$runLater$10(PlatformImpl.java:428)
	at java.base/java.security.AccessController.doPrivileged(Native Method)
	at javafx.graphics/com.sun.javafx.application.PlatformImpl.lambda$runLater$11(PlatformImpl.java:427)
	at javafx.graphics/com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:96)
	at javafx.graphics/com.sun.glass.ui.gtk.GtkApplication._runLoop(Native Method)
	at javafx.graphics/com.sun.glass.ui.gtk.GtkApplication.lambda$runLoop$11(GtkApplication.java:277)
	... 1 more
Exception running application sample.Main
 
Process finished with exit code 1
Bon de ce que je comprend "NullPointerException" a été levé à la ligne ou je crée l'objet media, donc là ou le chemin du fichier est instancié... Comme je l'ai dis plutot je l'ai déplacé dans tous les sens j'ai aussi écris le chemin du fichier comme ceci "file:coin.mp3", bref absolument tout ce que j'ai pu trouver sur internet. Rien n'a fonctionné pour le moment. Si quelqu'un ici est en mesure de résoudre ce problème qui est à deux doigts de l'énigme pour ma part, je lui en serrait très reconnaissant.

Je vous remercie à l'avance de vos futures réponse bonne journée/soirée à vous