Определить & #39;действительный фрагмент mp3& #39; для decodeAudioData (WebAudio API)

Я пытаюсь использовать decodeAudioData для декодирования и воспроизведения начальной части большого mp3-файла в javascript. Мой первый, грубый подход заключался в том, чтобы отрезать несколько байтов от начала mp3 и передать их в decodeAudioData. Неудивительно, что это не удается.

После некоторых раскопок оказалось, что decodeAudioData может работать только с «действительными фрагментами mp3», как задокументировано Fair Dinkum Thinkum , здесь .

Однако нет никаких разъяснений относительно структуры действительного фрагмента mp3 (автор вышеупомянутого не вникает в это ). Я знаю о различных сплиттерах mp3, которые существуют, но я хотел бы подойти к этому программно. (Я пытаюсь реализовать что-то вроде «потоковой передачи для бедных», используя nodejs на стороне сервера ).

Итак, будет ли достаточно разделения заголовков mp3-кадров или мне нужно сделать больше? (возможно, "закрыть" каждый фрагмент, добавив некоторые данные в конце? )Как насчет «хранилища байтов»? Это вызовет проблемы? Для справки, сейчас я работаю с cbr mp3 со скоростью 128 кбит/с. Это как-то упростит процесс?

Будем признательны за любую информацию о том, что decodeAudioData ожидает в качестве действительных данных.

Спасибо.

PS :Я понимаю, что это, возможно, просьба разъяснить пост Fair Dinkum Thinkum, но моя низкая репутация не позволяет мне опубликовать комментарий. Поэтому я не вижу, как еще это сделать, но с новым вопросом. Еще раз спасибо.

13
задан Community 23 May 2017 в 11:48
поделиться