Указать качество для Youtube Chromeless Player не работает?

Я разрабатываю с помощью проигрывателя Youtube Chromeless.
Размер моего проигрывателя — 400 x 225 пикселей.

По умолчанию Youtube устанавливает качество видео на "маленьком" уровне с этими размерами.
Тем не менее, поскольку видео с "маленьким" качеством выглядят некрасиво, я хотел бы повысить их до "среднего" уровня качества.

Это мой код:

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

К сожалению, это не работает... Когда я проверяю свою консоль:

ytplayer.getPlaybackQuality();
"small"

Кто-нибудь испытывает те же проблемы с API Youtube? Если нет, то как вы указываете качество ваших видео на Youtube?

====== Изменить =======

Я понял, что после запуска видео работает функция setPlaybackQuality. Поэтому я попробовал хак ниже. Он отлично работает, но лучше найти другое решение...

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

Большое спасибо,

Плотина


person Damien    schedule 28.05.2012    source источник


Ответы (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");
    }
}

Теперь работает как шарм.

Если у вас есть какие-либо предложения, пожалуйста, дайте мне знать.

person Damien    schedule 29.05.2012