2016-07-27 12 views
1

Ich bin ziemlich neu in JavaFX und wollte vor kurzem Audio mit einer MP3-Datei statt WAV abspielen. Soweit ich das beurteilen kann, mache ich Dinge richtig und bekomme keine Fehler, aber ich höre auch keinen Ton.JavaFX Audio scheint nicht zu spielen

Ich werde die Teile meines Codes, die darunter liegen, veröffentlichen. Wenn mir etwas fehlt, lass es mich wissen. Vielen Dank.

try { 
    URL sound = getClass().getResource("/resources/origin.mp3"); 
    Media hit = new Media(sound.toExternalForm()); 
    musicPlayer = new MediaPlayer(hit); 
    musicPlayer.setVolume(1.0); 
} 
catch(Exception e) { 
    System.out.println("whoops: " + e); 
} 
checkMusic(); 

prüfen Musik Methode:

public void checkMusic() { 
    if(music) 
     musicPlayer.setAutoPlay(true); 
    else 
     musicPlayer.stop(); 
} 

Ich habe auch versucht, auch nur musicPlayer.play();.

EDIT

Und ja, ich bin der Code innerhalb der if Anweisung läuft sicher, ich habe es mit println geprüft haben, und sie ausdrucken. Der Boolean music ist nur ein Controller für Einstellungen im Programm/Spiel.

+0

Wenn die Ausführung in 'checkMusic' trifft' musicPlayer.setAutoPlay (true); 'es sollte in Ordnung sein. Bist du sicher, dass du kein "Whoops: .." in deiner Konsole hast? Nur, wenn Sie bei Verwendung von getResource einen führenden Schrägstrich ("/") verwenden, wird der Projektstamm als Basis verwendet. Wie werden die aufrufende Klasse und die MP3-Ressource in der Verzeichnisstruktur platziert? – DVarga

+0

Es wird definitiv ausgeführt, weil ich mit 'println's überprüft habe. Und das Verzeichnis sollte in Ordnung sein, weil es funktionierte, als ich eine .wav Datei benutzte. Es befindet sich im Ordner bin, dann in einem Ordner namens Ressourcen zusammen mit anderen Dingen. Und soweit ich das beurteilen kann, gibt es kein "Whoops" in der Konsole, da ich die meisten Probleme bereits bewältigt habe. (Und vertrauen Sie mir, es gab ein paar wegen wie neu ich JavaFX bin lol) – Ryan

+0

@DVarga oh und auch, ich habe vielleicht etwas gefunden. Wenn ich 'System.out.println (hit.getDuration();' es sagt unbekannt, und 'getTracks()' ist auch unbekannt. Könnte das irgendetwas bedeuten? – Ryan

Antwort

-1

statt

Media hit = new Media(sound.toExternalForm()); 

try this:

final Media media = new Media(sound.toString()); 
+0

Versucht es und keine Änderung. – Ryan

Verwandte Themen