दिलचस्प पोस्ट
बाश में सबसे हाल ही में एक्स फ़ाइलों को हटा दें आप एक्लिप्स कैसे बढ़ा सकते हैं? एंड्रॉइड – इयरपीस के माध्यम से खेलने के लिए ऑडियो प्राप्त करना appdelegate में प्रारंभिक दृश्य नियंत्रक सेट – तेज c ++ अपवाद: std :: string को फेंकना क्या स्टैक्स या ढेर में संग्रहीत primitives के एक जावा सरणी है? स्ट्रिंग में अक्षरों को कैसे सॉर्ट करना है? अलग Angular2 टाइपस्क्रिप्ट फ़ाइलें और जावास्क्रिप्ट फ़ाइलों को अलग-अलग फ़ोल्डर में, शायद 'dist' इनलाइन शैलियाँ बनाम क्लासेस जावा अपरिवनीय संग्रह प्रत्येक 30 सेकंड में क्रोन चलाना ~ 40 छवियों को लोड करने वाले एनएटी मेमोरी मुद्दे, स्मृति को पुनः प्राप्त नहीं किया जा सकता, संभवतः LOH विखंडन के कारण एंड्रॉइड: क्या वीडियो थंबनेल प्रदर्शित करना संभव है? सी # में एकाधिक वंशानुक्रम कैसे एक सफेद अंतरिक्ष के साथ कई सफेद रिक्त स्थान की जगह

HTML5 वीडियो आयाम

मैं एक वीडियो के आयामों को प्राप्त करने की कोशिश कर रहा हूं, जिसमें मैं जावास्क्रिप्ट के साथ एक पेज पर ओवरले कर रहा हूं, हालांकि यह वास्तविक वीडियो के बजाए पोस्टर की छवि के आयामों को वापस कर रहा है, ऐसा लगता है कि वीडियो लोड होने से पहले इसकी गणना की जा रही है। किसी भी विचार को मैं इसे सुधारने के लिए इस समस्या से कैसे जाना चाहिए?

अग्रिम में बहुत धन्यवाद।

वेब के समाधान से एकत्रित समाधान "HTML5 वीडियो आयाम"

<video id="foo" src="foo.mp4"></video> var vid = document.getElementById("foo"); vid.videoHeight; // returns the intrinsic height of the video vid.videoWidth; // returns the intrinsic width of the video 

युक्ति: https://html.spec.whatwg.org/multipage/embedded-content.html#the-video-element

यह ध्यान दिया जाना चाहिए कि यह समाधान वास्तव में आधुनिक ब्राउज़रों में काम नहीं करता है क्योंकि वीडियो लोड और वीडियोहाइट गुण सेट नहीं किए जाते हैं जब तक कि "लोडेड मेटाडेटा" ईवेंट निकाल नहीं देता।

यदि आप उन गुणों के लिए क्वेरी करना चाहते हैं, जो वीडियो तत्व प्रदान किए जाने के बाद काफी समय से काम कर सकते हैं, लेकिन अधिकांश मामलों में यह दोनों गुणों के लिए 0 के मान वापस करेगा।

यह गारंटी देने के लिए कि आप सही संपत्ति मूल्य प्राप्त कर रहे हैं, जिनकी आपको कुछ की जरुरत है:

 var v = document.getElementById("myVideo"); v.addEventListener( "loadedmetadata", function (e) { var width = this.videoWidth, height = this.videoHeight; }, false ); 

नोट: मैंने इंटरनेट एक्सप्लोरर के 9-पूर्व संस्करणों के लिए लेखांकन को परेशान नहीं किया, जो addEventListener के बजाय attachEvent का उपयोग करते हैं क्योंकि उस ब्राउज़र के पूर्व -9 संस्करण HTML5 वीडियो का समर्थन नहीं करते हैं, वैसे भी।

loadedmetadata इवेंट के लिए सुनो जो प्रेषित होता है जब उपयोगकर्ता एजेंट ने सिर्फ मीडिया संसाधन की अवधि और आयाम निर्धारित किया है

धारा 4.7.10.16 घटना सारांश

https://www.w3.org/TR/html5/embedded-content-0.html#event-media-loadedmetadata

 videoTagRef.addEventListener('loadedmetadata', function(e){ console.log(videoTagRef.videoWidth, videoTagRef.videoHeight); }); 

फ़ंक्शन का उपयोग करने के लिए तैयार

यहां फ़ंक्शन का उपयोग करने के लिए तैयार है, जो दस्तावेज़ में कुछ भी बदल दिए बिना , एक वीडियो के आयाम को अतुलनीय रूप से वापस देता है।

 // ---- Definitions ----- // /** Returns the dimensions of a video asynchrounsly. @param {String} url Url of the video to get dimensions from. @return {Promise} Promise which returns the dimensions of the video in 'width' and 'height' properties. */ function getVideoDimensionsOf(url){ return new Promise(function(resolve){ // create the video element let video = document.createElement('video'); // place a listener on it video.addEventListener( "loadedmetadata", function () { // retrieve dimensions let height = this.videoHeight; let width = this.videoWidth; // send back result resolve({ height : height, width : width }); }, false ); // start download meta-datas video.src = url; }); } // ---- Usation ---- // getVideoDimensionsOf("http://clips.vorwaerts-gmbh.de/VfE_html5.mp4") .then(function(dimensions){ console.log("Video width: " + dimensions.width) ; console.log("Video height: " + dimensions.height) ; });