1

我正在使用 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)

非常感谢,

4

1 回答 1

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");
    }
}

现在就像一个魅力。

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

于 2012-05-29T16:27:48.537 回答