3

我正在开发一个网站,该网站涉及在移动设备上播放嵌入的 Youtube 视频片段。API声明 cueVideoById 支持定义 startSeconds 和 endSeconds 参数,只要您使用如下对象语法即可:

player.cueVideoById({videoId:String, 
                     startSeconds:Number, 
                     endSeconds:Number, 
                     suggestedQuality:String}):Void

这在桌面浏览器上运行良好,但在 Android 和 Windows Phone 8 中,我都会收到标准的 Youtube 消息,指出视频当前不可用。如果我将 cueVideoById 切换回这样的参数语法,一切正常:

player.cueVideoById(videoId:String, 
                    startSeconds:Number, 
                    suggestedQuality:String):Void

...但是我再也无法访问 endSeconds 了。有谁知道原因,甚至更好的解决方法?我使用的代码基于 API 中的基本入门示例:

<!DOCTYPE html>
<html>
  <body>
    <!-- 1. The <iframe> (and video player) will replace this <div> tag. -->
    <div id="player"></div>

    <script>
      // 2. This code loads the IFrame Player API code asynchronously.
      var tag = document.createElement('script');
      tag.src = "//www.youtube.com/iframe_api";
      var firstScriptTag = document.getElementsByTagName('script')[0];
      firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);

      // 3. This function creates an <iframe> (and YouTube player)
      //    after the API code downloads.
      var player;
      function onYouTubeIframeAPIReady() {
        player = new YT.Player('player', {
          height: '390',
          width: '640',
          events: {
            'onReady': onPlayerReady,
            'onStateChange': onPlayerStateChange
          }
        });
      }

      // 4. The API will call this function when the video player is ready.
      function onPlayerReady(event) {

      event.target.cueVideoById("u1zgFlCw8Aw", 10, "medium");   // Works on mobile
      /*
        event.target.cueVideoById({ videoId: "u1zgFlCw8Aw",         // Doesn't work on mobile
                                    startSeconds: "10",
                                    endSeconds: "15",
                                    suggestedQuality: "medium"});
        */
        event.target.playVideo();
      }

    </script>
  </body>
</html>
4

2 回答 2

0

现在在 android jellybean 上这一切都对我有用......

我添加了这个:

函数 onPlayerStateChange(事件) {

}

于 2013-06-16T14:03:04.710 回答
0

我添加了这个:

function onPlayerStateChange(event) {

}

就像你在评论中所说的那样,现在只有第一个例子对我有用。

于 2013-06-16T13:53:27.377 回答