2012-03-31 12 views
8

मैं जेएस एपीआई के माध्यम से यूट्यूब क्रोमलेस प्लेयर का उपयोग करने की कोशिश कर रहा हूं और मुझे तलाश() फ़ंक्शन के साथ समस्याएं आ रही हैं।यूट्यूब प्लेयर जेएस एपीआई तलाश करने के लिए काम नहीं कर रहा है

समस्या यह है कि कभी-कभी (जब समस्या उत्पन्न होती है तो मैं नहीं बता सकता), जिसे लोड नहीं किया गया है, उस वीडियो में एक बिंदु पर पीछे की ओर फ़ंक्शन को वापस कॉल नहीं किया जाता है और इसके बजाय वर्तमान समय में रहता है।

  1. मैं एक वीडियो चलाना प्रारंभ करें -> (loadVideoById):

    यह है कि मैं क्या करना है (वीडियो कल्पना 240 सेकंड लंबाई है)।

  2. मैं आगे बढ़ता हूं (चलो कहें) वीडियो के बीच -> seekTo (120)
  3. वीडियो मुझसे पूछे गए पद पर सही ढंग से कूदता है।
  4. मैं वीडियो के पीछे की ओर से 25% समय ले जाने की कोशिश -> seekTo (60)
  5. कभी कभी वापस वीडियो 60 कूदता है लेकिन अधिक बार यह केवल 120.

तो वापस चला जाता है, है क्या किसी और को भी ये समस्या है?

+0

मुझे यह सही समस्या है। – wilsonpage

+0

+1। जिममेरी का सुझाव इसे काट नहीं देता है। ऐसा लगता है कि YouTube को एक नया बफर शुरू करने के बाद, दूरस्थ स्थिति की तलाश करने के बाद ही यह विफल हो जाता है। – guidupuy

उत्तर

4

कुछ कोड पोस्ट करने से हमें आपकी मदद करने में मदद मिलेगी, लेकिन आपने player.seekTo(60, true); को आजमाया है - दूसरा पैरामीटर महत्वपूर्ण है - इसे सही पर सेट करने से खिलाड़ी वीडियो के लिए सर्वर को नया अनुरोध भेज देगा।

0

मुझे वही समस्या थी जो आपने वर्णित की है। मुझे पता चला कि यदि आप वीडियो अवधि के लिए एपीआई से पूछते हैं और उसके बाद पिछड़े स्थान की तलाश करते हैं तो ऐसा लगता है।

var duration = ytplayer.getDuration(); 
ytplayer.seekTo(0, true); 

यह मुझे पता चला है कि हमेशा प्रारंभिक स्थिति में लौट आए:

उदाहरण के लिए, यह मेरी परीक्षा है।

0

मुझे एक ही समस्या है लेकिन इनमें से कोई भी समाधान मेरे लिए काम नहीं करता है।

"खिलाड़ी उस समय से पहले निकटतम-फ़्रेम को आगे बढ़ाएंगे: मैं इस का उपयोग करते हुए यह एचटीएमएल 5 दर्शक (Chrome और Firefox)

function onPlayerStateChange(event) { 
    if (event.data == YT.PlayerState.PLAYING){ // for Chrome and Firefox to "restart" properly 
     var ct = player.getCurrentTime(); 
     var dur = player.getDuration(); 

     if (ct > (dur-.5)){ 
      player.seekTo(0, true); 
     } 
    } 
} 
0

सावधान रहो, दस्तावेज़ में यह कहता है के साथ काम कर पाने के लिए समाप्त हो गया जब तक कि खिलाड़ी पहले से ही उस वीडियो का हिस्सा डाउनलोड नहीं कर लेता है जिस पर उपयोगकर्ता मांग रहा है। उस स्थिति में, खिलाड़ी फ़्लैश प्लेयर के खोज() विधि द्वारा निर्धारित निर्दिष्ट समय से पहले या उसके बाद निकटतम कीफ्रेम पर आगे बढ़ेगा नेटस्ट्रीम ऑब्जेक्ट। (अधिक जानकारी के लिए एडोब के दस्तावेज़ देखें।) "

https://developers.google.com/youtube/js_api_reference?hl=fr#seekTo

संबंधित मुद्दे