[HTML5] Может ли audio-stream вызывать событие "ended"?

slavegirl
На сайте с 25.06.2012
Offline
388
375

Здравствуйте!

На сайте используется трансляция онлайн радиостанций с помощью JS-плеера. Занимаюсь небольшим рефакторингом его кода, так как плеер изначально поставлялся как универсальный (умеет играть аудио-, видео-файлы и подключаться к потоковому вещанию), а хочется упростить его исключительно для прослушивания радио. Сегодня добралась до методов, которые ввели меня в полный ступор.

В плеере присутствует код, который при получении события "ended" от медиа-элемента останавливает воспроизведение, сбрасывает его состояние и начинает воспроизведение с самого начала:

Так вот, засомневалась я в этом участке... Действительно ли при круглосуточном потоковом вещании могут возникать событие "конец прослушивания" как с обычными файлами? Мол, радио-станция "устала" и оправляет сообщение "конец музыке"?

Что мне удалось найти по этому вопросу в справочниках:

https://developer.mozilla.org/en-US/docs/Web/Events/ended

https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement/ended

Но там написано, что событие "ended" может возникать, если медиа-элемент является объектом MediaStream. А у меня обычный элемент <audio> с адресом радио-станции в атрибуте src:

Помогите, пожалуйста, понять, нужна ли обработка события "ended" в данном случае? Или можно её безопасно удалить так как оно (событие) никогда не возникнет?

Заранее большое спасибо за любую помощь!

С уважением,

Slavegirl

https://t.me/joinchat/RKtR6f68OwU1NzM6  ❤️‍🔥  Сарказм is my orgazm
[umka]
На сайте с 25.05.2008
Offline
456
#1

Думаю, что "or because no further data is available" означает обрыв связи / отвал интернета / и пр. телекоммуникационный коллапс.

В этом случае должно тоже выскочить это событие.

Лог в помощь!
slavegirl
На сайте с 25.06.2012
Offline
388
#2

[umka], пробовала при включённом воспроизведении отключать Интернет. Появляются события "abort" и "error", но не "ended". Ума не приложу, как можно симулировать его возникновение, чтобы была 100% уверенность в необходимости его обработки...

LEOnidUKG
На сайте с 25.11.2006
Offline
1723
#3

Я думаю, что тут документация то есть, а вот исполнение у всех разное.

Я бы просто приравнял вызов ended к stop(); и всё. Пусть будет, не думаю, что это слишком узкое место, чтобы сильно на нём замачиваться.

✅ Мой Телеграм канал по SEO, оптимизации сайтов и серверов: https://t.me/leonidukgLIVE ✅ Качественное и рабочее размещение SEO статей СНГ и Бурж: https://getmanylinks.ru/

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий