Мода создавать всякие исполняющиеся в браузере штуки (вроде сред виртуализации) поначалу выглядела развлечением для разработчиков, но в последнее время программисты всё чаще направляют свою энергию в конструктивное русло. Не так давно я рассказывал о написанном на JavaScript проигрывателе Adobe Flash. Теперь очередь дошла до популярных аудиокодеков.
Разработчики Official.fm решили, что современные браузеры позволяют декодировать аудиоконтент в популярных форматах с высоким битрейтом. Они написали на JavaScript декодеры для MP3, FLAC, AAC и ALAC (Apple Lossless). С их помощью выполняющееся в браузере приложение может воспроизводить аудиопоток без использования установленных в системе плагинов или кодеков. Более того, браузер также не обязан поддерживать соответствующий аудиформат — модули вполне самодостаточны. Единственное требование — поддержка стандарта Web Audio API или Audio Data API.
Отдельно стоит упомянуть, что исходные тексты библиотек свободно распространяются на условиях GPLv2. Скачать их можно из специального репозитория на GitHub. Кроме кодеков там доступны дополнительные инструменты, вроде упрощающего создание декодеров фреймворка Aurora.js (в нём реализованы некоторые типовые функции) или библиотеки Pitch.js.
Тенденция реализации подобных функций на JavaScript весьма интересна. Браузеры давно стали одним из основных каналов распространения вредоносного ПО, и многие уязвимости в них связаны со сторонними плагинами. Замена системного софта исполняющими непосредственно в обозревателе приложениями позволит сделать работу в сети более безопасной. А со временем браузеры могут стать самодостаточными программами, которые легко запустить в изолированном от операционной системы окружении.