# MP3 zu Clip



## PAT_McJAVA (5. Dez 2010)

Hi,
Ich möchte mit meiner Klasse Sound (im wesentlichen dient sie nur zum Kapseln) über die javax.sound.sampled.Clip-Bibliothek Sounds abspielen. Bis jetzt habe ich nur *.wav abgespielt, ich möchte meinen Constructor und die Methoden nun so umbauen das ich sie auch zum MP3 abspielen nutzen kann, ich habe zwar schon gegoogelt, fand aber meine ergebnisse nicht wirklich gut, außerdem bin ich mir ein wenig unsicher über die Implementierung. Hier mal die Klasse, welche ich derzeit nutze:

```
package testpack;

import java.io.BufferedInputStream;
import java.io.File;
import java.io.IOException;
import java.net.MalformedURLException;
import java.net.URL;

import javax.sound.sampled.AudioFormat;
import javax.sound.sampled.AudioInputStream;
import javax.sound.sampled.AudioSystem;
import javax.sound.sampled.Clip;
import javax.sound.sampled.DataLine;
import javax.sound.sampled.UnsupportedAudioFileException;

public class sound {
	
	private Clip clip;
	public sound(String fileName){
		try {
			File f=new File(fileName);
			URL soundURL;
			soundURL = f.toURL();
		AudioInputStream audioInputStream = AudioSystem.getAudioInputStream(soundURL);
		BufferedInputStream bufferedInputStream = new BufferedInputStream(audioInputStream);
	    AudioFormat af = audioInputStream.getFormat();
	    int size = (int) (af.getFrameSize() * audioInputStream.getFrameLength());
	    byte[] audio = new byte[size];
	    DataLine.Info info = new DataLine.Info(Clip.class, af, size);
	    bufferedInputStream.read(audio, 0, size);
	            clip = (Clip) AudioSystem.getLine(info);
	            clip.open(af, audio, 0, size);
		} catch (Exception e){
          e.printStackTrace();
		}
	}
	public void Start(){clip.start();}
	public void Stop(){clip.stop();}
	public void Loop(){clip.loop(2147483647);}
}
```

Am schönsten wäre wenn ich im Construktor zur Laufzeit die codierung ändern könnte, also wenn die mp3 im A-Speicher zu wav gewandelt wird und ich sie dann in Clip werfen kann.
Könntet Ihr mir ein bisschen unter die Arme greifen?
LG Patrick


----------



## Apo (5. Dez 2010)

Einfach so mal ne MP3 Datei laden klappt nicht. Dazu brauchst du noch eine externe Library. 
Sehr schönes Beispiel aus diesem Forum, welches ich auch selber zum Abspielen von MP3s nutze, findest du hier.


----------



## PAT_McJAVA (5. Dez 2010)

Gibt es nicht eine api die mir die mp3 zu einem AudioInputStream konvertiert?


----------

