Продолжительность звука JavaScript не работает для файлов ALAC (свойство длительности звука HTML) - PullRequest
0 голосов
/ 04 января 2019

Я использую следующую реализацию в некотором коде JS для получения длительностей аудиофайлов, загруженных в: http://jsfiddle.net/derickbailey/s4P2v/ (взято из https://lostechies.com/derickbailey/2013/09/23/getting-audio-file-information-with-htmls-file-api-and-audio-element/.)

Моя реализация такая же, дажеиспользуя createObjectURL. Работает с MP3, AAC (.m4a) и FLAC нормально, но не с ALAC (также .m4a).

let length = 0;
let url = URL.createObjectURL(file);
let audio = new Audio(url);
audio.addEventListener('loadeddata', function () {
    length = audio.duration;
}

Кто-нибудь знает, как я могу получить продолжительность ALAC файлы, использующие чистый JavaScript? Я не использую никаких фреймворков и новичок в JS.

Спасибо

1 Ответ

0 голосов
/ 04 января 2019

Я думаю, что только Safari может декодировать кодек ALAC в исходном формате, и там он работает.

Но во всех других браузерах, поскольку они не могут декодировать его, они не смогут дать вам правильную продолжительность.

ffmpeg , кажется, можетхотя, чтобы декодировать его и получить его длительность, вы можете получить эту информацию со стороны сервера или взглянуть на этот проект , который нацелен на перенос ffmpeg на js.
Я никогда не пробовалсам, но он утверждает, что портировал декодер mp4, так что вам может повезти.

...