Почему видео js не воспроизводится постоянно, оно воспроизводится только в первый раз - PullRequest
0 голосов
/ 11 апреля 2020

Я использую videojs последний плагин 7.6.5 обновлен с 4.* (4.* работал нормально).

У меня смоделировано мой проект работает с videojs.

Я хочу отобразить изображение или видео в том же диалоговом окне, изменив html content

Вопрос: video js Плеер не загружается или не воспроизводится каждый раз (играет только в первый раз), как заставить его играть все время.

Шаги для воспроизведения моей проблемы:

  1. см. ниже фрагмент кода или go по этой кодовой ссылке https://codepen.io/eabangalore/pen/PoPwQjZ

  2. ожидание 30se c видео js будет отображаться правильно в первый раз в Диалог.

3.Диалог исчезнет, ​​изображение появится.

ждать еще 30 с c сейчас видео js не загружается.

ниже моего кода:

function initializePlayer(){
          var player = videojs('vplayer', {inactivityTimeout: 0});
                  player.ready(function() {
                    player.src({
                      src: "https://vjs.zencdn.net/v/oceans.webm",
                      type: "video/webm"
                   });
                 });
}

var showCloseNum = 0;
var intId = setInterval(function(){
           showCloseNum++;
           $('#videojs_player_dialog').dialog({
            modal: true,
            resizable: false,
            autoOpen: false,
             width: 600,
             height: 350,
            open: function(){
                 var player = `
        <video  disablepictureinpicture="" autoplay controlslist="nodownload"  id="vplayer" class="video-js vjs-default-skin"  controls muted data-setup='{ "inactivityTimeout": 0}' style="width:600;height:350;">
                <source src="#"></source>
            </video>
                `;
              
              var image = '<img src="https://via.placeholder.com/468x60?text=Visit+Blogging.com+NoC/O https://placeholder.com/">';
              
              if(showCloseNum % 2 == 0){
                              $('#videojs_player_dialog').html(player);
initializePlayer();
              }else{
                $('#videojs_player_dialog').html(image);
              }
            
                
             },
             beforeClose: function () {
                 $('#videojs_player_dialog').html('');
                 $(this).dialog('destroy');
              }
         });
    if(showCloseNum % 2 == 0){
       $('#videojs_player_dialog').dialog('open');
        
    }else{
      $('#videojs_player_dialog').dialog('close');
    }
},6000);
video{
  width: 100%;
  height:100%;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.5.0/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.12.1/jquery-ui.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/video.js/7.6.5/video.min.js"></script>
<link href="https://ajax.googleapis.com/ajax/libs/jqueryui/1.8.24/themes/smoothness/jquery-ui.css" rel="stylesheet"/>
<link href="https://vjs.zencdn.net/7.5.5/video-js.css" rel="stylesheet"/>





<div id="videojs_player_dialog">

</div>

1 Ответ

0 голосов
/ 14 апреля 2020

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

videojs.getPlayer('vplayer').dispose()
...