Представлен проект JSMad, с реализацией проигрывателя MP3 на языке JavaScript
JSMad позволяет веб-браузеру Mozilla Firefox 4 проигрывать файлы MP3 без использования Adobe Flash. Код также работает и в Google Chrome, начиная с 13 версии, но для работы нужно обязательно включить поддержку Web Audio API. Производительности JavaScript-движка хватает для беспроблемного проигрывания MP3-файлов с битрейтом вплоть до 320KBit/sec. На основе JSMad можно легко создать основанную исключительно на веб-браузере программу по проигрыванию библиотеки музыки в стиле JukeBox.
Исходные тексты проекта размещены на сайте GitHub под лицензией GPLv2. Оценить JSMad в действии можно на сайте jsmad.org. Разработка была выполнена путем портирования MP3-декодера libmad, написанного на языке Си, в представление на языке JavaScript (около 15 тысяч строк кода). Поддержка ID3 была написана с нуля. Проект создан разработчиками в составе Amos Wenger, Antoine Marguerie, Matthias Georgi и Jens Nockert.
Как отмечает один из разработчиков - самой сложной проблемой в написании JSMad стала отладка, которая мешала формированию звукового потока. Для решения этой задачи было использовано приложение GNUPlot. Остальные комментарии разработчиков по поводу проекта можно прочитать здесь (искать по имени nddrylliog).
Из планов на будущее отмечается проведение оптимизации производительности, использование вместо строк бинарных массивов Uint8Arrays, создание более оптимальной стратегии буферизации потока, обеспечение поддержки MPEG 2.5 (поддерживается только MPEG Layer III, смысла в поддержке MPEG Layer I и II нет), обеспечение поддержки потоков со свободным битрейтом (переменный битрейт (VBR) поддерживается), реализация поддержки некоторых расширенных тегов ID3v2.2 и ID3v2.3.
Дополнение: Разработчики Mozilla представили проект pdf-js с реализацией web-приложения для просмотра PDF-файлов, написанного целиком на JavaScript с использованием технологий HTML5 (SVG API). Код распространяется под лицензией BSD. Демонстрацию нового приложения можно посмотреть здесь.
Источник: http://www.opennet.ru/opennews/art.shtml?num=30921
|
0 | Tweet | Нравится |
|