javascript - 第二次单击浅灰色弹出窗口时,Azure Media Player 不播放视频

标签 javascript jquery asp.net azure-media-services

我为产品画廊设置了一个播放器,其中包括图像和视频。我正在使用天蓝色媒体播放器,其在代码中使用如下:

//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();
          });
     }

单击视频缩略图时,会弹出灯光画廊,第一次单击时视频会成功播放背景。但是,当我关闭弹出窗口并再次单击缩略图时,弹出窗口重新出现,但视频无法播放,并且无法生成 azure 媒体播放器所需的 HTML 标签。那么它只包含视频标签。看起来视频播放器只播放了一次...

如何让视频在每次点击时播放?我已经用 onAfterOpen.lg 附加了事件,如给出的示例 here但似乎根本不起作用。

我查看了 lightgallery API 文档并使用了一些自定义事件,例如 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();
            });

      }
});

我希望每次单击缩略图时都会显示视频。但它仅在第一次单击时有效。当我单击并第二次打开弹出窗口时,视频无法播放。

最佳答案

我从当前 DOM 中删除了 amp.Player。我从here找到了dispose()方法并在 lightgallery 的 onBeforeClose.lg 自定义事件中调用它

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

关于javascript - 第二次单击浅灰色弹出窗口时,Azure Media Player 不播放视频,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54306130/

相关文章:

javascript - React - 无法设置输入框的值

javascript - Django formset.js : Can't delete a from

jquery - 悬停时显示元素并在悬停结束时隐藏回来

javascript - 更改 Select2 以显示 'n of m items selected'

javascript - AJAX 将带有数据和多个图像的表单发送到 asp.net mvc 操作

javascript - WCF 服务 POST 方法不起作用

javascript - 如何在 javascript 中使用 document.execCommand 创建电子邮件链接

javascript - 我怎样才能改变这个时钟的速度

jquery - AngularJS ng-repeat 与 OwlCarousel

c# - 使用 pfx 文件加载证书