Я пытаюсь использовать decodeAudioData для декодирования и воспроизведения начальной части большого mp3-файла в javascript. Мой первый, грубый подход заключался в том, чтобы отрезать несколько байтов от начала mp3 и передать их в decodeAudioData. Неудивительно, что это не удается.
После некоторых раскопок оказалось, что decodeAudioData может работать только с «действительными фрагментами mp3», как задокументировано Fair Dinkum Thinkum , здесь .
Однако нет никаких разъяснений относительно структуры действительного фрагмента mp3 (автор вышеупомянутого не вникает в это ). Я знаю о различных сплиттерах mp3, которые существуют, но я хотел бы подойти к этому программно. (Я пытаюсь реализовать что-то вроде «потоковой передачи для бедных», используя nodejs на стороне сервера ).
Итак, будет ли достаточно разделения заголовков mp3-кадров или мне нужно сделать больше? (возможно, "закрыть" каждый фрагмент, добавив некоторые данные в конце? )Как насчет «хранилища байтов»? Это вызовет проблемы? Для справки, сейчас я работаю с cbr mp3 со скоростью 128 кбит/с. Это как-то упростит процесс?
Будем признательны за любую информацию о том, что decodeAudioData ожидает в качестве действительных данных.
Спасибо.
PS :Я понимаю, что это, возможно, просьба разъяснить пост Fair Dinkum Thinkum, но моя низкая репутация не позволяет мне опубликовать комментарий. Поэтому я не вижу, как еще это сделать, но с новым вопросом. Еще раз спасибо.