2016-04-10 10 views
1

Ich schreibe ein Java-Programm und ich möchte Hintergrundmusik hinzufügen. Das Problem ist, dass die Musik nicht loopt und nach der ersten Runde stoppt. Hier ist mein Code für die Hintergrundmusik-Implementierung.Programm deosnot loop Hintergrundmusik

import sun.audio.*; 
import java.io.*; 

public class Music { 

@SuppressWarnings("restriction") 
public void music(){ 


    AudioPlayer myPlayer = AudioPlayer.player; 

    AudioStream myStream; 

    ContinuousAudioDataStream loop = null; 

    try { 
     InputStream test = new FileInputStream("open.wav"); 
     myStream = new AudioStream(test); 
     AudioPlayer.player.start(myStream); 
    } catch (IOException e) { 
     System.out.print("file not found!\n"); 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } 
    myPlayer.start(loop); 
} 

Antwort

0

Folgendes sollte man losgeht:

import sun.audio.*; 
import java.io.*; 

public class Music { 

@SuppressWarnings("restriction") 
public void music(){ 
     AudioStream myStream; 
     AudioData myData; 

     ContinousAudioDataStream loop = null; 

     try{ 
      InputStream test = new FileInputStream("open.wav"); 
      myStream = new AudioStream(test); 
      AudioPlayer.player.start(myStream); 
      myData = myStream.getData(); 
      loop = new ContinousAudioDataStream(myData); // value to loop 
     catch (IOException e) { 
      System.out.print("file not found!\n"); 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     } 
     myPlayer.start(loop); 
    } 
+0

Danke für die schnelle Antwort. Ich habe es versucht, aber, es hat nicht funktioniert, ich habe "Datei nicht gefunden" Nachricht und die Musik spielte, wieder nur einmal. Kann es sein, dass die Datei, die ich verwenden möchte, irgendwie beschädigt ist? – Keselme

+0

@Keselme: Wenn du einmal und nicht wieder auf die Datei zugreifen kannst, bezweifle ich, dass es eine Möglichkeit geben könnte – nullpointer

+0

Die Sache ist, dass ich mp3 -> wav-Konverter verwende, also wenn ich diese beiden los werde Zeilen: myData = myStream.getData(); Schleife = neu ContinuousAudioDataStream (myData); // Wert zu Schleife der Code funktioniert, aber spielt nur Einsen. Wenn ich diese Zeilen verwende, passiert nichts und ich bekomme die Fehlermeldung. – Keselme