【问题标题】:Specify Quality for Youtube Chromeless Player not working?为 Youtube Chromeless Player 指定质量不起作用?
【发布时间】:2012-05-28 09:06:42
【问题描述】:

我正在使用 Youtube Chromeless 播放器进行开发。
我的播放器尺寸是 400 x 225px。

默认情况下,Youtube 将视频质量设置为具有这些尺寸的“小”级别。
然而,由于“小”质量的视频看起来很难看,我想将它们升级到“中等”质量水平。

这是我的代码:

ytplayer.loadVideoById(youtube_id, start, "medium");

不幸的是,它似乎不起作用...当我在控制台上进行一些检查时:

ytplayer.getPlaybackQuality();
"small"

有人在使用 Youtube API 时遇到同样的问题吗?如果不是,您如何指定 Youtube 视频的质量?

====== 编辑 =======

我意识到,一旦视频开始播放,setPlaybackQuality 函数就会起作用。因此,我尝试了下面的 hack。它工作得很好,但宁愿找到另一个解决方案......

ytplayer.loadVideoById(YOUTUBE_ID, START);
setTimeout(function(){
    // If medium quality available
    if(ytplayer.getAvailableQualityLevels().indexOf("medium") != -1){
        ytplayer.setPlaybackQuality("medium");
    }
},1000)

非常感谢,

大坝

【问题讨论】:

    标签: youtube-javascript-api


    【解决方案1】:

    好的,我终于设法解决了这个问题。

    我做了一个不同的黑客,但不那么丑陋。这里是:

    function onYoutubePlayerReady(playerId){
        [...]
    
        // Add event listener to monitor quality
        ytplayer.addEventListener("onPlaybackQualityChange","onQualityChange");
    
        // Triggers the video
        ytplayer.loadVideoById(youtube_id, start, "medium");
    
        [...]
    
    }
    

    这是负责将视频质量强制为“中等”的事件侦听器

    function onQualityChange(qualityState){
        if(qualityState != "medium" && ytplayer.getAvailableQualityLevels().indexOf("medium") != -1){
            ytplayer.setPlaybackQuality("medium");
        }
    }
    

    现在就像一个魅力。

    如果您有任何建议,请告诉我。

    【讨论】:

      猜你喜欢
      • 2010-11-12
      • 2014-05-19
      • 2013-01-21
      • 2013-12-25
      • 1970-01-01
      • 2015-05-31
      • 1970-01-01
      • 2018-08-09
      • 1970-01-01
      相关资源
      最近更新 更多