दिलचस्प पोस्ट
नाम के साथ FirebaseApp मौजूद नहीं है गोलांग में विशेष उपसर्ग या प्रत्यय के साथ सभी कार्यों को कॉल करें HTML नेस्टेड सूची बनाने का उचित तरीका है? रूबी, एक्सेल, सिस्टम और% x () या बैकटीक्स के बीच का अंतर क्यों एक वेब ब्राउज़र में PHP स्क्रिप्ट workig नहीं है? इनपुट प्रकार = "फ़ाइल" पर कर्सर प्रकार बदलें गिट का दोष: आंकड़े गतिशील रूप से बनाए गए तत्वों पर डेटपाकर () डालकर – JQuery / JQueryUI एंड्रॉइड फोन में कष्टप्रद संवाद के बिना मैं वाक् पहचान कैसे उपयोग कर सकता हूं एंड्रॉइड कैमरा काम नहीं करेगा startPreview विफल रहता है सूची <T> पर कैसे पुनरावृत्त करें और JSF Facelets में प्रत्येक आइटम को प्रस्तुत करें सी मिनेसेशल पाइपलाइन जोड़ना TypeError: 'str' बफ़र इंटरफ़ेस का समर्थन नहीं करता मैं अजगर में एक सूची को कैसे उलटा सकता हूं? अजीब जावा व्यवहार के साथ आदिम प्रकार के लिए डाले

GetUserMedia – फ़ेमिंगमोड

मैं वर्तमान में एक एंड्रॉइड टैबलेट और GetUserMedia का उपयोग कर रहा हूं ताकि मेरे कार्यक्रम में तस्वीरें ले सकें।

जाहिर है, GetUserMedia द्वारा उपयोग किया गया डिफ़ॉल्ट कैमरा फ्रंट कैमरा है। मैं पिछली कैमरे का उपयोग डिफ़ॉल्ट रूप में कैसे करूं?

GetUserMedia के लिए यहां मेरा कोड है:

