दिलचस्प पोस्ट
फ्लास्क दृश्य से JSON प्रतिक्रिया वापस एप्लिकेशन के इस संस्करण को Google Play के माध्यम से बिलिंग के लिए कॉन्फ़िगर नहीं किया गया है एंड्रॉइड गतिविधि क्लास नॉटफॉइड अपवाद – सब कुछ का प्रयास किया किसी फ़ंक्शन में डेटा.फ्रेम स्तंभ नाम दें आप एक विंडोज़ फार्म (सी #) पर एनिमेटेड जीआईएफ कैसे दिखाते हैं मैं JFreeChart के आकार को कैसे बदलूं? त्रिज्या और किनारों के आसपास के बिंदु के साथ एक चक्र बनाएं आर में असाइनमेंट ऑपरेटर: '=' और '<-' सुडो एको "कुछ" >> / etc / विशेषाधिकारितफ़ाइल काम नहीं कर रहा है … क्या कोई विकल्प है? क्यों System.gc () कॉल करने के लिए खराब अभ्यास है? क्या करता है (फ़ंक्शन ($) {}) (jQuery); क्या मतलब है? इसे जेफ्री चार्ट के स्वरूप को देखने के बाद कैसे अपडेट किया जा सकता है? वास्तव में कैसे काम करता है fread? Os.system के आउटपुट को एक चर में निर्दिष्ट करें और इसे स्क्रीन पर प्रदर्शित होने से रोकें IPhone पर एक 3D मॉडल प्रदर्शित करना चाहते हैं: आरंभ करने के लिए कैसे?

एंड्रॉइड पर HTML5 <video> तत्व

इसके अनुसार:

http://developer.android.com/sdk/android-2.0-highlights.html

Android 2.0 को HTML5 वीडियो तत्व का समर्थन करना चाहिए मैं इसे मोटोरोला डॉरोड का उपयोग करने में कामयाब नहीं कर पाया, और वहां से बाहर के किसी भी HTML5 वीडियो उदाहरण पृष्ठों पर एक वीडियो को सफलतापूर्वक देखने में सक्षम नहीं हुआ है। चूंकि वर्तमान में क्विकटाइम या फ्लैश के लिए समर्थन नहीं है, इसलिए यह एकमात्र अन्य चीज है जो मैं एक वेब पेज में एमपी 4 वीडियो एम्बेड करने के लिए सोच सकता हूं। क्या किसी के पास इस के साथ कोई भाग्य था?

वेब के समाधान से एकत्रित समाधान "एंड्रॉइड पर HTML5 <video> तत्व"

मैंने इसके साथ कुछ प्रयोग किया है, और मैं आपको बता सकता हूं कि तीन चीजों की ज़रूरत है:

  1. वीडियो को कॉल करते समय आपको टाइप विशेषता का उपयोग नहीं करना चाहिए।
  2. आपको मैन्युअल रूप से वीडियो कॉल करना होगा। Play ()
  3. वीडियो को कुछ बहुत सख्त मापदंडों में एन्कोड किया जाना चाहिए; 'वेब अनुकूलित' बटन के साथ हैंडब्रैक पर आईफोन सेटिंग का इस्तेमाल करते हुए आम तौर पर चाल की जांच होती है

इस पृष्ठ पर डेमो को देखें: http://broken-links.com/tests/video/

यह काम करता है, AFAIK, सभी वीडियो-सक्षम डेस्कटॉप ब्राउज़र, iPhone और Android में।

यहां मार्कअप है:

<video id="video" autobuffer height="240" width="360"> <source src="BigBuck.m4v"> <source src="BigBuck.webm" type="video/webm"> <source src="BigBuck.theora.ogv" type="video/ogg"> </video> 

और मुझे जेएस में है:

 var video = document.getElementById('video'); video.addEventListener('click',function(){ video.play(); },false); 

मैंने इसे सैमसंग गैलेक्सी एस पर परीक्षण किया और यह ठीक काम करता है।

रोमन का जवाब मेरे लिए ठीक काम किया – या कम से कम, उसने मुझे दिया जो मुझे उम्मीद थी फोन के मूल अनुप्रयोग में वीडियो को खोलना वही है जो आईफोन करता है।

यह संभवतः आपके दृष्टिकोण को समायोजित करने के योग्य है और वीडियो को अपने स्वयं के अनुप्रयोग में पूर्णस्क्रीन खेला जाने की उम्मीद है, और उसके लिए कोडिंग यह निराशाजनक है कि वीडियो पर क्लिक करने से इसे आईफोन के रूप में खेलने के लिए पर्याप्त नहीं है, लेकिन यह देखने के लिए कि इसे शुरू करने के लिए केवल एक onclick विशेषता है, यह दुनिया का अंत नहीं है

मेरी सलाह, एफडब्ल्यूआईडब्ल्यू, एक पोस्टर छवि का उपयोग करना है, और यह स्पष्ट कर लेती है कि यह वीडियो चलाएगा। मैं फिलहाल एक प्रोजेक्ट पर काम कर रहा हूं जो ठीक उसी तरह से करता है, और क्लाइंट इसके साथ खुश हैं – और यह भी कि वे वेब ऐप का एंड्रॉइड वर्जन मुफ्त में ले रहे हैं, बिल्कुल, क्योंकि अनुबंध केवल एक के लिए है आईफोन वेब एप

सिर्फ उदाहरण के लिए, एक काम कर रहे एंड्रॉइड वीडियो टैग नीचे है। अच्छा और सरल

 <video src="video/placeholder.m4v" poster="video/placeholder.jpg" onclick="this.play();"/> 

यहां मैं इसमें शामिल है कि कैसे मेरे एक मित्र ने नेक्सस वन में एचटीएमएल में वीडियो प्रदर्शित करने की समस्या का हल किया:

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

जावास्क्रिप्ट के माध्यम से कॉल करने योग्य एचटीएमएल के लिए देशी कोड को लागू करें:

 JavaScriptInterface jsInterface = new JavaScriptInterface(this); webView.getSettings().setJavaScriptEnabled(true); webView.addJavascriptInterface(jsInterface, "JSInterface"); 

कोड में खुद को एक ऐसा कार्यक्रम था, जिसे वीडियो चलाने के लिए मूल गतिविधि कहा जाता है:

 public class JavaScriptInterface { private Activity activity; public JavaScriptInterface(Activity activiy) { this.activity = activiy; } public void startVideo(String videoAddress){ Intent intent = new Intent(Intent.ACTION_VIEW); intent.setDataAndType(Uri.parse(videoAddress), "video/3gpp"); // The Mime type can actually be determined from the file activity.startActivity(intent); } } 

फिर खुद एचटीएमएल में उन्होंने वीडियो टैग को वीडियो गेम चलाने में असफल रहने पर रोक दिया। इस प्रकार, आखिरकार उन्होंने वीडियो के onclick इवेंट को ओवरराइट करने का निर्णय लिया, जिससे यह वास्तविक गेम बना। यह लगभग उसके लिए काम किया था – बिना कोई पोस्टर प्रदर्शित किया गया था। यहां सबसे अजीब भाग आता है – वह ERROR/AndroidRuntime(7391): java.lang.RuntimeException: Null or empty value for header "Host" प्राप्त करने पर रखा था ERROR/AndroidRuntime(7391): java.lang.RuntimeException: Null or empty value for header "Host" जब भी वह टैग की poster विशेषता सेट करते हैं तो ERROR/AndroidRuntime(7391): java.lang.RuntimeException: Null or empty value for header "Host" । आखिरकार वह इस मुद्दे को मिला, जो बहुत ही अजीब था – यह पता चला कि उसने video टैग में source सबटाग रखा था, लेकिन इसका इस्तेमाल कभी नहीं हुआ। और अजीब पर्याप्त है, वास्तव में यह समस्या पैदा कर रहा था। अब video अनुभाग की उसकी परिभाषा देखें:

 <video width="320" height="240" controls="controls" poster='poster.gif' onclick="playVideo('file:///sdcard/test.3gp');" > Your browser does not support the video tag. </video> 

निश्चित रूप से आपको पृष्ठ के मुखिया में जावास्क्रिप्ट समारोह की परिभाषा भी जोड़नी होगी:

 <script> function playVideo(video){ window.JSInterface.startVideo(video); } </script> 

मुझे पता है कि यह केवल HTML समाधान नहीं है, लेकिन सबसे अच्छा हम नेक्सस के एक प्रकार के फोन के लिए कर सकते हैं। इस समाधान के लिए सभी क्रेडिट दिमितर झ्लाटकोव दिमित्रोव में जाते हैं।

अगर आप मैन्युअल रूप से वीडियो कॉल video.play() इसे काम करना चाहिए:

 <!DOCTYPE html> <html> <head> <script> function init() { enableVideoClicks(); } function enableVideoClicks() { var videos = document.getElementsByTagName('video') || []; for (var i = 0; i < videos.length; i++) { // TODO: use attachEvent in IE videos[i].addEventListener('click', function(videoNode) { return function() { videoNode.play(); }; }(videos[i])); } } </script> </head> <body onload="init()"> <video src="sample.mp4" width="400" height="300" controls></video> ... </body> </html> 

मेरे एंड्रॉइड 2.2 ब्राउज़र को html5test.com की ओर इशारा करते हुए, मुझे बताता है कि वीडियो तत्व समर्थित है, लेकिन सूचीबद्ध वीडियो कोडेक में से कोई भी नहीं … वीडियो तत्व का समर्थन करने के लिए थोड़ा सा व्यर्थ है, लेकिन कोई कोडेक नहीं है ??? जब तक कि उस परीक्षण पृष्ठ में कुछ गलत न हो

हालांकि, मुझे ऑडियो तत्व के साथ समान स्थिति मिली: तत्व समर्थित है, लेकिन कोई ऑडियो प्रारूप नहीं है यहाँ देखें:

http://textopiablog.wordpress.com/2010/06/25/browser-support-for-html5-audio/

मेरे लिए कुछ भी काम नहीं हुआ जब तक कि मैं वीडियो को ठीक से एन्कोड नहीं करता। सही हैंडब्रेक सेटिंग्स के लिए इस गाइड की कोशिश करें: http://forum.handbrake.fr/viewtopic.php?f=7&t=9694

शायद आपको उपकरण के लिए विशेष रूप से वीडियो को सांकेतिक शब्दों में बदलना होगा:

 <video id="movie" width="320" height="240" autobuffer controls> <source src="pr6.ogv" type='video/ogg; codecs="theora, vorbis"'> <source src="pr6.mp4" type='video/mp4; codecs="avc1.42E01E, mp4a.40.2"'> <source src="pr6.mp4" type='video/mp4; codecs="some droid video codec, some droid audio codec"'> </video> 

एन्कोडिंग कॉन्फ़िगरेशन के कुछ उदाहरण हैं जो यहां पर कार्यरत हैं:

https://supportforums.motorola.com

एक एमपी 4 कंटेनर में h.264 कोशिश करें। मेरे पास इसके साथ अपने Droid X पर बहुत सफलता मिली है। मैं प्रारूप रूपांतरणों के लिए zencoder.com का उपयोग कर रहा हूं।

यह मेरे लिए काम करता है:

 <video id="video-example" width="256" height="177" poster="image.jpg"> <source src="video/video.mp4" type="video/mp4"></source> <source src="video/video.ogg" type="video/ogg"></source> This browser does not support HTML5 </video> 

केवल जब .Mmp4 शीर्ष पर है और वीडियोफ़ाइल बड़ा नहीं है।

यह काम करने वाला है, लेकिन संकल्प देखें: एंड्रॉइड 2.0 और वेबकिट

कैनवास बॉक्स के ठीक बाहर काम करता है, जबकि जियोलोकेशन इम्यूलेटर में बिल्कुल काम नहीं करता है। बेशक, मुझे इसे काम करने के लिए नकली स्थानों को भेजना है, इसलिए मुझे नहीं पता कि यह वास्तविक फोन पर कैसा होगा। मैं वीडियो टैग के साथ एक ही बात कह सकता हूँ इसमें वास्तव में वीडियो नहीं खेल रहे हैं, लेकिन मुझे लगता है कि यह सच है कि वीडियो एमुलेटर की तुलना में एक उच्च संकल्प है। एक बार जब कोई मोटोरोला डॉरोड या अन्य अगली पीढ़ी के एंड्रॉइड डिवाइस पर कोशिश करता है तो हम और अधिक जान लेंगे

यह आपके प्रश्न का बिल्कुल जवाब नहीं दे सकता है, लेकिन हम 3GP या 3GP2 फ़ाइल प्रारूप का उपयोग कर रहे हैं। आरटीएसपी प्रोटोकॉल का उपयोग करने के लिए बेहतर है, लेकिन एंड्रॉइड ब्राउजर भी 3 जीपी फ़ाइल प्रारूप को पहचानेंगे।

आप ऐसा कुछ इस्तेमाल कर सकते हैं

 self.location = URL_OF_YOUR_3GP_FILE 

वीडियो प्लेयर ट्रिगर करने के लिए फ़ाइल स्ट्रीम की जाएगी और प्लेबैक समाप्त होने के बाद, हैंडलिंग को ब्राउज़र में लौटा दिया जाएगा।

मेरे लिए यह एंड्रॉइड डिवाइस पर मौजूदा वीडियो टैग कार्यान्वयन के साथ कई समस्याएं हल करता है।

अधिक शोध के बाद, कई अलग-अलग डिवाइसों में, अब तक, मैं साधारण निष्कर्ष पर पहुंचा हूं कि MP4 प्रारूप MOV प्रारूप से बहुत कम समर्थित है। इसलिए, मैं MOV प्रारूप का उपयोग कर रहा हूं, जो सभी ब्राउज़रों पर सभी एंड्रॉइड और एप्पल डिवाइसों द्वारा समर्थित है। मैंने मौसम का पता लगाया है कि डिवाइस मोबाइल डिवाइस या डेस्कटॉप ब्राउज़र है, और इसके अनुसार SRC सेट करें:

 if (IsMobile()) { $('#vid').attr('src', '/uploads/' + name + '.mov'); } else { $('#vid').attr('src', '/uploads/' + name + '.webm'); } function IsMobile() { var isMobile = false; //initiate as false if (/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|ipad|iris|kindle|Android|Silk|lge |maemo|midp|mmp|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows (ce|phone)|xda|xiino/i.test(navigator.userAgent) || /1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[aw])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i.test(navigator.userAgent.substr(0, 4))) isMobile = true; return isMobile; } 

के अनुसार: https://stackoverflow.com/a/24403519/365229

यह सादे जावास्क्रिप्ट के साथ काम करना चाहिए:

 var myVideo = document.getElementById('myVideoTag'); myVideo.play(); if (typeof(myVideo.webkitEnterFullscreen) != "undefined") { // This is for Android Stock. myVideo.webkitEnterFullscreen(); } else if (typeof(myVideo.webkitRequestFullscreen) != "undefined") { // This is for Chrome. myVideo.webkitRequestFullscreen(); } else if (typeof(myVideo.mozRequestFullScreen) != "undefined") { myVideo.mozRequestFullScreen(); } 

आपको फ़ुलस्क्रीन निर्देश के पहले प्ले () ट्रिगर करना होगा, अन्यथा एंड्रॉइड ब्राउज़र में यह पूरी तरह से स्क्रीन पर जाएगा लेकिन यह खेलना शुरू नहीं करेगा। Android ब्राउज़र, क्रोम, सफारी के नवीनतम संस्करण के साथ परीक्षण किया गया

मैंने इसे एंड्रॉइड 2.3.3 और 4.4 ब्राउज़र पर परीक्षण किया है।

HTML5 (एंड्रॉइड) दोनों फोन जैसे गैलेक्सी एस, और आईफोन पर समर्थित है। आईफ़ोन हालांकि फ्लैश का समर्थन नहीं करता है, जो Google फोन का समर्थन करता है