diff --git a/README.md b/README.md index 4940e24e..32cbd94e 100644 --- a/README.md +++ b/README.md @@ -61,7 +61,7 @@ CameraKit is an easy to use utility to work with the Android Camera APIs. Everyt - `CameraUtils` to help with Bitmaps and orientations - EXIF support - Automatically detected orientation tag - - Plug in location tags with `CameraView.setLocation(double, double)` + - Plug in location tags with `CameraView.setLocation(double, double)` to pictures and videos - Control the camera parameters via XML or programmatically ## Setup @@ -215,6 +215,7 @@ This means that part of the preview is hidden, and the image output will contain android:id="@+id/camera" android:layout_width="match_parent" android:layout_height="wrap_content" + android:keepScreenOn="true" app:cameraFacing="back" app:cameraFlash="off" app:cameraFocus="continuous" @@ -245,8 +246,9 @@ This means that part of the preview is hidden, and the image output will contain What to capture - either picture or video. This has a couple of consequences: -- Sizing: capture and preview size are chosen among the available picture or video sizes, depending on the flag -- Picture capturing: **you can capture pictures during a `video` session**, though they will be captured as 'screenshots' of preview frames. This is fast and thus works well with slower camera sensors, but the captured image can be blurry or noisy. +- Sizing: capture and preview size are chosen among the available picture or video sizes, depending on the flag. When `picture`, we choose the max possible picture size and adapt the preview. When `video`, we respect the `videoQuality` choice and adapt the picture and the preview size. +- Picture capturing: due to sizing behavior, capturing pictures in `video` mode might lead to inconsistent results. In this case it is encouraged to use `captureSnapshot` instead, which will capture preview frames. This is fast and thus works well with slower camera sensors. +- Picture capturing: while recording a video, image capturing might work, but it is not guaranteed (it's device dependent) - Permission behavior: when requesting a `video` session, the record audio permission will be requested. If this is needed, the audio permission should be added to your manifest or the app will crash. ```java @@ -390,17 +392,15 @@ If you don't request this feature, you can use `CameraUtils.hasCameras()` to det These are things that need to be done, off the top of my head: -- [ ] fix CropOutput class presumably not working on rotated pictures -- [ ] test video and 'frame' capture behavior, I expect some bugs there +- [x] fix CropOutput class presumably not working on rotated pictures +- [x] test video and 'frame' capture behavior, I expect some bugs there - [ ] simple APIs to draw grid lines - [x] replace setCameraListener() with addCameraListener() - [ ] add a `sizingMethod` API to choose the capture size? Could be `max`, `4:3`, `16:9`... Right now it's `max` - [ ] pinch to zoom support - [ ] exposure correction APIs -- [ ] revisit demo app (added video support) - [ ] `Camera2` integration -- [ ] EXIF support for 'frame' captured pictures, using ExifInterface library, so we can stop rotating it in Java - [ ] add onRequestPermissionResults for easy permission callback -- [ ] better error handling, maybe with a onError(e) method in the public listener +- [ ] better error handling, maybe with a onError(e) method in the public listener, or have each public method return a boolean - [x] better threading, for example ensure callbacks are called in the ui thread