2012-02-07 6 views
13

के अंदर ईवेंट पर क्लिक करने के लिए हुक, जब भी कोई एम्बेडेड यूट्यूब वीडियो पर 'प्ले' बटन पर क्लिक करता है तो मैं stopSlide नामक एक फ़ंक्शन चलाने के लिए चाहता हूं। या जब भी एम्बेडेड वीडियो के अंदर कहीं भी पर क्लिक किया जाता है तो फ़ंक्शन चलाने के लिए भी काम करेगा, अभी मेरे लिए ठीक काम करेगा।एम्बेडेड यूट्यूब प्लेयर

मैं यह कैसे कर सकता हूं?

उत्तर

10

एक यूट्यूब जावास्क्रिप्ट एपीआई है जो इवेंट कॉलबैक प्रदान करता है।

दुर्भाग्य से, किसी क्लिक ईवेंट को सीधे पहचानने का कोई तरीका नहीं है (कम से कम मुझे किसी के बारे में पता नहीं है)। हालांकि, आप प्लेयर स्थिति में परिवर्तनों का पता लगा सकते हैं जिसके लिए आप onStateChange का उपयोग कर सकते हैं।

function player_state_changed(state) { 
    /* This event is fired whenever the player's state changes. 
    Possible values are: 
    - unstarted (-1) 
    - ended (0) 
    - playing (1) 
    - paused (2) 
    - buffering (3) 
    - video cued (5). 
    When the SWF is first loaded it will broadcast an unstarted (-1) event. 
    When the video is cued and ready to play it will broadcast a video cued event (5). 
    */ 

    if (state == 1 || state == 2) { 
    alert('the "play" button *might* have been clicked'); 
    } 

} 

:

http://www.youtube.com/v/VIDEO_ID?version=3&enablejsapi=1 

तो फिर तुम एक ईवेंट हैंडलर समारोह बनाने की जरूरत:

सबसे पहले, आप एक विशेष URL का उपयोग करके इसे एम्बेड करके खिलाड़ी में जे एस API को सक्षम करने की आवश्यकता होगी अंत में, आपको यह सुनिश्चित करने की ज़रूरत है कि जब भी मूवी की स्थिति बदलती है तो हैंडलर को कॉल किया जाता है:

document.getElementById('MY-PLAYER-ID').addEventListener('onStateChange', 'player_state_changed'); 
+0

चूंकि मैं इस पर एक नोब हूं: उस घटना का उपयोग करने के लिए मैं अपने जेएस फ़ाइल (या एचटीएमएल) में कौन सा कोड डालूंगा? –

+0

मैंने अपना जवाब बढ़ा दिया है, उम्मीद है कि यह अब और अधिक सहायक होगा। –

+0

"MY-PLAYER-ID" से आपका क्या मतलब है? – Serge

0

आपको अपने stopSlide फ़ंक्शन पर कॉल करने के लिए प्लेयर पर एक ईवेंट श्रोता पंजीकृत करने की आवश्यकता है। कोड की निम्न पंक्ति आपके लिए यह करनी चाहिए (सबसे पहले आपको दो "तार" उचित मूल्यों के साथ - एम्बेडेड प्लेयर की आईडी और उस फ़ंक्शन का नाम जिसे आप कॉल करना चाहते हैं, को प्रतिस्थापित करना होगा। उदाहरण: " stopSlide "):

document.getElementById("_idOfEmbeddedPlayerElement_").addEventListener("onStateChange", "_nameOfFunctionToCall_");` 
+0

यह प्रत्येक घटना, जैसे क्यू, बफर, प्ले, पॉज़, स्टॉप, एंड पर कॉलबैक फ़ंक्शन ट्रिगर करेगा। –

+0

क्या हम "एम्बेडेड प्लेयर की आईडी" को खोजना चाहिए? यूट्यूब वीडियो की