comment convertir un tableau court en tableau d'octets

J'ai trouvé la conversion d'un court de tableau d'octetset tableau d'octets à court tableaumais pas à court de tableau de tableau d'octets.

Voici le code menant à la conversion

while(!stopped)
        { 
            Log.i("Map", "Writing new data to buffer");
            short[] buffer = buffers[ix++ % buffers.length];

            N = recorder.read(buffer,0,buffer.length);
            track.write(buffer, 0, buffer.length);

            byte[] bytes2 = new byte[N];

J'ai essayé

              int i = 0;
              ByteBuffer byteBuf = ByteBuffer.allocate(N);
              while (buffer.length >= i) {
                  byteBuf.putShort(buffer[i]);
                  i++;
        }

bytes2 = byteBuf.array();

et

    ByteBuffer.wrap(bytes2).order(ByteOrder.LITTLE_ENDIAN).asShortBuffer().put(buffer);

Cependant je reçois cette erreur sur les deux (l'erreur si pas exactement le même, mais très similaires pour les deux):

05-29 13:41:12.021: W/AudioTrack(9758): obtainBuffer() piste 0x30efa0
désactivé, le redémarrage de

05-29 13:41:12.857: W/AudioWorker(9758): Erreur lors de la lecture de la voix
AudioWorker

05-29 13:41:12.857: W/AudioWorker(9758):
java.nio.BufferOverflowException

05-29 13:41:12.857: W/AudioWorker(9758):
java.nio.ShortBuffer.mettre(ShortBuffer.java:422)

05-29 13:41:12.857: W/AudioWorker(9758):
java.nio.ShortToByteBufferAdapter.mettre(ShortToByteBufferAdapter.java:210)

05-29 13:41:12.857: W/AudioWorker(9758):
java.nio.ShortBuffer.mettre(ShortBuffer.java:391)

05-29 13:41:12.857: W/AudioWorker(9758):
com.avispl.unité néonatale des soins intensifs.l'audio.AudioWorker.exécuter(AudioWorker.java:126)

Et juste à donner autant d'informations que possible, voici le code qui utilise le tableau d'octets

Log.i("Map", "test");
                //convert to ulaw
                read(bytes2, 0, N);

                //send to server
                os.write(bytes2,0,bytes2.length);

                System.out.println("bytesRead "+buffer.length);
                System.out.println("data "+Arrays.toString(buffer));
            }

source d'informationauteur owen gerig