Воспроизвести плейлист с аудио на веб-сайте с помощью узла для создания музыкального автомата / радио приложения - PullRequest
0 голосов
/ 17 июня 2020

Итак, у меня есть немного времени, и я подумал, что сделаю себе небольшое приложение типа музыкального автомата / радио.

Это было бы довольно просто, просто набор MP3 на сервере, один выбирается на в случайном порядке, он играет, по завершении выбирается следующий и играет. Передняя часть будет просто супер простой страницей с проигрывателем и отображением метаданных.

На самом деле у меня нет опыта программирования серверов, но я собираюсь заглянуть в Node, кажется, это было бы хорошо для этого. Я уже написал небольшой скрипт в Python, который выбирает песню из выбранного и воспроизводит ее (используя VL C на данный момент), поэтому перенести ее на Node / js.

должно быть просто.

Просто интересно, может ли кто-нибудь указать мне в правильном направлении, как связать «плейер» с «плейлистом».

Заглянув в него, я могу найти решения только с участием клиента и сервера, используя shoutCast, ICEcast или аналогичные - таким образом, плейлист передает звук на сервер shoutcast, а веб-сайт - это просто игрок, просматривающий URL-адрес shoutCast - мне это кажется ненужным, поскольку потоковая передача и сайт будут одним и тем же.

Во многих это новичок :) но сейчас у меня есть время, так что рад застрять!

Заранее спасибо

1 Ответ

0 голосов
/ 18 июня 2020

Я построил нечто подобное и решил выполнять почти всю работу на стороне клиента. Есть несколько преимуществ:

  • Требуется меньше инфраструктуры (и меньше go неверно)
  • Вы можете повторно использовать обычные HTTP CDN для обслуживания stati c файлов
  • Большая гибкость для изменений клиента позже (например, отправка различного контента разным клиентам для A / B-тестирования)
  • Возможность автономного воспроизведения

Нет необходимости в SHOUTcast или Icecast. Все, что вам нужно сделать, это опубликовать sh список воспроизведения и связанные файлы на веб-сервере. На стороне клиента вы можете прочитать этот список воспроизведения, случайным образом выбрать запись, а затем загрузить ее с помощью простого new Audio().

Теперь, когда ваш объект audio запускает событие ended, установите src к URL-адресу следующего элемента в списке воспроизведения. (Эта деталь важна, иначе Safari перестанет воспроизводить звук, поскольку считает, что пользователь не хочет продолжать.)

...