代码之家  ›  专栏  ›  技术社区  ›  SamotnyPocitac Войдевич Богдан

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

  •  1
  • SamotnyPocitac Войдевич Богдан  · 技术社区  · 11 年前

    我有一个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 回复  |  直到 11 年前
        1
  •  3
  •   Bryce Easley    11 年前

    我想你需要的是

    编辑

     $('#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);
          });
        }