Frage

Für das Computerspiel Ich mache, möchte ich natürlich Ton spielen. Bisher habe ich gewesen Audioclip mit WAV-Dateien abzuspielen. Während dieser Ansatz funktioniert gut, neigen die WAV-Dateien gigantisch zu sein. Ein paar Sekunden Ton landen Hunderte von kB sein. Ich bin mit mit einem Spiel herunterladen konfrontiert, dass 95% Audio ist!

Die offensichtliche Möglichkeit wäre hier, MP3 oder Ogg Vorbis zu verwenden. Aber ich habe nur begrenzten Erfolg mit diesem hatte - ich MP3 spielen kann mit JLayer (aber es spielt im selben Thread). Wie für Ogg, habe ich kein Glück überhaupt hatte. Schlimmer noch, JLayer Rechtsstellung ist ein bisschen auf der fragwürdigen Seite.

Also meine Frage sowohl für Java-Entwickler und die Menschen im Allgemeinen, die tatsächlich etwas über Sound wissen: Was kann ich tun? Kann ich „trimmt das Fett“ weg von meinem WAVs irgendwie? Gibt es irgendeine Art und Weise zu spielen Ogg in Java? Gibt es eine andere Soundformate Ich sollte stattdessen verwenden?

War es hilfreich?

Lösung

könnten Sie JOrbis Bibliothek OGG Musik abzuspielen. Für den Probenverbrauch arbeiten, können Sie an diesen Dateien suchen hier .

ich auch mit einigen Lossless Audio Kompression experimentiert, zum Beispiel hatte ich einen 16-Bit-Mono-Ton. I getrennt, um die oberen und unteren Bytes von jeder Probe und setzen sie nach einander. Dann angewandt I einen Differenz Ersatz wobei jedes Byte durch seine Differenz von dem letzten Byte ersetzt wird. Und schließlich verwendet GZIP die Daten zu komprimieren. Ich konnte die Datengröße auf 50-60% der ursprünglichen Größe reduzieren. Leider war dies nicht genug, so wandte ich mich an das OGG-Format.

Eine Sache, die ich mit 8-Bit-Musik aufgefallen ist, dass, wenn ich die Lautstärke ändern, wird die Wiedergabe sehr laut wird. Ich löste dieses Problem durch Upsampling der Audiodaten auf 16-Bit-Recht vor dem SourceDataLine.write ().

Andere Tipps

Diese können veraltet sein, aber sie sind offiziell von der Xiph.org Team (die Ogg Vorbis und pflegen, ua) anerkannt. http://www.vorbis.com/software/#java

Das Problem, das Sie beschreiben, wird durch den Service Provider Interface (SPI) für Sound in Java gerichtet. Das Ergebnis ist, dass die einfache Hinzufügen JAR-Dateien auf Ihre Classpath-Funktionalität auf den Standard-Java-Sound-API hinzufügen. Somit ermöglicht die Handhabung von mehr Sound-Formaten ohne Code zu ändern.

Letztes Mal hat ich versucht, dies die Javazoom Menschen eine Arbeits MP3 SPI JAR angeboten. Die auf der JLayer beruhte Sie genannt haben.

Für Vorbis OGG es jetzt scheint auch eine SPI-Bibliothek zu sein. Schauen Sie sich die Dokumentation auf der Vorbis SPI auf Javazoom.

Wenn Sie sich entscheiden, mit WAV-Format zu bleiben ...

Es ist wahrscheinlich nicht sehr wichtig, qualitativ hochwertige Sound-Dateien zu haben. Sie können Ihre Lieblings-WAV-Editor zu senken, die Bitrate, wechseln Sie in mono oder beides verwenden. Das wird Tonne Platz sparen, und Sie werden den Unterschied in der Qualität feststellen, während das Spiel zu spielen.

Hope, das hilft.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top