evve
@evve

Как запретить одновременное нескольких воспроизведение видео на одной странице?

Доброго времени суток!
На одной странице есть несколько видео, которые добавлены через тег video html5. Как запретить одновременное воспроизведение?
Правильнее наверное сделать так: Когда пользователь нажимает на воспроизведение другого ролика, первый останавливается.
  • Вопрос задан
  • 501 просмотр
Пригласить эксперта
Ответы на вопрос 2
webinar
@webinar
Учим yii: https://youtu.be/-WRMlGHLgRg
Есть событие клика по кнопке плей, по нему останавливаете все видео и запускаете нужный.
Ответ написан
Комментировать
@antonmoshkin
var tag = document.createElement('script');
tag.src = "https://www.youtube.com/iframe_api";
var firstScriptTag = document.getElementsByTagName('script')[0];
firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);

$("iframe").each(function(indx){
 var min = $(this)[0].src.indexOf('?');
 var src = $(this)[0].src.substr(0, min) + '?enablejsapi=1';
 $(this)[0].src = src;
 $(this)[0].id = 'player' + indx;
});

function onPlayerStateChange(event) {
 var flag = 0;
 $(players).each(function(){
  if(this.getPlayerState() == 1){
   flag += 1;
  }
 });
 if(event.data == 1 && flag > 1){
  stop_all();
  event.target.playVideo();
 }
}

function stop_all (){
 $(players).each(function(){
  this.pauseVideo();
 });
}

var players = [];
function onYouTubeIframeAPIReady() {
$("iframe").each(function(indx){
 var temp = new YT.Player('player' + indx, {
  events: {
   'onStateChange': onPlayerStateChange
  }
 });
 players.push(temp);
});
}

не забудьте подключить jQuery
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы