ImagePicker API lets you take photos with the built in UI, BarCodeScanner lets you scan QR codes and other barcodes with camera, but many people need generic camera view that they can build their own UI around, and use to record video in addition to take photos.
This would be a life saver.
So how's this coming along? If this does happen in the next few weeks, I will be switching back to Expo SDK.
@Jason Lei: I don't want to have to leave :-(!
The #2 reason I'll have to detach to Expokit for my current project (and I don't want to, I love Expo!)
+1 this is my no.1 reason to detach, which I really wouldn't want to do..
+1 - Along with everyone else here, I don't want to have to detach because of this.
This one would be a fantastic addition: https://github.com/lwansbrough/react-native-camera
Just started on a project that needs video capture and could really use this!
Any ETA?
We are working on this! We likely won't have anything ready until SDK20 in August, but progress is progress!
@Brent Vatne: Looking forward!
@Brent Vatne: +1 looking forward!
@Brent Vatne: thank you man!
Can not wait!
This is going to be great.
Will this also allow for building a UI around the ImagePicker's image library view, not only the camera view?
@Panagis Alisandratos: you can use the CameraRoll API if you want to do that right now https://facebook.github.io/react-native/docs/cameraroll.html
@Brent Vatne: Yes, but it is limited. You cannot, for instance, retrieve all custom album titles unless you first load all of the device's photos and parse them for the titles (as far as I know). When using Expo's image library, all albums are present and everything loads "instantaneously". However, the system UI does not match the style of the app I am working on. I end up having to do things like switch between a light and dark StatusBar on iOS. Should I create a feature request for this?
@Panagis Alisandratos: yeah that would be great! the more detail you can provide, the better. if you can provide screenshots and/or mockups and even a hypothetical api it would help us a lot
@Brent Vatne: I will do my best to describe the problems I am facing in the request. Thanks Brent!
Yes, I do NOT want to detach, and this is extremely important.
It would be great if you could specify the target height & width before taking a picture with the new camera component, if this is possible.
coming soon

@Brent Vatne: Good job! Cannot wait to see it in SDK20!
@Brent Vatne: Yes! I can move forward with my pet project now! Thanks!
Hey @Brent Vatne will this include video picking from gallery?
@Lex Veritasov: nope that is a separate thing
@Brent Vatne Just to make sure - this feature request *does* include being able to preview and record video with the Camera component, yes? (Because that's not in right now (that I can tell from the docs at least).) But it does not include anything relating to choosing existing images and videos from the "camera roll", etc., which is located in ImagePicker and should be (or is) a different feature request.
Correct?
@Alex Russell: correct -- video recording is still in progress. ImagePicker is to use the system ui for camera roll (launchImageLibraryAsync), or to use the system chrome for the camera (launchCameraAsync)
@Brent Vatne: Excellent - video live preview + recording is the feature I am waiting on, so just checking that I am following the right request.
the camera example in documentation is broken.
@Greg B: hi there! I believe we discussed this on twitter, and the problem was that it did not work on oneplus 5 phone. we found that oneplus phones aren't working so well with camera in some situations and are investigating
@Brent Vatne: yes! Sorry tried the forums before our Twitter chat. Thanks again for the help.
can you add options to takePictureAsync to request base64 string data of the image, because my API request only accept base64 instead of multipart data
I see this check-in, looks very promising, looking forward for sdk21 :)
Camera - video recording (#1002) - https://github.com/expo/expo/commit/4b4b44a53d32e13d6bbdeade71e3ecacaddbe0e4
@Wei Zhang: Oooh this is exciting!
This is great, but it would be fantastic to have the BarCodeScanner built into this new Camera component, similar to how react-native-camera works. Our use case is to scan a barcode and take a photo of the document which is currently two steps. Having that as a single screen would be fantastic.
I see that the live preview video recorder is now in and working in SDK 21. However, we now have DocumentPicker for general docs, ImagePicker for "camera roll" image picking, but I can't seem to find a way to have video picking from the "camera roll". Am I missing something or is that the last piece of this puzzle?
you can take photos and record videos with the Camera api now: https://docs.expo.io/versions/latest/sdk/camera.html
@Brent Vatne: Any idea about my comment from earlier today regarding picking videos from the device's library, though? I'm happy to submit as a new request if it is missing, I just don't want to do so if it *is* in but I just don't know how to do it.
@Alex Russell: hey alex, you would need to 'roll your own' imagepicker ui and get the videos by using the CameraRoll api, CameraRoll.getPhotos (unfortunately named, should probably be named getMedia) lets you filter videos: https://facebook.github.io/react-native/docs/cameraroll.html
@Brent Vatne: Good point. So, just to check, there's no plan right now to create an ImagePicker-like thing for videos?
@Brent Vatne: Looking into this I can't see a way to do this without ejecting - using CameraRoll.getPhotos() the URIs returned are in the format assets-library://asset/asset.MOV?id=[MEDIA_UUID]&ext=MOV which Expo's FileSystem API won't use as a copy source or allow me to readAsStringAsync. Using a 3rd party library react-native-mediapicker has the same issue (the photos are in the assets-library format), and finally using the RN ImagePickerIOS allows me to select videos, and even does some kind of conversion for the application (including pparently copying it to the application's own storage area), but the URIs it generates are still not supported by Expo's FileSystem module: file:///private/var/mobile/Containers/Data/Application/[APPLICATION_UUID]/tmp/[MEDIA_UUID].MOV. As far as I can see, Expo's FileSystem can only handle Expo cache and document storage which are prefixed at file:///var/mobile/Containers/Data/Application/[APPLICATION_UUID]/Library/Caches/ExponentExperienceData/[EXPO_APP_ID]/ and file:///var/mobile/Containers/Data/Application/[APPLICATION_UUID]/Documents/ExponentExperienceData/[EXPO_APP_ID]/ respectively. The Expo ImagePicker component appears to create a copy of the selected image in the Expo cache storage, which means I can copy, move and read the file as I wish.
@Alex Russell: thanks so much for the detailed info alex, I passed this on to nikki, who works on filesystem api. can you post about these filesystem limitations in the expo/expo github issues? https://github.com/expo/expo/issues
video recording would be big. Lots of projects are looking to have some kind of live video streaming (periscope) or conferencing (skype-ish)