【问题标题】:setPlaybackQuality not changing qualitysetPlaybackQuality 不改变质量
【发布时间】:2018-01-15 19:27:42
【问题描述】:

我正在尝试使用 iframe/javascript API 更改 Youtube 视频的播放质量。

但是,API 似乎忽略了我的请求。 这是一个简单的例子:

<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width">
  <title>JS Bin</title>
</head>
<body>
  <div id="player"></div>

    <script>
      // 2. This code loads the IFrame Player API code asynchronously.
      var tag = document.createElement('script');

      tag.src = "https://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: '360',
          width: '640',
          videoId: 'M7lc1UVf-VE',
          events: {
            'onReady': onPlayerReady,
            'onPlaybackQualityChange': onPlaybackQualityChange
          }
        });
      }
      function changeQuality() {
        var qualities = player.getAvailableQualityLevels();
        var actual = player.getPlaybackQuality();
        for (var i = 0; i < qualities.length; i += 1) {
          if (actual !== qualities[i]) {
            console.log('Changing quality to:' + qualities[i]);
            //onPlaybackQualityChange is never called!
            player.setPlaybackQuality(qualities[i]);
            break;
          }
        }
      }
      function onPlayerReady(event) {
        event.target.playVideo();
        setTimeout(changeQuality, 1000);
      }
      function onPlaybackQualityChange(event) {
        console.log('Current quality:' + event.data);
      }
    </script>
  </body>
</body>
</html>

如果您运行代码,您可以看到 onPlaybackQualityChange 仅在视频加载后调用,并且使用 setPlaybackQuality() 更改视频质量的请求被完全忽略。 任何帮助表示赞赏。谢谢。

【问题讨论】:

    标签: youtube-iframe-api


    【解决方案1】:

    您必须使用setPlaybackQualityRange 来设置 Youtube 质量。

    在此处查看有关 setPlaybackQuality https://developers.google.com/youtube/iframe_api_reference#setPlaybackQuality 的更多信息

    【讨论】:

      【解决方案2】:

      很遗憾,setPlaybackQuality() 功能至少有几个月没有工作了。

      出于测试目的,尝试使用setPlaybackRate(),您会发现您可以毫无问题地设置播放速率,但不能设置质量。

      【讨论】:

        【解决方案3】:

        player.loadVideoById({'videoId': 'M7lc1UVf-VE', 'startSeconds': parseInt(5), 'suggestedQuality': 'hd720'});

        【讨论】:

          猜你喜欢
          • 2014-08-05
          • 2012-10-27
          • 1970-01-01
          • 2019-02-21
          • 1970-01-01
          • 2012-10-10
          • 1970-01-01
          • 2015-01-17
          • 2019-06-14
          相关资源
          最近更新 更多