Я нашел converting a short to byte array и byte array to short array, но не короткий массив в массив байтов.как преобразовать короткий массив в массив байтов
Вот код, ведущий к преобразованию
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];
Я попытался
int i = 0;
ByteBuffer byteBuf = ByteBuffer.allocate(N);
while (buffer.length >= i) {
byteBuf.putShort(buffer[i]);
i++;
}
bytes2 = byteBuf.array();
и
ByteBuffer.wrap(bytes2).order(ByteOrder.LITTLE_ENDIAN).asShortBuffer().put(buffer);
Однако я получаю эту ошибку на оба (ошибку, если не точно такие же, но очень похожие для обоих):
05-29 13: 41: 12,021: Вт/AudioTrack (9758): obtainBuffer() дорожки 0x30efa0 отключена, перезапуск
05-29 13: 41: 12,857: Вт/AudioWorker (9758): Ошибка чтение голосом AudioWorker
05-29 13: 41: 12,857: Вт/AudioWorker (9758): java.nio.BufferOverflowException
05-29 13: 41: 12.857: W/AudioWorker (9758): на java.nio.ShortBuffer.put (ShortBuffer.java:422)
05-29 13: 41: 12,857: Вт/AudioWorker (9758): в java.nio.ShortToByteBufferAdapter.put (ShortToByteBufferAdapter.java:210)
05-29 13: 41: 12.857: Вт/AudioWorker (9758): в java.nio.ShortBuffer.put (ShortBuffer.java:391)
05-29 13: 41: 12.857: W/AudioWorker (9758): в com.avispl.nicu.audio. AudioWorker.run (AudioWorker.java:126)
И просто быть дать как можно больше информации, как можно здесь код после этого использует массив байтов
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));
}
не уверен, что им следует получить от этого. ссылка, которую вы публикуете на испанском и idk, о чем, может быть, шутка об актуальности? Я просто хотел показать, что такое N, и избегать вопросов. –
О, дорогой. Я думаю, @Bohemian означал http://www.sscce.org/, а не http://www.ssccee.org/ –
Возможный дубликат [byte array для короткого массива и обратно в java] (http: // stackoverflow. com/questions/5625573/byte-array-to-short-array-and-back-again-in-java) –