Skip to content

danillewin/yandex-task-three

Repository files navigation

yandex-task-three

Ссылка на работающий пример: yandex-task-three.

Помимо основного задания реализовано:

  • Трэк лист вместо одной композиции;
  • Пауза, включая бинд на клавишу пробел;
  • Следующий трэк, с учетом repeat, включая бинд на стрелку вправо;
  • Предыдущий трэк с учетом repeat c функцией перезапуска трэка если было прослушано больше 5 секунд, включая бинд на стрелку влево;
  • Повтор трэклиста;
  • Воспроизведение в случайном порядке, сортируется сам список, для консистентности включения предыдущего трэка;
  • Изменение громкости, включая бинд на колесо мыши и функцию mute "с памятью", функция доступна по нажатию на иконку громоксти;
  • Более обширный вывод информации из метаданных, включая обложку альбома, если такая присутствует;
  • Drag'n'drop нескольких композиций;
  • Несколько вариантов визуализации, переключаемых кликом по панели визуализации;
  • Progress bar, с текущим временем, длительностью, и возможностью выбирать определенный момент композиции кликом;
  • Пометка текущего трэка с помощью оврелея обложки в трэк-листе, с отображением текущего состояния (play, pause);
  • Возможность выбирать трэк путем клика по композиции в трэк-листе (если выбранная композиции уже играет, то произойдет пауза);
  • Автоматическое переключение трэка по завершению проигрывания, с учетом repeat;
  • Индикация загружающихся трэков в трэк-листе, с защитой от воспроизведения еще не загрузившихся.

К сожалению, сделать сортировку трэк-листа посредством drag'n'drop я не успел. Также, в силу того, что это тестовое задание, я не углублялся в изучение оптимальных настроек и характеристик эквалайзера для режимов POP, ROCK и т.д., а сами пресеты я взял с потолка. Надеюсь, что это не будет являться минусом, потому что при реальном задании я бы, естественно, уделил больше внимания этому вопросу.

Спасибо.

About

Третье вступительное задание в ШРИ

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published