11

YouTubegetAvailableQualityLevels()関数を呼び出すと空の配列が表示されますが、なぜですか?
ビデオには、360p 480p...720pのような多くの品質レベルがあります

デモ:http: //jsbin.com/eyexah/1/edit

YTAPIドキュメント 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>
4

2 に答える 2

8

これは、状態がplaying(または1) の場合に機能します。

関数にonStateChangeイベントのリスナーを追加します。onYouTubePlayerReady

ytp.addEventListener('onStateChange', 'onPlayerStateChange');

関数を追加しonPlayerStateChangeます。たとえば、次のようにします。

function onPlayerStateChange(event)
{
   var getQuali = ytp.getAvailableQualityLevels();
}

コードに基づく実際の例を参照してください: http://jsbin.com/eyexah/6/edit

于 2012-11-14T07:28:03.217 に答える
0

状態が「再生中」のときに取得できます。
onPlayerStateChange(イベント)をチェック

于 2012-11-12T03:50:32.700 に答える