2012-01-28 30 views
7

में निकालने के बाद ऑडियो जारी रहता है मुझे क्रोम में वीडियो समर्थन के साथ समस्याएं आ रही हैं। मेरा वेब पेज क्रोम में चलाना चाहिए और मैं वेब पेज को वीडियो चलाने के लिए समय-समय पर जांचने के लिए निम्न कोड का उपयोग कर रहा हूं ... लेकिन समस्या यह है कि जब मैं तत्व को हटा देता हूं, तब भी मैं ऑडियो सुनता हूं और जब मैं eleemnt, नए वीडियो के ऑडियो और पुराने ओवरलैप को फिर से बनाएं।क्रोम तत्व क्रोम

function showVideo() { 
     var video = videodata; 

     var videobox = $('#videobox').first(); 
     var videoplayer = $('#videoplayer').first(); 

     if (video.Enabled) { 
      if ((videoplayer.length > 0 && videoplayer[0].currentSrc != video.Location) || videoplayer.length == 0) { 
       videobox.empty(); 
       videobox.append('<video id="videoplayer" preload="auto" src="' + video.Location + '" width="100%" height="100%" autoplay="autoplay" loop="loop" />'); 
       videobox.show(); 
      } 
     } else { 
      videobox.hide(); 
      videobox.empty(); // Clear any children. 
     } 
    } 

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

धन्यवाद।

उत्तर

0

मेरे मामले में, मुझे इसे हटाने से पहले वीडियो को पहले रोकना पड़ा अन्यथा ऑडियो अभी भी पृष्ठभूमि में चल रहा है। कारण मैंने रोक दिया क्योंकि HTML5 वीडियो तत्व पर कोई स्टॉप() फ़ंक्शन नहीं है।

 } else { 
     videobox.hide(); 

     // you can add something like this 
     $("#videoplayer").pause(); 

     videobox.empty(); // Clear any children. 
    } 
+0

jQuery

+1

सीधे jQuery के साथ DOM तत्व तक पहुंचने के लिए आपको '$ ('# videoplayer') [0]। रोकें()' करना चाहिए। – Boaz

0

कोशिश (SimpleCode के जवाब के आधार पर):

समारोह showVideo() { वर वीडियो = videodata;

 var videobox = $('#videobox').first(); 
    var videoplayer = $('#videoplayer').first(); 

    if (video.Enabled) { 
     if ((videoplayer.length > 0 && videoplayer[0].currentSrc != video.Location) || videoplayer.length == 0) { 
      videobox.empty(); 
      videobox.append('<video id="videoplayer" preload="auto" src="' + video.Location + '" width="100%" height="100%" loop="loop" />'); 
      videobox.show(); 
      document.getElementById("videoplayer").play(); 
     } 
    } else { 
     document.getElementById("videoplayer").pause(); 
     videobox.hide(); 
     videobox.empty(); // Clear any children. 
    } 
} 
9

मुझे यह काम करने के लिए न्यूनतम जाना था। जब मैं बैक बटन दबाता था तो AJAX अनुरोधों को उत्पन्न करते समय मैं वास्तव में बफर के कारण एक स्टॉल का अनुभव कर रहा था। क्रोम और एंड्रॉइड ब्राउज़र में वीडियो को रोकना इसे बफरिंग रखता है। गैर-एसिंक AJAX अनुरोध बफरिंग को समाप्त करने के लिए प्रतीक्षा कर रहा होगा, जो कभी नहीं होगा।

इसे पहले से सेटहाइड ईवेंट में बाध्य करने से इसे ठीक किया गया है।

$("#SOME_JQM_PAGE").live("pagebeforehide", function(event) 
{ 
      $("video").each(function() 
      { 
       logger.debug("PAUSE VIDEO"); 
       this.pause(); 
       this.src = ""; 
      }); 
}); 

यह पृष्ठ पर प्रत्येक वीडियो टैग को साफ़ करेगा।

1

firsly जावास्क्रिप्ट कोड

<html> 
. 
. 
<video id="main-video" autoplay=""></video> 
. 
. 
</html> 


<script> 
    $('#main-video').append('<source type="video/mp4" src="URL.mp4">'); 
</script>