Wie man spielt sounds mit JavaFX
Ich begann mit JavaFX. Ich weiß, wie die Grundlagen der it-Arbeit. Ich habe versucht, die Medien und die mediaplayer-Klassen, um einen Ton zu spielen, genannt "sound".mp3". Ich bin Programmierung in eclipse, und ich habe die sound-Datei im Ordner " src " im selben Ordner als "(default package)". Hier ist mein 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();
}
}
Mir bitte sagen, was ich falsch mache.
Hier ist die Fehlermeldung, was von der Konsole:
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
- Basierend auf
uri.getScheme() == null
ich nehme an, Sie brauchen, um eine URI für die sound-Datei, anstatt nur eine mit dem Namen. - "Die Quelle darstellen muss eine gültige URI und unveränderlich ist. Nur HTTP -, DATEI-und JAR-URLs werden unterstützt." docs.oracle.com/javafx/2/api/javafx/scene/media/...
Du musst angemeldet sein, um einen Kommentar abzugeben.
Nur eine funktionierende Zusammenstellung von dem, was die anderen Antworten sagen:
Fügen Sie die Musik-Datei in Ihrem Projekt-Ordner neben
bin
undsrc
.Jede IDE fordert Sie auf, fügen Sie diese als gut:
Funktioniert wie ein Charme.
Also das ist, was ich verwendet und es funktionierte, ich weiß es nicht, wahrscheinlich mehr wichtig, aber da habe es in meine google-Suche, während ich war auf der Suche für etwas anderes, ich dachte, ich würde die Antwort darauf. 🙂
Bedeutung der toExternal Form, es erzählt form einer url-form der Pfad-Datei.
Dies ist, was ich bin derzeit mit:
hängt es ab, wo die audio-Datei. (auch Sie akzeptiert nur .wav)
wenn der clip außerhalb der src-Ordner, den Sie verwenden müssen,
wenn es nicht, es ist ok, wie machst du