JavaFx sound abspielen

coldstone

Bekanntes Mitglied
Hallo,

ich versuche bei einer einfachen JavaFX Anwendung eine Hintergrundmusik abzuspielen.
Leider bekomme ich in der Konsole einen Fehler ausgegeben.

[CODE lang="java" title="Main.java"]package application;

import java.io.File;

import javafx.application.Application;
import javafx.stage.Stage;
import javafx.scene.Scene;
import javafx.scene.layout.BorderPane;
import javafx.scene.media.AudioClip;
import javafx.scene.media.Media;
import javafx.scene.media.MediaPlayer;


public class Main extends Application {
MediaPlayer mediaplayer;
@Override
public void start(Stage primaryStage) {
try {
String audio = "/sound/background_music.mp3";
Media media = new Media(new File(audio).toURI().toString());
MediaPlayer mediaPlayer = new MediaPlayer(media);



BorderPane root = new BorderPane();
Scene scene = new Scene(root,1024,720);
scene.getStylesheets().add(getClass().getResource("application.css").toExternalForm());
primaryStage.setScene(scene);
primaryStage.show();
mediaPlayer.setAutoPlay(true);
} catch(Exception e) {
e.printStackTrace();
}
}

public static void main(String[] args) {
launch(args);
}
}[/CODE]

[CODE lang="java" title="ausgabe konsole"]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:64)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:564)
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:64)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:564)
at java.base/sun.launcher.LauncherHelper$FXHelper.main(LauncherHelper.java:1071)[/CODE]

Wenn ich den Media teil weglasse, startet es.

Java:
String audio = "/sound/background_music.mp3";
            Media media = new Media(new File(audio).toURI().toString());
            MediaPlayer mediaPlayer = new MediaPlayer(media);

Habe es auch mnit AudioClip versucht aber bekam auch eine lange fehlermeldung in der konsole.
Vielleicht kann mir einer helfen.
 
Ok, das probelm lag daran das unter "VM arguments" das "javafx.media" modul nicht eingetragen war.
Nur habe ich jetzt das Problem, daß die sounddatei nur 1 sekunde abgespielt wird und danach gestoppt wird.

EDIT:
Mit "AudioClip" funktioniert es jetzt so wie es soll.
 
Hi coldstone 🙂
Funktioniert bei dir also die automatische Wiedergabe?
Bei mir läuft die Audiofile zwar ganz durch, und wird auch als Loop ausgegeben, jedoch startet es nicht automatisch..
Desweiteren wenn ich auf Pause, respektiv auf Stop klicke, kann ich nicht erneut auf Play klicken. wird einmal stop geklickt wird diese Instanz wohl komplett beendet und ist nicht wieder startbar..
 
Hi Rafael.Cupari,

sobald ich den Code ausführe startet bei mir die Audiodatei.
Ich habe es wie folgt in meine JavaFX eingebunden:
[CODE lang="java" title="AudioClip"]AudioClip audioClip = new AudioClip(Paths.get("src/sound/background_music.mp3").toUri().toString());
audioClip.setVolume(0.1);
audioClip.play();[/CODE]

Ich hoffe es hilft dir.
 

Zurück
Oben