我有一个jw播放器,点击链接可以更改视频。我还有其他类型的播放器,因此我需要隐藏jw播放器并切换到youtube播放器。问题是,在视频播放器可见后,第二次单击时jw播放器会加载视频。任何解决方案,以便播放器在第一次单击时加载视频。

<div id="jw_container">
<script type="text/javascript" src="https://content.jwplatform.com/players/hsdfQtN-ieOuTCiv.js"></script>
</div>

<li><a href="javascript:playTrailer('Bmodfg5AS')" id="vid_link3">video</a></li>

function playTrailer(key) {
    $('#jw_container').show(); // show video player
    jwplayer().load("https://content.bitsontherun.com/jw6/" + key + ".xml");
    jwplayer().play({
        autostart: false
    });
}


如您所见,首先单击以使视频可见,然后再加载特定视频。有一个解决方案,而不是使用show();使用.css('visibility','visible'),但这会导致某些CSS问题。

实际代码:

var loaded = false;
    function playTrailer(key) {
      $('#yt_container').hide();    // hide youtube
      $('#jw_container').show("slow", function() {
        jwplayer().load("https://content.bitsontherun.com/jw6/" + key + ".xml");
        });
        loaded = true;
    }
    jwplayer().onPlaylistItem(function() {
      if(loaded) {
        jwplayer().play({autostart:false});
      }
    })

最佳答案

我认为您需要设定

编辑

 $('#jw_container').show(0,'', function() {
    // Animation complete.
jwplayer().load("https://content.bitsontherun.com/jw6/" + key + ".xml");
jwplayer().play(true);
  });


假设可能是未加载播放列表,因此play方法什么都不执行。因此,这也可能起作用:

function playTrailer(key) {
     $('#jw_container').show(); // show video player
        jwplayer().load("https://content.bitsontherun.com/jw6/" + key + ".xml");
    jwplayer().onPlaylist( function(event){
        jwplayer().play(true);
      });
    }

关于javascript - jQuery首先单击show(),然后加载视频,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21761625/

10-16 17:45
查看更多