По необъяснимой для меня причине разработчики WordPress не предусмотрели опции в настройке плеера с плейлистом, позволяющей включать/выключать непрерывное воспроизведение плейлиста.
По умолчанию плейлист по окончании воспроизведения последнего трека переходит на первый, и так до бесконечности. Чтобы остановить процесс воспроизведения по окончании последнего трека нужно выполнить следующую функцию. Я постарался максимально полно снабдить код комментариями, так что надеюсь дополнительных замечаний по работе скрипта не требуется.
/*** НАЧАЛО: Хак - прерываем бесконечный цикл прокрутки плейлиста ***/
jQuery(function () {
// Ожидаем событие окончания проигрывания трека
jQuery('.mejs-mediaelement audio').on('ended', function (e) {
// Найдем первый элемент в списке плейлиста,
// которому принадлежит проигрыватель (mejs-mediaelement audio)
first_item = jQuery(this).closest("div.wp-playlist").find('.wp-playlist-item').first();
// Если первый элемент должен сейчас начать проигрываться (содержит класс wp-playlist-playing),
// то есть завершился последний, то останавливаем плеер
if(first_item.hasClass('wp-playlist-playing')) {
// Дождемся завершения загрузки трека, которая уже выполняется асинхронно
jQuery(this).on('loadeddata.noloop', function () {
e.preventDefault(); // Предотвратить стандартное действие
jQuery(this)[0].player.pause(); // Останавливаем плеер
jQuery(this).off('loadeddata.noloop'); // Отменяем текущее событие - оно нам больше не нужно
});
}
});
});
/*** КОНЕЦ: Хак - прерываем бесконечный цикл прокрутки плейлиста ***/




Вознесение Господне
Пт, 26 Янв. 2018
Vadim
Опубликовано в рубрике