2013-01-25 58 views
8

में परिवर्तन के बाद यहाँ एक स्क्रिप्ट है कि डोम के लिए एक HTML5 वीडियो के लिए मार्कअप जोड़ देता है:HTML5 वीडियो काम नहीं कर रहा डोम

document.body.innerHTML = '<video id="video" controls="controls" src="http://mirror.cessen.com/blender.org/peach/trailer/trailer_iphone.m4v" type="video/mp4"></video>'; 
var el = document.getElementById('video'); 
document.body.removeChild(el); 
document.body.appendChild(el); 

jsfiddle डेमो: http://jsfiddle.net/h8RLS/2/

यह परीक्षण किया सभी ब्राउज़रों में काम करता है , आईओएस पर सफारी को छोड़कर। आईओएस में, जब HTMLVideoElement को DOM में फिर से जोड़ा जाता है, तो यह अब playable नहीं है।

क्या किसी और ने इस समस्या को हल किया है या सामना किया है?

उत्तर

4

मेरे पास आईपैड नहीं है लेकिन आईफोन पर आपकी समस्या का पुनरुत्पादन कर सकता है। यह एक वेबकिट त्रुटि प्रतीत होता है लेकिन वीडियो के src विशेषता को बदलकर इसे आसानी से बाईपास किया जा सकता है - मुझे उम्मीद है कि यह आपके परिदृश्य के लिए पर्याप्त है।

http://vidhtml5.appspot.com/jsembed.html

इस कोड है::

var el = document.getElementById('video'); 
el.src= "http://mirror.cessen.com/blender.org/peach/trailer/trailer_iphone.m4v"; 
el.load(); 
+0

मेरे पास परीक्षण करने के लिए एक आईफोन नहीं है, लेकिन यह मेरी चौथी पीढ़ी के आईपैड पर काम नहीं करता है। Fiddle: http://jsfiddle.net/nHjRR/ –

+0

मेरे पास 4 वां जीन i पैड है, और डेमो लिंक मेरे लिए ठीक काम करता है: http://vidhtml5.appspot.com/jsembed.html – AndroidUser

+0

@AndroidUser डेमो डीएनएन वीडियो को DOM से नहीं हटाएं, इसके बजाय यह केवल 'src' विशेषता को रीसेट करें और' रीलोड() 'कहा जाता है। यह आईपैड पर काम करता है, लेकिन मुझे डर है कि यह डीओएम बदल जाने पर उत्पन्न समस्या को प्रतिबिंबित नहीं करता है। कृपया मेरी [fiddle] (http://jsfiddle.net/nHjRR/) चेकआउट करें जो विंडोज और एंड्रॉइड पर परीक्षण किए गए प्रत्येक ब्राउजर पर काम करता है लेकिन आईपैड पर नहीं। –

-1

आप अपने वीडियो के लिए दो 'स्रोत' टैग शामिल हो सकते तुम एक काम कर डेमो यहाँ देख सकते हैं। मैंने इसे एक साइट पर किया है और यह बहुत अच्छा काम करता है।

<video class="video" controls="controls" id="video1"> 
<source type="video/mp4" src="demo.mp4"> 
<source type="video/webm" src="demo.webm">    
</video> 
+1

इस मुद्दे के साथ कोई लेना देना नहीं है। – Jack

+0

प्रश्न वीडियो को गतिशील रूप से बदलने के बारे में है और प्रारूप स्वरूपित नहीं होने पर फ़ॉलबैक लिंक प्रदान करने के बारे में नहीं है (जो आईपैड पर वेबएम का मामला होगा)। –

0

मैं एक ही समस्या थी, और मैं एक समाधान एक टाइमर (मैं jQuery यहाँ उपयोग कर रहा हूँ) का उपयोग कर पाया।

var v = $('#videoID'); 
v.appendTo($('#toDivID')); 
var timer = setInterval(function() { 
    clearInterval(timer); 
    v[0].load(); 
    v[0].play(); 
}, 200); 

मैंने आईओएस 6.1 पर आईपैड 2 पर इसका परीक्षण किया है।

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

  • कोई संबंधित समस्या नहीं^_^