Attualmente, abbiamo una configurazione API di YouTube iFrame con il seguente codice (abbastanza boilerplate):Loading Youtube iFrame il video API ad una qualità inferiore
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://www.youtube.com/iframe_api"></script>
<script>
var player;
YT.ready(function() {
player = new YT.Player('player', {
videoId: 'iyBaInK2TsI',
width: 200,
height: 200,
events: {
onReady: "onReady",
onStateChange: "onStateChange",
onPlaybackQualityChange: "onPlaybackQualityChange",
onError: "onPlayerError"
},
playerVars: {
fs: 0, // hide fullscreen button by default
playsinline: 1, // make the player not go fullscreen when playing on ios
modestbranding: 1, // hide youtube logo by default - we say 'powered by youtube'
controls: 0, // hide controls by default
showinfo: 0, // hide video title by default
iv_load_policy: 3, // hide annotations by default
rel: 0
}
});
console.log('available quality levels after create = ' + player.getAvailableQualityLevels());
});
// onReady, onStateChange, onPlaybackQualityChange, onPlayerError handlers...
</script>
Il lungo e breve di esso è che carica sempre il video con qualità 'media'. Chiamare setPlaybackQuality('small')
non influisce sulla qualità del video, sia che io sia sul desktop o sul cellulare.
Ho provato a chiamare setPlaybackQuality('small')
in onReady, onStateChange quando lo stato diventa BUFFERING o PLAYING e completamente separatamente nella console JavaScript quando il video è in riproduzione, non riprodotto o in pausa.
Questo presenta un grosso problema quando gli utenti tentano di caricare il lettore su una connessione 3G/4G. Capisco che il 3G venga gradualmente eliminato per lo streaming video, ma una quantità significativa di utenti opera ancora su connessioni 3G e la possibilità di trasmettere a 144p rende effettivamente il video tenable su 3G ea 240p rende il video tenable su 4G (non-LTE).
Quando scelgo un video con hd720 come opzione di qualità, posso chiamare setPlaybackQuality ('hd720') e funziona correttamente.
mio specifica domanda è, c'è qualcosa nella mia configurazione che potrebbe precludere il passaggio a qualità inferiore, e v'è un certo insieme di comandi che avrebbe aggirare questa limitazione e innescare la qualità di riproduzione in realtà cambiando?