कैसे पता लगाते हैं जब एक यूट्यूब वीडियो चलना खत्म हो जाए?


92

मैं एक ऐसी साइट पर काम कर रहा हूं जिसमें एक टन का यूट्यूब वीडियो है, क्लाइंट जब भी कोई वीडियो देखना बंद करता है तो उसे पॉपअप दिखाना चाहता है।

मैंने यूट्यूब एपी को देखा और वीडियो समाप्त होने पर पता लगाने का एक तरीका प्रतीत होता है:

http://code.google.com/apis/youtube/js_api_reference.html

लेकिन मैं उस पृष्ठ पर उल्लिखित वीडियो को एम्बेड नहीं कर सकता क्योंकि वीडियो सभी पहले से ही साइट पर हैं (हजारों जो एम्बेड कोड पेस्ट करके मैन्युअल रूप से जोड़े गए हैं)।

क्या मौजूदा वीडियो (जावास्क्रिप्ट का उपयोग करके) को बदले बिना इन वीडियो के अंत का पता लगाने का कोई तरीका है?


2
केवल एक चीज जो मैं सुझा सकता था, वह है प्रोग्रामेटिक रूप से शामिल करने के लिए एम्बेडिंग प्रविष्टियाँ बदलना enablejsapi=1। यदि वे एक डेटाबेस में हैं, तो srcविशेषता को बदलना काफी आसान होना चाहिए । यदि वे HTML फ़ाइलों में सांख्यिकीय रूप से सम्मिलित हैं, तो आपको कुछ regex की आवश्यकता हो सकती है।
डाउनलोड करें

जवाबों:


174

यह youtube प्लेयर API के माध्यम से किया जा सकता है:

http://jsfiddle.net/7Gznb/

काम करने का उदाहरण:

    <div id="player"></div>

    <script src="http://www.youtube.com/player_api"></script>

    <script>

        // create youtube player
        var player;
        function onYouTubePlayerAPIReady() {
            player = new YT.Player('player', {
              width: '640',
              height: '390',
              videoId: '0Bmhjf0rKe8',
              events: {
                onReady: onPlayerReady,
                onStateChange: onPlayerStateChange
              }
            });
        }

        // autoplay video
        function onPlayerReady(event) {
            event.target.playVideo();
        }

        // when video ends
        function onPlayerStateChange(event) {        
            if(event.data === 0) {          
                alert('done');
            }
        }

    </script>

1
आपने एक पृष्ठ पर कई वीडियो के साथ इसे कैसे एकीकृत किया?
motoxer4533

@ motoxer4533 अच्छी तरह से मुझे एक ही पृष्ठ पर एक ही पृष्ठ पर कई वीडियो से निपटने की आवश्यकता नहीं थी। यह निश्चित नहीं है कि एपीआई कई खिलाड़ियों को बनाने की अनुमति देता है और उनके व्यक्तिगत समापन बिंदु का पता चला है।
TK123

1
कई खिलाड़ियों के लिए सेटअप करने के लिए मुश्किल नहीं होना चाहिए - बस सेटअप कई var खिलाड़ी 1, var player2, var खिलाड़ी 3 आदि। तब सेटअप कोड को कई बार
चलाएं

कुछ भी ऐसा ही करने का एक पूरा उदाहरण iframe api का उपयोग करके यहाँ डेवलपर्स
.google.com

3
पठनीयता के लिए, मैं राज्य की जाँच करते समय YT.PlayerState.ENDED को सलाह दूंगा।
बार्ट बर्ग

-6

आप जो करना चाहते हैं, उसमें निम्नलिखित शामिल होने वाले सभी पृष्ठों पर एक स्क्रिप्ट शामिल है ... 1. youtube-iframe खोजें: शीर्षक द्वारा चौड़ाई और ऊंचाई के आधार पर या इसके स्रोत में www.youtube.com को खोजकर। आप ऐसा कर सकते हैं ... - for.p लूप द्वारा window.frames के माध्यम से लूपिंग और फिर गुणों द्वारा फ़िल्टर करें

  1. चालू पेज के iframe में jscript इंजेक्षन करें onYoutubePlayerReady को जोड़ना होगा-इसमें शामिल होना चाहिए-फ़ंक्शन http://shazwazza.com/post/Injecting-JavaScript-into-other-frames.aspx

  2. घटना श्रोताओं आदि को जोड़ें।

उम्मीद है की यह मदद करेगा


1
यह सुनिश्चित नहीं है कि यह क्रॉस-डोमेन नियमों के कारण संभव है
अशर गारलैंड
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.