Hi Leute,
ich habe mir folgende kleine SoundPlayer-Klasse geschrieben:
Mithilfe von http://www.javazoom.net/vorbisspi/documents.html habe ich das ganze OGG-Vorbis fähig gemacht. Aber leider klappt das nicht so ganz.
Ich habe auch schon versucht, das Ganze ala dem auf der Seite beschriebenen TestPlayer im bei VorbisSPI mitgelieferten srctest-Ordner zu machen: Vergeblich. Wo ist das Problem? (Die Klasse läuft mit WAV-Dateien!)
MfG
DeeDee0815
ich habe mir folgende kleine SoundPlayer-Klasse geschrieben:
Code:
package tools;
import java.io.IOException;
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.LineUnavailableException;
import javax.sound.sampled.UnsupportedAudioFileException;
public class SoundPlayer extends Thread {
private String filename;
private boolean loop;
private Clip clip;
public SoundPlayer(String filename, boolean loop) {
this.filename = filename;
this.loop = loop;
}
public void run() {
setName("SoundPlayer");
try {
AudioInputStream stream = AudioSystem.getAudioInputStream(ClassLoader.getSystemResource("resources/sounds/" + filename));
AudioFormat format = stream.getFormat();
if (format.getEncoding() != AudioFormat.Encoding.PCM_SIGNED) {
format = new AudioFormat(AudioFormat.Encoding.PCM_SIGNED, format.getSampleRate(), format.getSampleSizeInBits() * 2, format.getChannels(), format.getFrameSize() * 2, format.getFrameRate(), true);
stream = AudioSystem.getAudioInputStream(format, stream);
}
DataLine.Info info = new DataLine.Info(Clip.class, stream.getFormat(), ((int) stream.getFrameLength() * format.getFrameSize()));
clip = (Clip) AudioSystem.getLine(info);
clip.open(stream);
if (loop) {
clip.loop(Clip.LOOP_CONTINUOUSLY);
}
clip.start();
} catch (UnsupportedAudioFileException exception) {
exception.printStackTrace();
} catch (IOException exception) {
exception.printStackTrace();
} catch (LineUnavailableException exception) {
exception.printStackTrace();
}
}
public void exit() {
clip.stop();
clip.close();
}
}
Mithilfe von http://www.javazoom.net/vorbisspi/documents.html habe ich das ganze OGG-Vorbis fähig gemacht. Aber leider klappt das nicht so ganz.
Code:
Exception in thread "SoundPlayer" java.lang.IllegalArgumentException: Unsupported conversion: PCM_SIGNED 44100.0 Hz, -2 bit, stereo, 2 bytes/frame, 20000.0 frames/second, from VORBISENC 44100.0 Hz, unknown bits per sample, stereo, 1 bytes/frame, 20000.0 frames/second,
at javax.sound.sampled.AudioSystem.getAudioInputStream(AudioSystem.java:955)
at tools.SoundPlayer.run(SoundPlayer.java:32)
Ich habe auch schon versucht, das Ganze ala dem auf der Seite beschriebenen TestPlayer im bei VorbisSPI mitgelieferten srctest-Ordner zu machen: Vergeblich. Wo ist das Problem? (Die Klasse läuft mit WAV-Dateien!)
MfG
DeeDee0815