YouTube上的iFrame API" setPlaybackQuality"或QUOT; suggestedQuality"不工作 [英] YouTube iFrame API "setPlaybackQuality" or "suggestedQuality" not working

查看:366
本文介绍了YouTube上的iFrame API" setPlaybackQuality"或QUOT; suggestedQuality"不工作的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一些麻烦,在通过YouTube API的iFrame视频设置画质设置。这是我的code:

I'm having some trouble setting the quality settings on a video via the Youtube iFrame API. This is my code:

var player;

player = new YT.Player('player', {
    height: '490',
    width: '725',
    videoId: yturl,
    /* setPlaybackQuality: 'hd720', <-- DOES NOT WORK */
    /* suggestedQuality: 'hd720',   <-- DOES NOT WORK */
    events: {
        'onReady': onPlayerReady
    }
});

function onPlayerReady(event) {
    player.setPlaybackQuality('hd720');       // <-- DOES NOT WORK
    event.target.setPlaybackQuality('hd720'); // <-- DOES NOT WORK
    player.setVolume(100);                    // <-- DOES WORK
    console.log(player.getPlaybackQuality()); // <-- Prints 'small' to console
    event.target.playVideo();
}

有趣的是,我的呼吁 player.setPlaybackQuality event.target.setPlaybackQuality 不给任何错误。它只是看起来好像玩家忽略它。呼叫,说, player.setSuggestedQuality (即不存在的功能)抛出预期错误。

The funny thing is that my call to player.setPlaybackQuality or event.target.setPlaybackQuality doesn't give any errors. It just looks as if the player ignores it. A call to, say, player.setSuggestedQuality (a function that doesn't exist) throws an error as expected.

我试过为在API参考('中','大','HD720'等)。他们没有工作。

I've tried all the valid string parameters as outlined in the API reference ('medium', 'large', 'hd720' etc). None of them work.

任何人有,我应该如何设置该属性有什么建议?

Anyone have any suggestions to how I'm supposed to set this property?

推荐答案

我有相同的问题和解决方法。
我认为,这是怎么回事是,YouTube是只允许质量水平的基础上显示的实际大小,所以除非你有你的视频720像素高的,你不能默认为720P它的实际播放前。然后,用户控件踢和YouTube不再是一个家伙。




编辑

I have the exact same problem and workaround. I think what's happening is that YouTube is only allowing quality levels based on the actual size of the display, so unless you have your video 720px tall you can't default to 720p before it's actually playing. Then the user controls kick in and YouTube stops being a dick.


EDIT

只要按下一个突破:
如果您使用事件3(缓冲),而不是事件5(打)有该用户的口吃。质量是只要它开始加载的变化。唯一奇怪的是,你需要将其设置在onPlayerReady以及或者无法正常工作。

Just hit a breakthrough: If you use event 3 (buffering) instead of event 5 (playing) there's no stutter for the user. Quality is changed as soon as it starts loading. Only weird thing is you need to set it in onPlayerReady as well or it doesn't work.

function onPlayerReady(event) {
    event.target.setPlaybackQuality('hd720');
}
function onPlayerStateChange(event) {
    if (event.data == YT.PlayerState.BUFFERING) {
        event.target.setPlaybackQuality('hd720');
    }
}

这篇关于YouTube上的iFrame API&QUOT; setPlaybackQuality&QUOT;或QUOT; suggestedQuality&QUOT;不工作的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