Ich versuche, YouTube Iframe API zu einem FullHD-Video mit einer niedrigeren Qualität zu spielen. Mein Ziel ist es, Bandbreite auf mobilen Geräten zu sparen und die Ladezeit zu reduzieren. Meine HTML-Struktur ist das klassische Player-Div sowie ein Debug-Div für Nachrichten.Youtube iFrame API setPlaybackQuality auf Mobilgerät ignoriert
HTML
<div id="debug"></div>
<div id="your_video_id">
<div id="player"></div>
</div>
Ich habe versucht setPlaybackQuality
so schnell aufzurufen, da der Spieler bereit ist, mobile Anwender zu vermeiden Zeit in Puffer verschwenden (wie in diesem post vorgeschlagen). Ich habe es auch in den Zuständen "BUFFERING" und "PLAYING" aufgerufen. Wenn sich die Qualität ändert, wird der Debug-Inhalt mit der tatsächlichen Wiedergabequalität aktualisiert.
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");
}
}
Der Code scheint auf dem Desktop (Debug zu "klein" richtig eingestellt ist) zu arbeiten, aber es auf mobilen (Debug auf "groß", getestet mit Android 4.2 ignoriert wird. 2). Gibt es dafür eine Lösung?
+1. Ich bekomme das gleiche Problem, habe es in onReady, onStateChange mit BUFFERING und PLAYING versucht, alles einzeln und in verschiedenen Kombinationen - nichts davon funktioniert. Ich habe dieses Problem eingereicht: https://code.google.com/p/gdata-issues/issues/detail?id=7191&thanks=7191&ts=1432253375 –
Bei iOS wird die Videoqualität direkt basierend auf der Größe des iFrame-Players festgelegt. Egal, welche Größe Sie einstellen, der mobile Player überschreibt Ihre Einstellung immer, um der nächstgrößeren Größe der Player-Größe zu entsprechen. Dies ist ein großes Problem mit der Player-Funktion, die YouTube den iOS-Entwicklern zur Verfügung stellt (das ist in Wirklichkeit nur der iFrame-Player in einer Web-Ansicht). YouTube behauptet, dies sei absichtlich getan, um unnötige Datennutzung auf dem Handy zu vermeiden. – JAL
@ JAL: Hm. Also, dann habe ich es in der Nähe der angegebenen Mindestgröße - etwa 350 x 200. Sollte es nicht versuchen, es auf 240p zu setzen? Und da es tatsächlich 175 x 100 \ @ 2x ist, wäre es nicht näher bei 144p? Ich denke, das ist ein Problem auf der YT iFrame API-Seite, weil ich auch bemerkt habe, dass [auf dem Desktop, der nach niedrigerer Qualität sucht, nicht funktioniert, sondern nach höherer Qualität sucht.] (Http://stackoverflow.com/questions/30468161/ loading-youtube-iframe-api-video-at-a-lower-quality) –