Mp3 плеер на JavaScript/Flash
К выходу новой версии Nigma музыки (поиск по текстам и заливка файлов) нужно сделать новый плеер. Требования к плееру такие:
* Ядро на флэш, обертка на javascript
* Все основные функции (запуск проигрывания, остановка, любые исключения) должны обрабатываться callback`ами из js – нужно для логгирования, определения неработающих файлов, возможно что-то еще, надо подумать
* Легкая настройка цветовой гаммы всех элементов дизайна(это есть в этом плеере, но увы, это единственное его достоинство)
* Плеер должен адекватно обрабатывать неработающие ссылки(если выдается HTTP STATUS 404)
* Плеер должен адекватно обрабатывать ошибочно попавшие ему страницы(не mp3 файлы)
* Плеер должен работать со всеми урлами, соответствующие стандарту. Нужно будет кому-то составить базу урлов на которых ломается наш плеер(точка-пробел, русские символы, возможно что-то еще)
* Желательна возможность передачи тэгов через js, а не через файл – что бы он не натыкался на битые кодировки.
* Кнопки стоп и пауза – для докачки
* Дополнительные форматы не помешают
Итак, попытаюсь описать техническую спецификации. API плеера должен быть следующим:
* В начале работы создаем объект Player(ну или прототип, я в тонокостях js путаюсь)). Если флэш не установлен конструтор возвращает null – мы это дело отлавливаем.
* Далее последовательно применятеся метод Player::initTrack(Array trackparam, DOMObject container, Array callback_functions). trackparam – содержит в виде ассоциативного массива следующие параметры:
title (utf8 string)
artist (utf8 string)
album (utf8 string)
url (urlencoded string)
container – DOMObject в который как innerHTML пропишется плеер со всеми контролами Массив функций-колбэков представляет собой ассоциативный массив:
* play – вызывается при запуске проигрывания
* notfound – вызывается когда файл не доступен
* По контроллам:
Кнопка старт запускает проигрывание трэка через флэшовый движок. Если в данный момент уже что то игралось, то оно останавливается(именно останавливается, что бы некачалось), графическими средставми показывается что прошлый плеер не активен, а новый активен и начинается проигрывание нового трэка
Кнопка стоп приостанавливает закачку. Если потом нажимается старт – тогда она продолжается с того же места
Кнопка пауза останавливает проигрывание, но закачка продолжается.
* Дизайн (цвета, картинки, и проч) должно содерджаться в css.
* Весь код должен содержаться в одном файле. Если будет использоваться prototype или иные фрэймворки, тогда:
Исходная версия должна содержать несколько файлов – код с логикой и дизайном
Далее должна быть возможность собирать из них две версии – minimized с использованием соответствующей версии фрэймворка и debug.
Примечания:
1. нужно знать JavaScript и flash.
2. Плеер может базироваться (или быть очень похожим) на jssoundkit.sourceforge.ne..
Предложения по срокам и ценам пишите мне в личку.
|