2014-09-15 3 views
0

На моем сайте запущен Bootstrap 3.0, и у меня есть встроенное видео и полноформатное видео, размещенное на YouTube, которое я пытаюсь реализовать. Вступительное видео автоматически запускается при загрузке страницы, а затем у меня есть кнопка, которая открывает модальное окно с полным видео со звуком.YouTube stopVideo() останавливается, а не останавливается?

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

Как я могу сделать это так, чтобы видео останавливалось и начиналось с самого начала, если оно открыто?

Вот мой текущий код:

$('#myModal').on('show.bs.modal', function() { 
    $('#placeholder')[0].contentWindow.postMessage('{"event":"command","func":"' + 'pauseVideo' + '","args":""}', '*'); 
    $('#full')[0].contentWindow.postMessage('{"event":"command","func":"' + 'playVideo' + '","args":""}', '*'); 
}); 

$('#myModal').on('hidden.bs.modal', function() { 
    $('#full')[0].contentWindow.postMessage('{"event":"command","func":"' + 'stopVideo' + '","args":""}', '*'); 
    $('#placeholder')[0].contentWindow.postMessage('{"event":"command","func":"' + 'playVideo' + '","args":""}', '*'); 
}); 

Спасибо!

ответ

2

Вы можете использовать seekTo, чтобы вернуться к началу видео, когда модальная функция открыта. воспроизведения видео после seekTo

Doc from API

player.seekTo (в секундах: Number, allowSeekAhead: Boolean): Пустоты

стремится к определенному времени в видео. Если игрок приостановлен, когда вызывается функция, он останется приостановленным. Если функция вызывается из другого состояния (воспроизведение, воспроизведение видео и т. Д.), Проигрыватель будет воспроизводить видео . Параметр секунд указывает время, в которое должен двигаться игрок .

Плеер будет продвигаться до ближайшего ключевого кадра до этого времени , если игрок уже не загрузил часть видео в , который пользователь ищет. В этом случае игрок перейдет к ближайшему ключевому кадру до или после указанного времени, как продиктовано методом seek() объекта NetStream Flash-плеера. (См документацию компании Adobe для получения дополнительной информации.)

параметрирования В allowSeekAhead определяет, будет ли игрок сделать новый запрос на сервер, если параметр секунд определяет время вне в настоящее время буферизации видеоданных.

Мы рекомендуем установить этот параметр в значение false, пока пользователь перетаскивает мышью по полосе хода видео, а затем устанавливает значение true, когда пользователь освобождает мышь. Этот подход позволяет пользователю прокручивать разные точек видео без запроса новых видеопотоков, прокручивая прошлых небуферизованных точек в видео. Когда пользователь отпускает кнопку мыши , игрок переходит к нужной точке видео, а запрашивает новый видеопоток, если это необходимо.

+0

Это то, что я закончил делать, забыл сообщить о себе, спасибо! – user13286

1

Я также столкнулся с этой проблемой, трачу часы, копаясь в ней.однако я не нашел верной причины, но может быть и следующей причиной:

(«stopVideo()») Останавливает и отменяет загрузку текущего видео.

и

Важно: В отличии от функции pauseVideo, которая оставляет игрок в приостановленном (2) состоянии, функция stopVideo может поставить игрок в любом не-играет состояние, в том числе закончилась (0), приостановлено (2), видео (5) или неартировано (-1).

Это цитата из the YouTube API page

Но я смущен этим, потому что даже если фоновый механизм не совпадают между остановкой и паузы апи, они действуют до сих пор идентичны (иногда), так что я m все еще путают и интересуются реальным использованием stopVideo().

Смежные вопросы