В настоящее время я занимаюсь рефакторингом своего веб-плеера, чтобы нам было легче запускать его на других наших интернет-радиостанциях. Большая часть настроек между этими игроками будет очень похожа, однако, некоторые из них должны будут иметь различные плагины пользовательского интерфейса / другие плагины.
В настоящее время в веб-плеере я делаю что-то подобное в init ():
_this.ui = новый пользовательский интерфейс ();
_this.ui.playlist = new Playlist ();
_this.ui.channelDropdown = new ChannelDropdown ();
_this.ui.timecode = ne Timecode ();
и т. Д.
Это прекрасно работает, но это блокирует меня от необходимости этих объектов во время выполнения. То, что я хотел бы сделать, это иметь возможность добавлять те, которые основаны на потребностях станций. По сути, мой вопрос заключается в том, нужно ли мне добавить какую-то функциональность addPlugin () здесь? И если я сделаю это, нужно ли постоянно проверять по моему объекту WebPlayer, существует ли этот плагин, прежде чем он попытается его использовать? Как ...
if (_hasPlugin ('playlist')) this.plugins.playlist.add (track);
Я прошу прощения, если кое-что из этого может быть неясным ... действительно пытаюсь обернуть мою голову вокруг всего этого. Я чувствую, что я ближе, но я все еще застрял. Буду очень признателен за любые советы о том, как мне поступить с этим.
Заранее спасибо,
Lee