Изменение видео YT по истечении таймера jQuery. Как изменить, если страница обновляется

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

Мой текущий HTML-код выглядит следующим образом:
Ссылка на вставку. Это ведет обратный отсчет до +8 секунд и работает нормально. Если я изменю это на определенное время, это также сработает ... но тогда возникает проблема с обновлением.

$(function () {
        $('#switchtimer').countdown({
                alwaysExpire: true,         // run "change_video" if time has already expired when you load
                until: expire_date,             // timer counts down to expire_date
                onExpiry: change_video,         // when timer hits 0; run "change_video"
                });
});

Похоже, проблема связана с alwaysExpire: true
Согласно документации:

По истечении срока действия выполняется обратный вызов, чтобы вы могли начать обратный отсчет. Вы можете принудительно активировать это событие, даже если обратный отсчет начинается после целевого времени, задав для alwaysExpire значение true.

а также:

Имя — alwaysExpire
Тип — логическое значение
По умолчанию — false
Комментарий — если true , событие onExpiry запускается, даже если счетчик запускается после целевого времени. Если false, событие срабатывает только в том случае, если счетчик активно истекает.

Я пробовал изменить порядок, это не имеет значения. Я пробовал true и false безуспешно. Я трижды проверял правописание, я даже пытался заменить alwaysExpire: true на alwaysExpire = true, и все равно ничего. ну на самом деле тот последний сломал все вместе.

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

      function change_video() {
            ytid = next_vid
            player.cueVideoById(ytid);
        }

Ссылка: Таймер Кита Вуда


person Wolfkin    schedule 24.03.2011    source источник


Ответы (1)


Что ж, глядя на ваш HTML, вполне нормально, что у вас возникла эта проблема, поскольку вы не даете ему возможности вспомнить, какое видео было воспроизведено последним. Во время загрузки страница всегда запускается с этим видео: var ytid = "CD2LRROpph0"; а у вас еще и некствид захардкожен. Способ приблизиться к этому - сохранить текущее воспроизводимое видео в файле cookie, когда страница загружается, сначала прочитайте из этого файла cookie значение видео, если оно пусто (пользователь никогда не был на этой странице), а затем подайте его по умолчанию ценность. Вы также можете хранить все свои идентификаторы видео в массиве для будущей масштабируемости. Дайте мне знать, если вам нужна помощь с фактическим кодом файла cookie, но это должно вам помочь. Надеюсь, поможет. Ваше здоровье.

person Ady Ngom    schedule 24.03.2011
comment
Cookies немного за пределами моих знаний. Вот о чем я думал, и вы можете сказать мне, если моя логика была неправильной. У меня есть серии видео A, B, C, D, E и т. д., которые я хочу показать, начиная с понедельника. Я хочу, чтобы мой таймер вел обратный отсчет до 17:00 и переключался на следующее видео. Я думал, что если бы я установил Today_video=A и Tomorrow_Video=B, а затем просто установил таймер для отображения B в любое время после 5. Тогда я мог бы войти вручную вечером и циклически переключаться вверх Today_video=B Tomorrow_Video=C и так далее. позже да, я хочу использовать массив, но пока это не должно работать? - person Wolfkin; 24.03.2011
comment
Предполагая, что пользователь никогда не перезагрузит страницу и использует ее линейным образом, ваша модель будет работать, но вы понимаете, что она не решает вашу первоначальную проблему. - person Ady Ngom; 24.03.2011
comment
И на самом деле, если внимательно присмотреться к методу countdown(), кажется, что он уже позаботился о настройке файла cookie для вас. Хорошо, если позволяет время, сегодня я запущу ваш код и предложу вам лучшее решение, которое я могу придумать. Ваше здоровье. - person Ady Ngom; 24.03.2011
comment
Предполагая, что пользователь никогда не перезагрузит страницу и использует ее линейным образом, ваша модель будет работать, но вы понимаете, что она не решает вашу первоначальную проблему. – я думал, что это не должно важно, если они перезагружаются. Если они перезагружаются и сейчас 19:00. Таймер закончился, но alwaysExpire:true должен убедиться, что он срабатывает change_video. Я так близок к тому, чтобы заставить это работать, я бы предпочел не начинать сначала, но если мне придется, то пусть будет так, я думаю. - person Wolfkin; 24.03.2011