navigator.getUserMedia({ "audio": false, "video": { mandatory: { minWidth: this.params.dest_width, minHeight: this.params.dest_height, //facingMode: "environment", }, } }, function(stream) { // got access, attach stream to video video.src = window.URL.createObjectURL( stream ) || stream; Webcam.stream = stream; Webcam.loaded = true; Webcam.live = true; Webcam.dispatch('load'); Webcam.dispatch('live'); Webcam.flip(); }, function(err) { return self.dispatch('error', "Could not access webcam."); }); 

मैंने "अनिवार्य" भाग में सामना करना पड़ता है, लेकिन काम नहीं किया।

कृपया मदद करे।

वेब के समाधान से एकत्रित समाधान "GetUserMedia – फ़ेमिंगमोड"

अपडेट: facingMode माध्यम से एंड्रॉइड के लिए क्रोम में facingMode उपलब्ध है!

facingMode लिए क्रोम में facingMode को अभी तक लागू नहीं किया गया है , लेकिन एंड्रॉइड के लिए फ़ायरफ़ॉक्स में facingMode काम करता है।

आपको हालांकि मानक बाधाओं का उपयोग करना चाहिए: (क्रोम के लिए https बेला का उपयोग करें ):

 var gum = mode => navigator.mediaDevices.getUserMedia({video: {facingMode: {exact: mode}}}) .then(stream => (video.srcObject = stream)) .catch(e => log(e)); var stop = () => video.srcObject && video.srcObject.getTracks().forEach(t => t.stop()); var log = msg => div.innerHTML += msg + "<br>"; 
 <button onclick="stop();gum('user')">Front</button> <button onclick="stop();gum('environment')">Back</button> <div id="div"></div><br> <video id="video" height="320" autoplay></video> <script src="https://webrtc.github.io/adapter/adapter-latest.js"></script> 

कोर्डोवा के माध्यम से एंड्रॉइड पर हमारे वेब ऐप को परिनियोजित करने के बाद, मैंने रियर कैमरा तक पहुंचने के लिए कई समाधान किए। मेरे लिए काम करने वाला समाधान यह था:

 constraints = { audio: false, video: { width: 400, height: 300, deviceId: deviceId ? {exact: deviceId} : undefined } }; 

DeviceId को पुनः प्राप्त कर रहा है:

 navigator.mediaDevices.enumerateDevices() .then(function(devices) { // devices is an array of accessible audio and video inputs. deviceId is the property I used to switch cameras }) .catch(function(err) { console.log(err.name + ": " + error.message); }); 

मैंने कॉर्डोवा प्लगइन का उपयोग नहीं करने का फैसला किया है, ताकि अगर हम कॉर्डोवा से दूर जाने का विकल्प चुनते हैं, तो ऐसे मोटी प्रवास नहीं होंगे।

पीटर का कोड ( https://stackoverflow.com/a/41618462/7723861 ) का उपयोग करते हुए मैं रियर कैमरा प्राप्त करने के लिए इस समाधान के साथ आया था:

 function handleSuccess(stream) { window.stream = stream; // make stream available to browser console video.srcObject = stream; } function handleError(error) { console.log('navigator.getUserMedia error: ', error); } var DEVICES = []; var final = null; navigator.mediaDevices.enumerateDevices() .then(function(devices) { var arrayLength = devices.length; for (var i = 0; i < arrayLength; i++) { var tempDevice = devices[i]; //FOR EACH DEVICE, PUSH TO DEVICES LIST THOSE OF KIND VIDEOINPUT (cameras) //AND IF THE CAMERA HAS THE RIGHT FACEMODE ASSING IT TO "final" if (tempDevice.kind == "videoinput") { DEVICES.push(tempDevice); if(tempDevice.facingMode == "environment" ||tempDevice.label.indexOf("facing back")>=0 ) {final = tempDevice;} } } var totalCameras = DEVICES.length; //If couldnt find a suitable camera, pick the last one... you can change to what works for you if(final == null) { //console.log("no suitable camera, getting the last one"); final = DEVICES[totalCameras-1]; }; //Set the constraints and call getUserMedia var constraints = { audio: false, video: { deviceId: {exact: final.deviceId} } }; navigator.mediaDevices.getUserMedia(constraints). then(handleSuccess).catch(handleError); }) .catch(function(err) { console.log(err.name + ": " + err.message); }); 

क्रोम के नए संस्करण में (v52 के बाद) adaper.js समाधान काम नहीं करते। इसलिए मैं पहली बार डिवाइस को एन्यूमरिंग करके समस्या को हल करता हूं। यहाँ मेरा समाधान है मुझे यकीन नहीं है कि कैमरे को फ्लिप करने और स्क्रीन पर वीडियो दिखाने का एक बेहतर तरीका है। लेकिन मुझे पहले ट्रैक को रोकना होगा और एक नया स्ट्रीम प्राप्त करना होगा।

 let Video = function() { let cameras = []; let currCameraIndex = 0; let constraints = { audio: true, video: { deviceId: { exact: "" } } }; let videoCanvas = $('video#gum'); this.initialize = function() { return enumerateDevices() .then(startVideo); }; this.flipCamera = function() { currCameraIndex += 1; if (currCameraIndex >= cameras.length) { currCameraIndex = 0; } if (window.stream) { window.stream.getVideoTracks()[0].stop(); } return startVideo(); }; function enumerateDevices() { return navigator.mediaDevices.enumerateDevices() .then(function(devices) { devices.forEach(function(device) { console.log(device); if (device.kind === "videoinput") { cameras.push(device.deviceId); } }); console.log(cameras); }); } function startVideo() { constraints.video.deviceId.exact = cameras[currCameraIndex]; return navigator.mediaDevices.getUserMedia(constraints) .then(handleSuccess).catch(handleError); } function handleSuccess(stream) { videoCanvas[0].srcObject = stream; window.stream = stream; } function handleError(error) { alert(error); } }; 

आप उपयोग कर सकते हैं एक सुंदर बांका स्निपेट है:

 var front = false; document.getElementById('flip-button').onclick = function() { front =` !front; }; var constraints = { video: { facingMode: (front? "user" : "environment") } }; 

उम्मीद है कि यह आपके लिए काम करना चाहिए।