Warum wird von .ogg file nur komisches Geräusch abgespielt?

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**);
			}```

kennst und nutzt du Internet-Links wie


mit Tipps wie “Use tritonus_jorbis-0.3.6.jar to replace vorbisspi1.0.2.jar.”?

und hast du einen Grund für dein ByteArray-Hin und her?

zum Edit:
8Bit-bytes sind 256 verschiedene Werte, gehen oft von 0 bis 256, in Java -128 bis +127,
negative Werte sind ganz normal, sonst wäre viel verschenkt

Char ist gekünzelt im positiven Bereich 1-65k statt analog short -32k bis +32k


das ist nicht gerade ein Allerweltsthema zum Debuggen, wer soll was zu ogg und AudioFormat-Encoding wissen?

na, es gibt wohl immer Spezialisten, aber auf allgemeiner Forum-Ebene gesprochen gilt doch wohl nur:
richtigen Referenz-Code verwenden, sonst Error

Dank für das Teilen in diesem Forum. Viel Erfolg

@SlaterB : Das mit tritonus_jorbis muss ich mir mal ansehen. Netter Tipp.

Denn @anni80 :
Anscheinend ist dieses vorbisspi inkompatibel mit JLayers mp3spi, allerdings liegt das schon am mp3spi, weil es auch nach ogg vorbis Datenblöcken scannt, warum auch immer. Was passiert denn, wenn du das Programm mal mit deinstalliertem mp3spi startest?