Alternative to getUserMedia() for reading live camera stream on iOS?
Solution 1
2017 update: Apple just announced that getUserMedia will finally be supported in iOS11.
Aug 2019 update: ONLY works in Safari, not in a WebView of any kind. Thanks @Klathmon for the comment.
Solution 2
The quaggaJS page has a feature compatibility matrix which answers your question:
getusermedia is not supported on iOS safari.
As per the quaggaJS documentation (https://github.com/serratus/quaggaJS#browser-support)
Quagga makes use of many modern Web-APIs which are not implemented by all browsers yet. There are two modes in which Quagga operates:
analyzing static images and
-
using a camera to decode the images from a live-stream. The latter requires the presence of the MediaDevices API. You can track the compatibility of the used Web-APIs for each mode:
- Static Images
- Live Stream
I would suggest that you use static image mode on iOS as live stream mode is not supported.
Comments
-
Brian Mansfield almost 2 years
We are building a mobile barcode-scanner using QuaggaJS that reads barcodes directly from the device's camera stream. Works fine on desktop/Android, but doesn't work at all on iOS.
From initial research, I've found that iOS simply does not support WebRTC/
getUserMedia
through Safari or iOS Chrome (related links below), which is what QuaggaJS uses to read the camera stream.I've also seen this question about capturing a still image on iOS, but the answer provided is only for capturing a still image, not for reading the stream real-time.
My question - is there any other way to grab the stream from an iOS camera? Perhaps an alternate library other than QuaggaJS that does not use
getUserMedia
? I am not well-versed in Javascript, so I am not sure if there even is a possible way to access the camera stream other thangetUserMedia
.A "no" is an acceptable answer here; I'm simply looking for someone more experienced to provide guidance.
Appendix/related links:
navigator.getUserMedia alternative API for iOS safari mobile browser?
https://www.quora.com/Why-is-navigator-getUserMedia-not-supported-in-Safari
-
Tejas Tank almost 7 yearsiOS no upgraded, iphone uesless with browser based growing application. Android doign perfectly great job.
-
manishg almost 7 yearsI didn't get you
-
Tejas Tank almost 7 yearsI mean, iPhone poor for getusermedia.
-
manishg almost 7 yearsGetusermedia is from Webrtc which is heavily backed by google that's why safari isn't supporting the same. May be apple will create its own flavor.
-
Tejas Tank almost 7 yearsYa, apple is slow growing where google is fast adopiting. iPhone hold many issues for no reason.
-
Klathmon over 6 yearsHowever it ONLY works in Safari, not in a WebView of any kind. Don't get most of the way through an implementation only to have to scrap the whole project like I did!