Play sound direkt aus dem byte-array - Java

Ich versuche einen sound Abspielen, gespeichert als ein byte-array mit der folgenden Methode:

byte[] clickSamples = getAudioFileData("sound.wav");
ByteBuffer buffer = ByteBuffer.allocate(bufferSize*2);
int tick = 0;

for (int i = 0; i < clickSamples.length; i++) {
    buffer.putShort((short) clickSamples[i]);
    tick++;
    if (tick >= bufferSize/SAMPLE_SIZE) {
        line.write(buffer.array(), 0, buffer.position());
        buffer.clear();
        tick = 0;
    }
}

Es ist irgendwie schwer zu erklären, was falsch läuft. Ich bin immer ein Ton aber es ist nur ein "swoosh"-Geräusch.

Ich möchte diese Methode verwenden, mit der byte-buffer und so weiter, weil meine ganze Anwendung, ist um ihn herum gebaut. Mit Clip-oder AudioInputStream ist nicht wirklich eine option.

Also ich denke, meine Frage ist:

Wie kann ich den Ton direkt von meinem byte-array mit einem byte-buffer?

Danke für Eure Hilfe!

Durch Zufall: was passiert, wenn Sie Ihre ByteBuffer, um die little-endian?
Ich habe auch bemerkt, dass der sound, den ich bekommen irgendwie klingt mein sound Datei rückwärts abgespielt wird, sondern verzerrt und mit viel white noise. Durch drehen Puffer, um die little-endian-alles wird lauter.
Die Methode, die ich verwenden für das erhalten der audio-Daten, ist dieses hier: snippi.com/s/ndi3f4x
1) Für besser zu helfen, schneller zu veröffentlichen, SSCCE. 2) "ich möchte diese Methode verwenden, mit der byte-buffer und so weiter, weil meine ganze Anwendung, ist um ihn herum gebaut." Manchmal ist es notwendig, drastische Maßnahmen ergreifen, mit core-Funktionalität, funktioniert nicht.
Hey Andrew. Vielen Dank für die Kommentare. 1) Sicher, ich habe mein bestes gegeben. Wenn Sie darauf hinweisen, welche Informationen fehlen, ich werde froh sein, um es hinzuzufügen. 2) ich bin ok mit, dass. Aber mit der Methode, die ich versuche zu verwenden (^^) Nähte ideal für meine Anwendung, so dass ich lieben würde, es zu schaffen.

InformationsquelleAutor Macks | 2013-01-06

Schreibe einen Kommentar