jQuery首先单击show()第二次加载视频

时间:2014-02-13 17:43:37

标签: javascript jquery jwplayer

我有一个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});
      }
    })

1 个答案:

答案 0 :(得分:3)

我认为您需要的是设置

修改

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

假设可能是播放列表未加载,因此播放方法正在执行任何操作。所以这可能也有效:

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