Я пытаюсь настроить YouTube iframe API для воспроизведения видео FullHD с более низким качеством. Моя цель - сохранить пропускную способность на мобильных устройствах и сократить время загрузки. Моя структура HTML - это классический игрок div, плюс отладочный div для сообщений.
HTML
<div id="debug"></div>
<div id="your_video_id">
<div id="player"></div>
</div>
Я попытался вызвать setPlaybackQuality
, как только игрок будет готов, чтобы пользователи мобильных пользователей не теряли время в буферизации (как это предлагается в ). Я также вызвал его как в состояниях "BUFFERING", так и "PLAYING". При изменении качества контент отладки обновляется с фактическим качеством воспроизведения.
JAVASCRIPT
/* Trigger player ready */
function onPlayerReady(event)
{
player.setPlaybackQuality("small");
}
/* Detect playback quality changes */
function onQualityChange(event)
{
document.getElementById("debug").innerHTML = event.data;
}
/* Trigger player events */
function onPlayerStateChange(event)
{
if (event.data == YT.PlayerState.BUFFERING)
{
player.setPlaybackQuality("small");
}
if (event.data == YT.PlayerState.PLAYING)
{
player.setPlaybackQuality("small");
}
}
Этот код, похоже, работает на рабочем столе (отладка корректно установлена на "маленькая" ), но она игнорируется на мобильных устройствах (отладка установлена на "большой", протестирована с Android 4.2.2). Есть ли решение для этого?