Próbuję skonfigurować interfejs API iframe YouTube, aby odtwarzać wideo FullHD o niższej jakości. Moim celem jest oszczędzanie przepustowości na urządzeniach mobilnych i skrócenie czasu ładowania. Moja struktura HTML to klasyczny div gracza, a także debug div dla wiadomości.Zestaw interfejsów API iFrame serwisu YoutubeOdtwarzanie Jakości ignorowane na urządzeniu mobilnym
HTML
<div id="debug"></div>
<div id="your_video_id">
<div id="player"></div>
</div>
Próbowałem powołać setPlaybackQuality
jak tylko gracz jest gotowy, aby uniknąć marnowania czasu użytkowników mobilnych w buforowania (jak zasugerowano w tym post). Wezwałem go również w stanach "BUFFERING" i "PLAYING". Gdy zmienia się jakość, zawartość debugowania jest aktualizowana o rzeczywistą jakość odtwarzania.
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");
}
}
Kod wydaje się działać na pulpicie (debug jest prawidłowo ustawiony na „małe”), ale jest ignorowane przez telefon (debug ustawionym na „duże”, sprawdzony z Androidem 4.2. 2). Czy jest na to jakieś rozwiązanie?
+1. Mam ten sam problem, próbowałem go w serwisie Onady, onStateChange z BUFFERING i PLAYING, wszystkie osobno iw różnych kombinacjach - nic z tego nie działa. Złożyłem ten problem: https://code.google.com/p/gdata-issues/issues/detail?id=7191&thanks=7191&ts=1432253375 –
Na iOS jakość wideo jest ustawiana bezpośrednio na podstawie rozmiaru odtwarzacza iFrame. Bez względu na to, jaki rozmiar ustawisz, odtwarzacz mobilny zawsze będzie nadpisywać Twoje ustawienia, aby dopasować to, co jest najbliższe rozmiarowi odtwarzacza. Jest to ogromny problem z odtwarzaczem pomocniczym, który YouTube zapewnia programistom iOS (który jest tak naprawdę tylko odtwarzaczem iFrame w widoku internetowym). YouTube twierdzi, że robi to celowo, aby uniknąć niepotrzebnego wykorzystania danych na urządzeniach mobilnych. – JAL
@JAL: Hm. Tak więc, mam go w pobliżu określonego minimalnego rozmiaru - około 350 x 200. Czy nie powinien on próbować ustawić go na 240p? A skoro w rzeczywistości jest to 175 x 100 \ @ 2x, czy nie byłoby bliżej do 144p? Myślę, że jest to problem na stronie YT iFrame API, ponieważ zauważyłem też, że [na komputerze, który stara się obniżyć jakość, nie działa, ale dąży do wyższej jakości.] (Http://stackoverflow.com/questions/30468161/ loading-youtube-iframe-api-video-at-a-lower-quality) –