当我调用youtube getAvailableQualityLevels()函数时,我得到一个空数组,但为什么?
该视频有许多质量等级,如360p 480p ... 720p
演示: http ://jsbin.com/eyexah/1/edit
YT API文档 https://developers.google.com/youtube/js_api_reference#GettingReference
码:
<!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>
Run Code Online (Sandbox Code Playgroud)
如果状态是playing(或1),这将起作用.
为函数中的onStateChange事件添加一个监听器onYouTubePlayerReady:
ytp.addEventListener('onStateChange', 'onPlayerStateChange');
Run Code Online (Sandbox Code Playgroud)
并添加该onPlayerStateChange功能,例如:
function onPlayerStateChange(event)
{
var getQuali = ytp.getAvailableQualityLevels();
}
Run Code Online (Sandbox Code Playgroud)
请参阅基于您的代码的工作示例:http://jsbin.com/eyexah/6/edit
| 归档时间: |
|
| 查看次数: |
1300 次 |
| 最近记录: |