Нужен flash интерфейс-редактор, которая позволяет редактировать mp3 как на этом сайте
www.mp3cut.ru (обрезка)
Т.е. исходный mp3 на сервере находиться будет, пользователь с помощью этого flash приложения выбирает начало и конец для обрезки, добавляем затухание если нужно.
*** И после окончания УЖЕ ГОТОВЫЙ на текущий момент СОФТ НА СЕРВЕРЕ mp3 обрезает. СЕРВЕРНУЮ часть делать НЕ НУЖНО
УТОЧНЕНИЯ
=====================
*** Дизайн под редактор есть.
Версия флеш должна быть от 11 до 11.2, не выше.
Анимация (шаблоны прикладываются):
1. Экран загрузки (1.png). Ползунок движется по мере загрузки файла, а шилдик с % сверху должен находиться сверху над ползунком (не в цетре экрана, а сверху, над ползунком)
2. Переходы между экранами хотелось бы плавными. То есть не "все исчезло, новое появилось", а "все исчезло плавно и новое появилось тоже плавно"
3. Экран СПЕКТР (3.png). Сначала выводятся подсказки (подписи с цифрами 1,2,3..5), затем когда пользователь кликнул по левому краю, по правому краю или по кнопке PLAY эти подсказки плавно исчезают, и плавно появляется то, что нарисовано в файле 3-1.png
4. Экран СПЕКТР (3-1.png). Кнопки "Плавное начало" и "Плавное затухание" хотелось бы анимировать. Чтобы между состоянием кнопки ВКЛ и ВЫКЛ было плавное движение ползунка, получится как бы плавное перетекание зеленой кнопки в серую.
5. Экран СПЕКТР (3-1.png). Шилдик с длиной отрезка надо центрировать относительно диапазона, то есть не центр экрана, а центр выбранного отрезка.
6. Экран РИНГТОН ОБРАБАТЫВАЕТСЯ (4.png). Подходящую анимацию прикладываю (ajax.gif).
7. Зеленые кнопки должны иметь состояние HOVER. Это состояние есть в слое "on", в группе слоев "Ошибка при загрузке", оно немного темнее обычного состояния кнопки.
=====================
ТЗ
!!! Обрезанный MP3 загружать НИКУДА НЕ НУЖНО, только параметры передать
Входящие параметры в ролик:
@server адрес сервера и скрипта-обработчика [string]
@id идентификатор mp3-файла (внутренний код, обрабатывать не нужно никак) [string]
@url ссылка на mp3-файл (URL) [string]
@name название mp3-файла (исполнитель, название песни) [string, utf-8]
@fade_in продолжительность плавного увеличения громкости в начале ролика, в секундах [int, default = 3]
@fade_out продолжительность плавного уменьшения громкости в конце ролика, в секундах [int, default = 3]
При получении параметров ролик начинает загружать файл по ссылке @url, на экране % загрузки (progress bar)
В случае ошибки (таймаут, ошибка связи, невозможно проиграть, не mp3) кнопка с предложением перезапустить загрузку.
Если параметры неполные (отсутствует @server, @url или @id) сообщение об ошибке.
Если файл успешно загрузился выводим спектрограмму, а также выбор левой и правой границы, включение/отключение плавного изменения громкости в начале и конце (образец mp3cut.ru)
Идеально, если при выводе спектрограммы ролик сможет отределить громкость mp3-файла и установить левую и правую границу на начало звучания (определить тишину в начале и в конце mp3-файла).
Надо также вывести тестовое поле "Название", подставив туда параметр @name, если он был передан. Пользователь должен иметь возможность исправить это название или написать туда новое.
Кнопка "проиграть рингтон" проигрывает только тот отрезок, который выбран с помощью левой и правой границы.
Кнопка "сохранить рингтон" формирует запрос к серверу обработки, в том числе:
@id идентификатор mp3-файла (таким, каким он был получен на входе)
@name название mp3-файла (такое, какое было получено на входе)
@name_edited название, измененное пользователем
@start_offset значение левой границы, в миллисекундах [int]
@end_offset значение правой границы, в миллисекундах [int]
@fade_in длительность плавного изменения громкости в начале [int, может быть 0]
@fade_out длительность плавного изменения громкости в конце [int, может быть 0]
Запрос может быть сформирован как JSON, если это удобно, но можно и в чистом виде. GET/POST на выбор.
Запрос отправляется на сервер, указанный в параметрах передаваемых ролику (@server)
На момент передачи параметров и получения ответа пользователь видит какую-либо анимацию (песочные часы, "крутилки" и тд), без %, без progress bar
Ответ может быть сформирован как JSON, а может быть в чистом виде, по вашему выбору (например HTTP/302 + Location, либо HTTP/500).
В качестве ответа сервер передаст URL на которую необходимо перевести пользователя (redirect), либо ошибку.
В случае неудачи пользователю выводится сообщение с ошибкой и кнопка "Сохранить рингтон еще раз".