为Youtube Chromeless Player指定质量不起作用?

时间:2012-05-28 09:06:42

标签: youtube-javascript-api

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

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

这是我的代码:

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

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

ytplayer.getPlaybackQuality();
"small"

是否有人遇到与Youtube API相同的问题?如果没有,您如何指定Youtube视频的质量?

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

我意识到视频启动后,setPlaybackQuality功能正常工作。因此,我尝试了下面的黑客攻击。它完美地工作,但宁愿找到另一种解决方案......

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

非常感谢,

1 个答案:

答案 0 :(得分: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");
    }
}

现在就像一个魅力。

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