2013-11-27 10 views
10

मेरे पास मेरे एचटीएमएल के बीच में एक वीडियो है। आप पहली बार में देख सकते हैं मैं किसी भी स्रोत नहीं हैएचटीएमएल 5 वीडियो में वर्तमान समय समस्या

<video id="videoPrincipal" src="" width="640" height="360" controls preload></video> 

जब मैं एक बटन पर क्लिक करें मैं एक समारोह है कि गति प्रदान:

myVid = document.getElementById('videoPrincipal'); 
myVid.src = 'video.mp4'; 
myVid.play(); 
myVid.currentTime ='5'; 

वीडियो सही ढंग से चलना शुरू होता है, लेकिन मैं वर्तमान समय निर्धारित नहीं कर सकते (और मैंने वही बनाया जैसा हम http://www.w3schools.com/tags/av_prop_currenttime.asp में देख सकते हैं)

यह मुझे एक ही त्रुटि देता है अगर मैं प्ले फ़ंक्शन को कॉल करने से पहले वर्तमान समय सेट करता हूं।

त्रुटि जो मुझे कंसोल में दिखाती है वह निम्न है: "Uncaught InvalidStateError: किसी ऑब्जेक्ट का उपयोग करने का प्रयास नहीं किया गया था, या अब उपयोग करने योग्य नहीं है।" (वर्तमान समय रेखा में) लेकिन जब मैं इस समस्या को खोजता हूं तो मैं वीडियो के साथ ही कैनवास के साथ संबद्ध नहीं हो सकता।

अग्रिम धन्यवाद

उत्तर

20

आप खेलना शुरू करने के लिए इंतजार नहीं करना है, लेकिन इसे खेलने के लिए तैयार होना चाहिए। वहाँ ऐसा करने के लिए canplay घटना है, तो कुछ इस तरह काम करना चाहिए:

myVid.play(); 
myVid.addEventListener('canplay', function() { 
    this.currentTime = 5; 
}); 
+0

धन्यवाद, यह मेरी समस्या हल !! – Yises

+0

वह मुझे पागल कर रहा था। यह तय है। धन्यवाद। – JamesNZ

+0

यह बहुत अच्छा है, और वीडियो टैग का समर्थन करने वाले सभी ब्राउज़रों द्वारा कैप्चर किया जाता है। – nycynik

-1

आप जब तक यह खेलने के लिए तैयार है इंतज़ार करना,
यानी play की उम्मीद नहीं है एक अवरुद्ध समारोह होने के लिए
इस प्रकार अपने कोड में परिवर्तित करें:

myVid.play(); 
myVid.media.addEventListener('playing', function(){ 
    myVid.setCurrentTime(5); 
}); 
0
video = document.getElementById('video'); 
begin_play = 50; 
play_video_first = true; //if you want to run only first time  
video.addEventListener("play", capture, false); 

function capture(event) 
{ 
    if (event.type == "play"){ 
     if(play_video_first){ 
      play_video_first = false; 
      video.currentTime = begin_play; 
      } 
    } 
} 
0

जैसा कि ऊपर उल्लेख किया है, आप मौजूदा समय निर्धारित करने के लिए जब वीडियो seekable नहीं है की कोशिश करो। तो, एक वैकल्पिक यूज-केस के रूप में (0 करने के लिए समय रीसेट जब एक बटन पर एक उपयोगकर्ता क्लिक करें, उदाहरण के लिए), आप की तरह कुछ कर सकते हैं: आप भी कोशिश कर सकते हैं

function resetVideo() { 
 
    myVid.pause(); 
 
    
 
    if (video.seekable.length > 0) { 
 
    myVid.currentTime = 0; 
 
    } 
 
}

वैकल्पिक रूप से केवल तभी रीसेट करने के लिए जब वीडियो पहले खेला गया है।

function resetVideo() { 
 
    myVid.pause(); 
 
    
 
    if (video.currentTime !== 0) { 
 
    myVid.currentTime = 0; 
 
    } 
 
}

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