Azure Media Player не воспроизводит видео при втором нажатии на всплывающем окне - PullRequest
0 голосов
/ 22 января 2019

Я настроил плеер для галерей товаров, которые включают в себя как изображения, так и видео.Я использую Azure Media Player, который используется в коде, как показано ниже:

//azure media player settings for video
var myOptions = {
     "nativeControlsForTouch": false,
     controls: true,
     autoplay: true,
     width: "640",
     height: "400"
}

//player for lightgallery popup
var galleryVideoPlayer = document.getElementById("videoA");
    if (galleryVideoPlayer) {
      alert('PLAYING NOW!');
      var myPlayer = amp('videoA', { myOptions },
          function () {
              this.play();
          });
     }

При нажатии на миниатюру видео он высвечивает галерею с видео, успешно воспроизводящим фон при первом нажатии.Но когда я закрыл всплывающее окно и снова щелкнул по миниатюре, всплывающее окно снова появляется, но видео не воспроизводится и не может сгенерировать необходимые теги HTML для Azure Media Player.Тогда он содержит только видео тег.Похоже, видеопроигрыватель воспроизводится только один раз ...

Как заставить видео воспроизводиться при каждом нажатии?Я уже прикрепил событие к onAfterOpen.lg, как пример, приведенный здесь , но, похоже, он вообще не работает.

Я проверил документацию по API lightgallery и использовал некоторые пользовательские события, такие как onAfterOpen.LG и т. д.

lg.on('onAfterOpen.lg', function (event, index) {
      console.log('onAfterOpen');
      //azure media player settings for video
      var myOptions = {
         "nativeControlsForTouch": false,
         controls: true,
         autoplay: true,
         width: "640",
         height: "400"
      }
      //player for lightgallery popup
      var galleryVideoPlayer = document.getElementById("videoA");

      if (galleryVideoPlayer) {
         alert('PLAYING NOW!');
         event.preventDefault();
         var myPlayer = amp('videoA', { myOptions },
         function () {
            this.play();
            });

      }
});

Я ожидал показывать видео каждый раз, когда нажимал на миниатюру.Но это работает только с первого клика.Когда я нажимаю, и всплывающее окно открывается во второй раз, видео не воспроизводится.

1 Ответ

0 голосов
/ 23 января 2019

Я удалил amp.Player из текущего DOM.Я нашел метод dispose () из здесь и вызвал его внутри onBeforeClose.lg пользовательского события lightgallery

lg.on('onBeforeClose.lg', function (event, index) {
    var myPlayer = amp('videoA');
    myPlayer.dispose();
});
...