package com.badlogic.gdx.backends.openal;\r
\r
import java.nio.ByteBuffer;\r
+import java.nio.ByteOrder;\r
\r
import com.badlogic.gdx.audio.Sound;\r
\r
}\r
\r
void setup (byte[] pcm, int channels, int sampleRate) {\r
- ByteBuffer buffer = ByteBuffer.allocateDirect(pcm.length);\r
- buffer.put(pcm);\r
+ int bytes = pcm.length - (pcm.length%(channels>1?4:2));\r
+ ByteBuffer buffer = ByteBuffer.allocateDirect(bytes);\r
+ buffer.order(ByteOrder.nativeOrder());\r
+ buffer.put(pcm, 0, bytes);\r
buffer.flip();\r
\r
if (bufferID == -1) {\r
bufferID = alGenBuffers();\r
- alBufferData(bufferID, channels > 1 ? AL_FORMAT_STEREO16 : AL_FORMAT_MONO16, buffer, sampleRate);\r
+ alBufferData(bufferID, channels > 1 ? AL_FORMAT_STEREO16 : AL_FORMAT_MONO16, buffer.asShortBuffer(), sampleRate);\r
}\r
}\r
\r