Comment jouer des sons avec JavaFX
J'ai juste commencé à travailler avec JavaFX. Je sais comment les bases de ce travail. J'ai essayé d'utiliser les médias et le lecteur multimédia classes pour jouer un son, appelé "sonore.mp3". Je suis de programmation dans eclipse, et j'ai le fichier audio dans le dossier src, le même dossier que "(package par défaut)". Voici mon code:
import javafx.scene.media.*;
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;
public class Main extends Application {
public static void main(String[] args) {
launch(args);
}
@Override
public void start(Stage primaryStage) {
primaryStage.setTitle("Hello World!");
String ssound = "sound.mp3";
Media sound = new Media(ssound);
MediaPlayer mediaPlayer = new MediaPlayer(sound);
mediaPlayer.play();
StackPane root = new StackPane();
primaryStage.setScene(new Scene(root, 800, 450));
primaryStage.show();
}
}
S'il vous plaît dites-moi ce que je fais mal.
Voici le message d'erreur chose à partir de la console:
Exception in Application start method
Exception in thread "main" java.lang.RuntimeException: Exception in Application start method
at com.sun.javafx.application.LauncherImpl.launchApplication1(Unknown Source)
at com.sun.javafx.application.LauncherImpl.access$000(Unknown Source)
at com.sun.javafx.application.LauncherImpl$1.run(Unknown Source)
at java.lang.Thread.run(Thread.java:724) Caused by: java.lang.IllegalArgumentException: uri.getScheme() == null!
at com.sun.media.jfxmedia.locator.Locator.<init>(Unknown Source)
at javafx.scene.media.Media.<init>(Unknown Source)
at Main.start(Main.java:16)
at com.sun.javafx.application.LauncherImpl$5.run(Unknown Source)
at com.sun.javafx.application.PlatformImpl$5.run(Unknown Source)
at com.sun.javafx.application.PlatformImpl$4$1.run(Unknown Source)
at com.sun.javafx.application.PlatformImpl$4$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at com.sun.javafx.application.PlatformImpl$4.run(Unknown Source)
at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(Unknown Source)
at com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
at com.sun.glass.ui.win.WinApplication.access$100(Unknown Source)
at com.sun.glass.ui.win.WinApplication$3$1.run(Unknown Source) ... 1 more
Basé sur
"La source doit représenter une URI valide et est immuable. Que HTTP, FICHIER, et JAR les Url sont pris en charge." docs.oracle.com/javafx/2/api/javafx/scene/media/...
uri.getScheme() == null
, je suppose que vous devez fournir une URI du fichier son, au lieu de simplement un nom de fichier."La source doit représenter une URI valide et est immuable. Que HTTP, FICHIER, et JAR les Url sont pris en charge." docs.oracle.com/javafx/2/api/javafx/scene/media/...
OriginalL'auteur user3010445 | 2014-04-21
Vous devez vous connecter pour publier un commentaire.
Juste un travail de compilation de ce que l'autre répond dire:
Ajouter le fichier de musique dans votre dossier de Projet, aux côtés de
bin
etsrc
.Toute IDE vous invite à ajouter:
Fonctionne comme un charme.
OriginalL'auteur anaik
C'est donc ce que j'ai utilisé et ça a marché, je sais qu'il ne probablement pas plus d'importance, mais depuis qu'il a obtenu dans ma recherche google alors que je cherchais autre chose, je pensais que j'allais répondre. 🙂
Sens de la toExternal Forme, il raconte à la forme d'une url de la forme du chemin du fichier.
OriginalL'auteur Enes
C'est ce que j'utilise actuellement:
OriginalL'auteur KisnardOnline
ça dépend où est le fichier audio. (aussi, il accepte seulement .wav)
si le clip est à l'extérieur de la src dossier que vous devez utiliser
si ce n'est pas, c'est ok, comment faites-vous
OriginalL'auteur Bonfra04