Хак — прерываем бесконечный цикл прокрутки плейлиста WP

( 1 голос: 5 из 5 )

По необъяснимой для меня причине разработчики 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');	// Отменяем текущее событие - оно нам больше не нужно
			});
		}
	});
});
/*** КОНЕЦ: Хак - прерываем бесконечный цикл прокрутки плейлиста ***/
Вы можете пропустить чтение записи и оставить комментарий. Размещение ссылок запрещено.

Оставить комментарий