मैं YouTube प्लेयर एपीआई की getDuration() विधि के माध्यम से लोड/क्यूड वीडियो की सही वीडियो अवधि/लंबाई (सेकेंड में) प्राप्त करने में सक्षम नहीं हूं; वीडियो शुरू होने के बाद, वही विधि मान्य मान देता है! आश्चर्य है कि यूट्यूब एक लोड/क्यूड वीडियो की वैध अवधि कैसे दिखा सकता है।यूट्यूब प्लेयर एपीआई: इसे लोड किए बिना लोड/क्यूड वीडियो की अवधि कैसे प्राप्त करें?
जब मैं एक 15 सेकंड वीडियो क्लिप के साथ इस HTML पृष्ठ लोड करते हैं, मैं निम्नलिखित डिबग आउटपुट मिलता है:
राज्य = 5 अवधि = -0,000025
जब मैं प्ले बटन मारा, मैं निम्नलिखित डिबग आउटपुट:
राज्य = 3 अवधि = 15,
बहुत एक समाधान या एक समाधान की सराहना करते हैं। लोड हो रहा है, और तुरंत खेलना और खिलाड़ी को रोकना मेरी पसंदीदा विधि नहीं होगी।
<html>
<head>
<script type="text/javascript">
var videoId;
videoId = 'http://www.youtube.com/v/4TSJhIZmL0A'; // bbc
// videoId = 'http://www.youtube.com/v/ezwyHNs_W_A'; // physics
function $(id) {
return document.getElementById(id);
}
</script>
<script src="http://www.google.com/jsapi"></script>
<script>
google.load("swfobject", "2.1");
</script>
</head>
<body>
<table>
<tr><td>
<div id="player">
You need Flash player 8+ and JavaScript enabled to view this video.
</div>
<script>
var ytplayer;
function myOnPlayerStateChange(state) {
switch(state) {
case 1: // playing
$("out").innerHTML += " playing";
break;
case 2: // paused
$("out").innerHTML += " paused";
break;
case 0: // ended
$("out").innerHTML += " ended";
break;
case -1: // unstarted
case 3: // buffering
case 5: // cued
$("out").innerHTML += " state = " + state;
break;
default: // unknown
$("out").innerHTML += " state = " + state;
break;
}
$("out").innerHTML += " duration = " + ytplayer.getDuration() + ",";
}
function myOnPlayerError(errorCode) {
$("out").innerHTML += " Error occurred: " + errorCode;
}
function onYouTubePlayerReady(playerId) {
ytplayer = ytplayer || $(playerId);
ytplayer.addEventListener("onStateChange", "myOnPlayerStateChange");
ytplayer.addEventListener("onError", "myOnPlayerError");
}
var params = { allowScriptAccess: "always", bgcolor: "#cccccc" };
var atts = { };
swfobject.embedSWF(videoId + "?border=0&enablejsapi=1&playerapiid=" + 'player', 'player', 425, 344, "8", null, null, params, atts);
</script>
</td></tr>
</table>
<div id="out"></div>
<div id="err"></div>
</body>
</html>
दुर्भाग्य से उत्तरों की सभी YouTube एपीआई के गूगल विकलांग V2 के बाद से अप्रचलित की है। – Synetech