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:
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
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:
Java:
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