Действует ли Endian по-разному на разных устройствах?

Я использую AudioRecord.read(byte[], int, int) для записи 16-битных данных PCM. Используя этот метод, я могу получить данные с прямым порядком байтов на моем устройстве, но я не знаю, работает ли он на других устройствах. Хотя я видел ссылку на API, я не мог понять это.

Зависит ли endian от родного порядка?

2 ответа

Вам не нужно беспокоиться об этом, Android позаботится об этом за вас.

Данные в Java всегда представлены в виде байтов

К сожалению, это не так просто, как предполагает предыдущий (3 года) ответ.

Если вы используете 16-битный PCM, Android будет иметь его кодирование с прямым порядком байтов. Смотрите AudioFormat. Тестирование показало, что на Nexus 5x это был BE, Xiaomi MI3s сообщили LE.

Чтобы получить постоянство вашего устройства вы можете использовать ByteOrder.nativeOrder()

Другие вопросы по тегам