【问题标题】:Youtube iframe player api fires event END only at end of playlistYoutube iframe 播放器 api 仅在播放列表末尾触发事件 END
【发布时间】:2014-06-03 00:07:05
【问题描述】:

在反复检查后,我注意到如果我加载一个播放列表:

player.loadPlaylist(videoCodeList, start);

然后我不会在播放列表中的每个视频结束后触发 ENDED 事件,而只会在播放列表本身的末尾触发。

在单个视频播放列表的情况下,ENDED 事件在视频结束时触发。
如果有人注意到这一点,为什么会这样?
我想要实现的是在视频结束时停止视频,如果用户要求仅播放
一首歌曲,即使它是播放列表的一部分。

<html>
<body>
  <div id="player"></div>
  <script>
      var tag = document.createElement('script');
      tag.src = "https://www.youtube.com/iframe_api";
      var firstScriptTag = document.getElementsByTagName('script')[0];
      firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);

      var videoCodeList = playlistObject.getCodeList();

      var player;
      function onYouTubeIframeAPIReady() {

        player = new YT.Player('player', {
          height: '390',
          width: '640',
          playerVars:{rel:0, showinfo:0},
          events: {
            'onReady': onPlayerReady
            ,'onStateChange': onPlayerStateChange
          }

        });
      }


      function onPlayerReady(event) {
          var start = playlistObject.getStart();
          player.loadPlaylist(videoCodeList, start);

      }


      function onPlayerStateChange(event) {
          if (event.data == 0 && playSingle.findChecked()){
              player.stopVideo();


        }
      }

    </script>
  </body>
</html>""")

【问题讨论】:

    标签: javascript iframe pyqt youtube-javascript-api


    【解决方案1】:

    我希望我的问题在我反复检查了几个小时却没有解决方案之后指出了一个真正的问题。
    我还在“问题 6408”下发布了一个“报告错误”,希望报告一个真正存在的问题。

    与此同时,我对这个问题做了一个解决方法:
    我在 javascript 代码中添加了一个信号/插槽连接,使用 QtWebKit 桥接技术:(playSingle 是一个暴露于 javascript 代码的 QAction)

    playSingle.toggled.connect(playCurrentOnly);
    

    playSingle 动作触发信号切换,每次按下工具栏按钮以选择“播放单曲”。
    并在 javascript 代码中添加了“playCurrentOnly”函数来处理此信号:

    function playCurrentOnly(){
          var currentTime = player.getCurrentTime();
          player.stopVideo();
          player.seekTo(currentTime, true);
    

    在继续播放歌曲之前,只需稍停片刻即可正常工作。

    【讨论】:

      猜你喜欢
      • 2013-06-09
      • 2014-07-25
      • 2015-03-06
      • 1970-01-01
      • 1970-01-01
      • 2013-02-27
      • 1970-01-01
      • 2017-08-18
      相关资源
      最近更新 更多