|
|
|
---
|
|
|
|
layout: page
|
|
|
|
title: "Error Handling"
|
|
|
|
category: docs
|
Improve realtime filters (#535)
* Simplify Filters class
* Simplify filter switching in demo app
* Create FilterCameraPreview, improve GlCameraPreview
* Add comments
* Cleanup EglViewport
* Rename setPreviewingViewSize
* Create Filter interface and BaseFilter abstract class
* Move GL drawing code into BaseFilter
* Avoid releasing location pointers
* Add more docs and Filter.copy()
* Split two packages
* Remove filters package from code coverage computation
* Document all filters, implement onCopy, suppress warnings
* Add javadocs in Filters class
* Move NoFilter, add string resources
* XML support, require experimental flag
* Update first 6 filters with onPreDraw
* Update DuotoneFilter with onPreDraw
* Update FillLightFilter with onPreDraw
* Update Gamma, Grain, Grayscale, Hue, InvertColors, Lomoish with onPreDraw
* Update Posterize, Saturation, Sepia with onPreDraw
* Update all filters with onPreDraw
* Add OneParameterFilter and TwoParameterFilter
* Implement OneParameterFilter and TwoParameterFilter in all filters
* Improve comments
* Remove commented out code in demo
* Add FilterParser test
* Add GlCameraPreview and CameraView tests
* Add documentation
* Fix tests
5 years ago
|
|
|
order: 13
|
|
|
|
date: 2018-12-20 20:02:31
|
|
|
|
disqus: 1
|
|
|
|
---
|
|
|
|
|
|
|
|
Errors are posted to the registered `CameraListener`s callback:
|
|
|
|
|
|
|
|
```java
|
|
|
|
@Override
|
|
|
|
public void onCameraError(CameraException error) {
|
|
|
|
// Got error!
|
|
|
|
};
|
|
|
|
```
|
|
|
|
|
|
|
|
You are supposed to inspect the `CameraException` object as it contains useful information about
|
|
|
|
what happened and what should be done, if anything. All things that fail can end up throwing this
|
|
|
|
exception, which includes temporary actions like taking a picture, or functional actions like
|
|
|
|
starting the camera preview.
|
|
|
|
|
|
|
|
### Unrecoverable errors
|
|
|
|
|
|
|
|
You can exclude unrecoverable errors using `CameraException.isUnrecoverable()`.
|
|
|
|
If this function returns true, at this point the camera has been released and it is likely showing
|
|
|
|
a black preview. The operation can't go on.
|
|
|
|
|
|
|
|
You can try to call `camera.start()` again, but that's not guaranteed to work. For example, the
|
|
|
|
camera sensor might be in use by another application, so there's nothing we could do.
|
|
|
|
|
|
|
|
### Other errors
|
|
|
|
|
|
|
|
For more fine grained control over what happened, inspect the reason using `CameraException.getReason()`.
|
|
|
|
This will return one of the `CameraException.REASON_` constants:
|
|
|
|
|
|
|
|
|Constant|Description|Unrecoverable|
|
|
|
|
|--------|-----------|-------------|
|
|
|
|
|`REASON_UNKNOWN`|Unknown error. No other info available.|No|
|
|
|
|
|`REASON_FAILED_TO_CONNECT`|Failed to connect to the camera service.|Yes|
|
|
|
|
|`REASON_FAILED_TO_START_PREVIEW`|Failed to start the camera preview.|Yes|
|
|
|
|
|`REASON_DISCONNECTED`|Camera was forced to disconnect by the system.|Yes|
|
|
|
|
|`REASON_PICTURE_FAILED`|Could not take a picture or picture snapshot.|No|
|
|
|
|
|`REASON_VIDEO_FAILED`|Could not take a video or video snapshot.|No|
|
|
|
|
|`REASON_NO_CAMERA`|Could not find a camera for this `Facing` value. You can try another.|No|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|