- PVSM.RU - https://www.pvsm.ru -
В 2012-2013 годах я нашёл одно онлайн-радио, которое «зацепило» меня большим выбором хорошей музыки и тем, что там (почти) не было рекламы.
По своей должности я — web-разработчик, да ещё интересуюсь различными технологиями и происходящим в науке, и посему у меня довольно часто открыто большое количество вкладок в браузере, а зачастую ещё и несколько профилей в браузере. А если ещё добавить к этому среду разработки, графический редактор, открытые папки, то хоть заводи навигатор по всем открытым окнам и вкладкам.
Музыка во вкладке в браузере у меня играла большую часть времени. Когда мне нужно было приостановить воспроизведение, чтобы ответить на звонок или посмотреть интересный видеоролик, приходилось сначала найти нужное окно браузера, потом — нужную вкладку и только после этого можно было нажать заветную кнопку паузы.
Такое происходило часто, и я всё чаще стал задаваться мыслью найти решение этой проблемы.
Недолго думая, решил написать расширение для браузера, которое позволяло бы с помощью горячих клавиш (в терминологии некоторых браузеров — быстрые клавиши) контролировать воспроизведение.
А ещё часто мне было интересно узнать исполнителя и название произведения, поэтому было решено добавить всплывающие оповещения с этой информацией.
Сегодня моё расширение позволяет контролировать воспроизведение уже на нескольких сайтах (SoundCloud, Digitally Imported, ВКонтакте, Одноклассники, Онлайн-радио 101.ru, VGM Radio), а также некоторые другие действия (добавлять текущий трек в плейлист, отмечать трек как понравившийся, изменять громкость звука). Делается это как с помощью быстрых клавиш, так и при помощи кнопок в оповещении (кнопки не отображаются в Opera).
Ещё есть (отключаемые) оповещения с информацией о треке при изменении статуса плеера либо по нажатию быстрых клавиш.
Также ведётся список десяти последних треков с возможностью поиска оных ВКонтакте, в Google и Amazon.
У расширения имеется API для добавления поддержки других сайтов.
Каждый сайт (плеер) добавляется как модуль. Имеются встроенные и внешние модули.
Встроенные модули являются частью моего расширения и их настройки доступны на странице параметров расширения. Для того, чтобы подключить модуль, пользователь должен дать расширению своё разрешение на доступ к вкладкам и содержанию страниц соответствующих доменов.
Внешние модули являются отдельными расширениями, которые подсоединяются к моему расширению посредством API и имеют доступ ко всем возможностям моего расширения (управление плеерами посредством быстрых клавиш и кнопок в оповещении, а также список последних треков). Их настройки тоже доступны на странице параметров моего расширения.
API доступен по лицензии MIT на GitHub (см. Ссылки ниже).
Написан он на ES5, чтобы понизить входной барьер для сторонних разработчиков, но это не должно остановить тех, кто хочет написать свой модуль на более современных спецификациях и технологиях.
Имеется: два внешних модуля (доступны в качестве отдельных расширений), а также один встроенный модуль, использующий API.
Встроенный или внешний модуль? «… вот в чём вопрос», — как говорил классик.
Если вы хотите воспользоваться API и добавить поддержку нового плеера, воспользуйтесь следующими подсказками:
Вопросы, жалобы и предложения приветствуются. Оставляйте их в комментариях либо воспользуйтесь одним из других способов [6].
Автор: PoziWorld
Источник [7]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/vkontakte/159432
Ссылки в тексте:
[1] Моё расширение: https://github.com/PoziWorld/PoziTone
[2] API: https://github.com/PoziWorld/PoziTone-module-API
[3] встроенный модуль: https://github.com/PoziWorld/PoziTone/tree/develop/modules/com_soundcloud
[4] раз: https://github.com/PoziWorld/SoundCloud-Widget-external-PoziTone-module
[5] два: https://github.com/PoziWorld/Sovyatnik-external-PoziTone-module
[6] других способов: https://github.com/PoziWorld/PoziTone/blob/develop/README_ru.md#Обратная-связь
[7] Источник: https://habrahabr.ru/post/306072/?utm_source=habrahabr&utm_medium=rss&utm_campaign=sandbox
Нажмите здесь для печати.