Показать сообщение отдельно
  #1 (permalink)  
Старый 09.06.2015, 21:23
Профессор
Отправить личное сообщение для Dimaz Посмотреть профиль Найти все сообщения от Dimaz
 
Регистрация: 25.12.2009
Сообщений: 222

Как получить длину id3 в mp3 файле?
Длина id3 данных хранится в 6-9 байтах. Особенность указания длины данных ID3v2 в том, что в каждом байте 7-й бит не используется и всегда установлен в 0.
Вручную с помощью калькулятора я могу посчитать эту длину, но как посчитать её программно? Как не учитывать этот 7-й бит?
Вручную это делается так:
Есть 4 байта в hex-формате: 00 05 2d 38
Переводим их в бинарный формат: 1010010110100111000
В каждом байте 7-й бит не используется и всегда установлен в 0. Убираем их: 10101011010111000
Переводим в десятичный формат и получаем: 87736
А теперь программно:
var dataView = new DataView(reader.result,0,10);
var ints = new Uint8Array(dataView.byteLength);
for (var i = 0; i < ints.length; i++) {
ints[i] = dataView.getUint8(i);
}
console.log(ints);

В консоли 6-9 байты содержат такие числа: 0 5 45 56. Как оперируя этими данными получить длину в байтах. Длина в данном случае 87736 байт.

Последний раз редактировалось Dimaz, 09.06.2015 в 21:25.
Ответить с цитированием