2016-03-20 8 views
3

Nun, ich nehme an, dass dies auf eine beliebige Anzahl von Fragen in meinem GUI-Code zurückzuführen sein kann, aber ich möchte fragen, gibt es irgendetwas eklatant falsch mit dem folgenden Code?Javafx AudioClip nicht looping

public class music 
{ 
    static AudioClip currentMusic; 

    public static void playMusic() 
    { 
     currentMusic = new AudioClip(Paths.get("src/test.mp3").toUri().toString()); 
     currentMusic.setCycleCount(INDEFINITE); 
     currentMusic.play(); 
    } 
} 

Die Audioclip Lasten richtig spielen, richtig, aber egal, was der setCycleCount Wert ist, stoppt er immer nach einmal zu spielen.

Antwort

1

Versuchen Sie, den Anrufer playMusic(); vor musicPlaying = false hinzuzufügen.

musicPlaying = false; 
playMusic(); 
+0

Nichts ist passiert. Vergessen Sie in der Tat die Funktion "stopMusic();". Ich entfernte es von der Frage, da es das Ergebnis nicht ein Bit ändert. – Sotos

+0

Versuchen Sie die Einstellung setCycleCount (/ * Anzahl der Länge der Datei * /) –

+0

Kein Wert von setCycleCount funktioniert, leider. – Sotos

0

Nach dem doc für AudioClip wenn Sie setCycleCount(INDEFINITE) dann wird es in einer Schleife fortgesetzt, bis stop() genannt wird. Davon ausgehend würde ich den Rest Ihres Codes überprüfen, um sicherzustellen, dass Sie keinen stop() Anruf irgendwo haben.

+1

Das ist die seltsame Sache, ich habe nichts in meinem Code, der möglicherweise mit diesem interagieren könnte ... Ich weiß, es klingt vage. Wenn ich nichts davon bekomme, werde ich versuchen, ein [MCVE] (http://stackoverflow.com/help/mcve) zu erstellen. – Sotos

+0

Ich habe das gerade getestet, indem ich einfach hallo world benutzt und den Button den 'AudioClip' starte und das selbe Ergebnis habe. Nur einmal abspielen - getestet mit 'setCycleCount (2)' und 'setCycleCount (INDEFINITE)'. – ReadyPlayer2

+0

Ich habe auch eine "while" -Schleife nach dem Start hinzugefügt, indem ich den Rückgabewert von 'isPlaying() 'überprüft habe, um zu sehen, ob es noch gespielt hat, aber nach einem Spiel zu' false 'wechselt. – ReadyPlayer2

1

Anscheinend, wie das Problem bei ReadyPlayer2 ist, scheint es, dass dies eine Art Bug ist. Eine Schleife wie this könnte wahrscheinlich funktionieren, und die Media Klasse funktioniert sicherlich, wenn auch mit bestimmten Nachteilen der AudioClip.