Я работаю со звуком, я сохранил аудиоданные на коротком массиве. Я хочу преобразовать его в массив байтов для хранения wav-файла. Я не знаю, как преобразовать short [] в байт []. Вы можете мне помочь. спасибо.Как преобразовать короткий массив в массив байтов?
ответ
Единственный способ создать массив байт тот же размера, что и короткий массив и скопировать короткие элементы массива
Большое спасибо, я тестирую код. – coffee
короткое является 16 bit
типа и байты 8 bit
типа. Итак, из массива длиной n
вы получите массив байтов 2n
.
Основа
перед преобразованием массива вещи о преобразовании одного короткого замыкания на байты. поэтому в соответствии с приведенной выше строкой вы создадите 2 байта из одного короткого.
Принцип будет хранить первые 8 бит по два байта и хранить вторые 8 бит на другой короткий. Код будет как этот
byte b1, b2;
short s;
b1 = s & 0xff;
b2 = (s >> 8) & 0xff;
Теперь массив
использовать выше основной для массива в настоящее время. скажем, размер массива short равен n. пусть короткое является s
byte result[2*n];
for(int i = 0; i<2*n ; i=i+2){
b[i] = s[i>>1] & 0xff;
b[i+1] = (s[i>>1 | 1] >> 8) & 0xff;
}
Использование ByteBuffer класса
вы также можете конвертировать короткий массив ByteArray, используя класс ByteBuffer.
ByteBuffer byteBuf = ByteBuffer.allocate(2*n);
for(int i = 0; i<n ; i++) {
byteBuf.putShort(buffer[i]);
}
Вы забыли про контенту – SomeWittyUsername
И подпись. Это плохо испортит ваши данные, вы, по крайней мере, должны были использовать '>>>' –
@icepack. Например, я использовал маленький endian. Основная цель вопроса - не создавать байтовый массив для него .. но дать ему понятие .. Я в порядке? – stinepike
- 1. как преобразовать короткий массив в массив байтов
- 2. массив байтов на короткий
- 3. Как преобразовать (короткий) образец в звуковой файл в массив байтов
- 4. Как преобразовать массив байтов в двойной массив?
- 5. Как преобразовать массив байтов в массив int?
- 6. Как преобразовать длинный массив в массив байтов?
- 7. Как преобразовать массив байтов в массив int?
- 8. Как преобразовать массив в массив байтов
- 9. Java: как написать короткий массив как массив байтов в файле
- 10. Как преобразовать массив байтов в формате String в массив байтов?
- 11. Преобразовать массив байтов бинарного
- 12. преобразовать массив строки в массив байтов
- 13. преобразовать массив растровых изображений в массив байтов
- 14. Android: преобразовать массив байтов в целочисленный массив
- 15. Android AudioRecord - используя короткий массив или массив байтов?
- 16. Преобразовать массив байтов в PAnsiChar
- 17. Преобразовать массив байтов в файл
- 18. Преобразовать массив байтов PNG в массив байтов JPEG
- 19. преобразовать int [] в массив байтов и массив байтов для изображения
- 20. Преобразовать массив байтов в строку байтов
- 21. В Python, как преобразовать массив бит в массив байтов?
- 22. Как преобразовать массив словаря в массив байтов в wp7
- 23. Преобразовать указатель памяти массив байтов
- 24. Как преобразовать изображение в массив байтов и преобразовать массив байтов в образы
- 25. Как преобразовать строку в массив байтов
- 26. как преобразовать массив байтов BGR в изображение
- 27. Как преобразовать массив байтов в NSString
- 28. Как преобразовать шестнадцатеричную строку в массив байтов?
- 29. Как преобразовать изображение в массив байтов
- 30. Как преобразовать Image.Source в массив байтов?
читать это http://stackoverflow.com/questions/10804852/how-to-convert-short-array-to-byte-array – lakshman
большое спасибо. Я попробую этот код: private byte [] shortArrayToByteArray (short [] shortArr) { \t \t int index; \t \t int iterations = shortArr.length; \t \t ByteBuffer bb = ByteBuffer.allocate (shortArr.length * 2); \t \t \t для (индекс = 0; индекс = итерациях;! ++) {индекс \t \t bb.putShort (shortArr [индекс]); \t \t} \t \t возвращение bb.array(); \t} – coffee
Если вы используете ByteBuffer, убедитесь, что порядок байтов правильный для вашей системы. Значение по умолчанию - большой endian, но во многих форматах используется немного endian. –