Hallo Leute,
das ist ausschnitt von meinem Code und ich frage mich(euch vor Allem) warum wird von .ogg file nur Geräusch abgespielt und kein Musik? bei mp3 ist es kein Problem . Wo liegt mein Fehler?
String ext = input.getName()
.substring(input.getName().lastIndexOf(".") + 1)
.toLowerCase();
decodedFormat = new AudioFormat(AudioFormat.Encoding.PCM_SIGNED,
dinFormat.getSampleRate(), bitDepth, dinFormat.getChannels(),
dinFormat.getChannels() * 2, dinFormat.getSampleRate(), false);
if (ext.equals("mp3")) {
newDin = AudioSystem.getAudioInputStream(decodedFormat, din);
} else if (ext.equals("ogg")) {
int numberBytesRead = 0;
byte[] buffer = new byte[128000000];
System.out.println(buffer.length);
ByteArrayOutputStream oStream = new ByteArrayOutputStream();
while (numberBytesRead != -1) {
// Daten aus din zu dem buffer ausgelesen
numberBytesRead = din.read(buffer, 0, buffer.length);
// Schreiben von Daten aus buffer in die bOStream
if (numberBytesRead >= 0) {
oStream.write(buffer, 0, numberBytesRead);
}
}
byte[] outputStrem = oStream.toByteArray();
oStream.close();
ByteArrayInputStream iStream = new ByteArrayInputStream(outputStrem);
newDin = new AudioInputStream(iStream, decodedFormat, 200000000);
}
// cut the audio data in the stream to a given length
long newFrameSize = (long) (thumbNailLength * decodedFormat
.getFrameRate());
outputStream = new AudioInputStream(newDin, decodedFormat, newFrameSize);
// save as WAV file
AudioSystem.write(outputStream, AudioFileFormat.Type.WAVE, outputFile);
din.close();
outputStream.close();
return outputFile;```
*** Edit ***
ich habe mich noch was gefragt
ich habe nur aus Interesse nach while schleife das eingefügt und bekomme ich neben andere zahlen und 0-er auch negative zahle, aber ich dachte dass in oStream nur positive Zahle reingespeichert werden ```byte[] outputStrem = oStream.toByteArray();
for(int i =0; i < outputStrem.length; i++){
System.out.println(outputStrem**);
}```