加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 资源网站 > 资源 > 正文

youtube-iframe-api – 以较低的质量加载Youtube iFrame API视频

发布时间:2020-12-14 23:26:00 所属栏目:资源 来源:网络整理
导读:目前,我们有一个YouTube iFrame API设置,其中包含以下(漂亮的样板)代码: script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"/scriptscript src="https://www.youtube.com/iframe_api"/scriptscript var player; YT.ready(func
目前,我们有一个YouTube iFrame API设置,其中包含以下(漂亮的样板)代码:
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://www.youtube.com/iframe_api"></script>
<script>
  var player;
  YT.ready(function() {
    player = new YT.Player('player',{
      videoId: 'iyBaInK2TsI',width: 200,height: 200,events: {
        onReady: "onReady",onStateChange: "onStateChange",onPlaybackQualityChange: "onPlaybackQualityChange",onError: "onPlayerError"
      },playerVars: {
        fs: 0,// hide fullscreen button by default
        playsinline: 1,// make the player not go fullscreen when playing on ios
        modestbranding: 1,// hide youtube logo by default - we say 'powered by youtube'
        controls: 0,// hide controls by default
        showinfo: 0,// hide video title by default
        iv_load_policy: 3,// hide annotations by default
        rel: 0
      }
    });

    console.log('available quality levels after create = ' + player.getAvailableQualityLevels());
  });
  // onReady,onStateChange,onPlaybackQualityChange,onPlayerError handlers...
</script>

它的长短是因为它总是以“中等”质量加载视频.无论我是在桌面还是移动设备上,调用setPlaybackQuality(‘small’)都不会影响视频质量.

我尝试在onReady中调用setPlaybackQuality(‘small’),当state变为BUFFERING或PLAYING时调用onStateChange,并在视频播放,未播放或暂停时在JavaScript控制台中完全单独调用.

当用户尝试在3G / 4G连接上加载播放器时,这会出现一个大问题.据我所知,3G正在逐步淘汰视频流,但仍有大量用户使用3G连接,而144p的流量实际上使得视频在3G上运行,240p使得视频在4G(非LTE)上成为可能.

当我选择以hd720作为质量选项的视频时,我可以调用setPlaybackQuality(‘hd720’)并且它可以正常工作.

我的具体问题是,我的配置中是否存在阻止切换到较低质量的任何内容,是否有一组可以解决此限制并触发实际更改的播放质量的命令?

解决方法

我找到的解决方法是创建没有videoId的播放器,从不在其他地方调用setPlaybackQuality,但在onReady处理程序内调用loadVideoById(videoId,’small’).在测试时,Android和iOS都受到尊重,在Android和桌面上使用’small’调用onPlaybackQualityChanged,在iOS上调用两次,从不强制中等质量.

不幸的是,如果你传递’微小’,它似乎不起作用.在大多数视频中,它会强制“小”;然而,根据我的经验,它之前被迫“中等”.要注意这一点.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读