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

Королева пиратов
На сайте с 25.06.2012
Offline
370
347

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

На сайте используется трансляция онлайн радиостанций с помощью 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/V9fxN7c9KI1ug0xE
[umka]
На сайте с 25.05.2008
Offline
456
#1

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

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

Лог в помощь!
Королева пиратов
На сайте с 25.06.2012
Offline
370
#2

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

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

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

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

✅ Трастовых площадок под размещение статей и ссылок. Опыт 12 лет! ( https://searchengines.guru/ru/forum/675690 ) ⭐ Купить вечные трастовые ссылки для сайта ( https://getmanylinks.ru/?srh ) ⭐ Ускорение ваших сайтов (WP, Opencart и др.) + Настройка сервера ( https://searchengines.guru/ru/forum/997205 )

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