# Wie kann ich den Sound stoppen?



## Coder55 (11. Apr 2010)

Juhuuu
mache gerade weiter mit meinem projekt.
Ich habe zwei buttons play und stop. Bei klick auf dem play button wird der sound einwandfrei abgespiel.Nun will ich aber auch das der sound durch klicken des stop buttons stopped.

Ich bekomme eine Fehlermeldung die ich nicht verstehe.

Hier mein Code

```
import java.io.File;
import javax.sound.sampled.AudioInputStream;
import javax.sound.sampled.AudioSystem;
import javax.sound.sampled.Clip;

 
 public class sound extends JFrame
                   implements ActionListener
 {
	JButton playbtn = new JButton("Play");
	JButton stopbtn = new JButton("Stop");

     public static void main(String[] args)
     {
         sound jf = new sound();
     }
     
     public sound()
     {
         setLayout(new FlowLayout());
         setSize(600, 200);
         setTitle("Sound");
         setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		
		add(playbtn);
		add(stopbtn);
        stopbtn.addActionListener(this);
		playbtn.addActionListener(this);
        setVisible(true);

	
     }
 
     public void actionPerformed(ActionEvent e)
     {
           if (e.getSource() == playbtn)
         {
			 play(getCodeBase(), "gong1");
		 }
         
		  if (e.getSource() == stopbtn)
         {
			 stop(getCodeBase(), "gong1");
			 
		 }

		   }
		     private Object getCodeBase() {
        return null;
    }

   private void play(Object codeBase, String fileName) {
        try {
            Clip clip = AudioSystem.getClip();
            File file = new File(fileName + ".wav");
            AudioInputStream ais = AudioSystem.getAudioInputStream(file);
            clip.open(ais);
            clip.start();
        } catch (Exception ex) {
            ex.printStackTrace();
        }
      }

private void stop(Object codeBase, String fileName) {
        try {
            Clip clip = AudioSystem.getClip();
            File file = new File(fileName + ".wav");
            AudioInputStream ais = AudioSystem.getAudioInputStream(file);
            clip.stop(ais);
            clip.close();
        } catch (Exception ex) {
            ex.printStackTrace();
        }
      }


     }
```


----------



## eRaaaa (11. Apr 2010)

a) Es wäre gut wenn du die Fehlermeldung posten würdest (beim nächsten Mal ;D )
b) Fehlermeldung kommt höchswahrscheinlich daher, weil die Methode close(), keinen Paramter erwartet,d.h. [c]clip.stop(ais);[/c] ist falsch --> clip.stop();

Du müsstest _wahrscheinlich_ das Clip-Objekt auch außerhalb der Methoden bekannt machen...vllt irgendwie so:

```
class sound extends JFrame implements ActionListener {
	JButton playbtn = new JButton("Play");
	JButton stopbtn = new JButton("Stop");
	Clip clip; //<----

	public sound() {
		setLayout(new FlowLayout());
		setSize(600, 200);
		setTitle("Sound");
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

		add(playbtn);
		add(stopbtn);
		stopbtn.addActionListener(this);
		playbtn.addActionListener(this);
		setVisible(true);
	}

	public void actionPerformed(ActionEvent e) {
		if (e.getSource() == playbtn) {
			play(getCodeBase(), "gong1");
		}

		if (e.getSource() == stopbtn) {
			stop(getCodeBase(), "gong1");

		}
	}

	private Object getCodeBase() {
		return null;
	}

	private void play(Object codeBase, String fileName) {
		try {
			clip = AudioSystem.getClip();  //<---
			File file = new File(fileName + ".wav");
			AudioInputStream ais = AudioSystem.getAudioInputStream(file);
			clip.open(ais);
			clip.start();
		} catch (Exception ex) {
			ex.printStackTrace();
		}
	}

	private void stop(Object codeBase, String fileName) {
		try {
			if (clip != null) {
				clip.stop();
				clip.close();
			}
		} catch (Exception ex) {
			ex.printStackTrace();
		}
	}
}
```


----------



## Coder55 (11. Apr 2010)

SUPPPPPPPERRRRRRR
Danke dir duuuuuuu funktioniert


----------



## Coder55 (11. Apr 2010)

ist es aich möglich anstatt .wav  mp3 abzuspielen oder ist das komplex??


----------



## homer65 (12. Apr 2010)

Für MP3 braucht man Hilfsbibliotheken. Z.B.: 
JavaZOOM


----------

