Youtube API - getAvailableQualityLevels return an empty array
youtube-api
Solution
This would work if the state would be `playing` (or `1`).
add a listener for `onStateChange` events in your `onYouTubePlayerReady` function:
ytp.addEventListener('onStateChange', 'onPlayerStateChange');
and add the `onPlayerStateChange` function, for example:
function onPlayerStateChange(event)
{
var getQuali = ytp.getAvailableQualityLevels();
}
See a working example based on your code: http://jsbin.com/eyexah/6/edit
Problem
i get an empty array when i call the youtube `getAvailableQualityLevels()` function, but why? The video has many quality-levels like 360p 480p ... 720p DEMO: http://jsbin.com/eyexah/1/edit YT API Doc https://developers.google.com/youtube/js_api_reference#GettingReference CODE: ``` <!DOCTYPE html> <html> <head> <script src="http://code.jquery.com/jquery-1.8.2.min.js"></script> <script src="http://ajax.googleapis.com/ajax/libs/swfobject/2.2/swfobject.js" type="text/javascript"></script> <meta charset=utf-8 /> <title>JS Bin</title> <script type="text/javascript" language="javascript"> var params = { allowScriptAccess: "always" }; var atts = { id: "youtube_player" }; swfobject.embedSWF('http://www.youtube.com/v/ZGx2WUbhnyM?enablejsapi=1&playerapiid=ytplayer&version=3', 'youtube', '425', '356', '8', null, null, params, atts); </script> <script type="text/javascript" language="javascript"> function onYouTubePlayerReady() { console.log('# onYouTubePlayerReady'); var ytp = document.getElementById("youtube_player"); var getQuali = ytp.getAvailableQualityLevels(); console.log(getQuali); }; </script> </head> <body> <div id="youtube"></div> </body> </html> ```