Copy link to clipboard
Copied
Hi,
I've had this bug for a very long time (across multiple SDK's). I have an app that uses the camera, but every 10-20th time I do it, I get a Stream Error and sometimes (not always) the program crashes after that. I get to the camera UI and I can take a picture, and when I get back to my app (and I try to load the media promise), it fails to do so. I have seen this behaviour on iOS, but I'm not sure if it happens on Android as well. I remember at some point I had some problems with the camera sending multiple COMPLETE-events, so maybe that is related somehow.
I have compared my code to sample code, and it seems like I do it in the same way. Does anyone else have this problem?
The following is some snippets of the code I'm using (I have ommitted some of the less important parts):
private function launchCameraUI():void { | |
if (cameraOpen) | |
return; | |
var cameraUI:CameraUI = new CameraUI(); | |
addCameraListeners(cameraUI); | |
cameraOpen = true; | |
cameraUI.launch(MediaType.IMAGE); | |
} |
/////////////////////////////////////////////////////////////////////////////////////////////////////
private function onCameraUIComplete(e:MediaEvent):void { | |
cameraOpen = false; | |
try { | |
var cameraUI:CameraUI = e.target as CameraUI; | |
removeCameraListeners(cameraUI); | |
mediaPromise = e.data; | |
dataSource = mediaPromise.open(); | |
if (mediaPromise.isAsync) { | |
var eventSource:IEventDispatcher = dataSource as IEventDispatcher; | |
eventSource.addEventListener(Event.COMPLETE, onMediaLoaded); | |
} | |
else { | |
readMediaData(); | |
} | |
} | |
catch (e:Error) { | |
App.i.reportError("onCameraUIComplete", e.getStackTrace(), e.message); | |
App.i.openMessageBox(Language.current.getText("Error") + " (2)", Language.current.getText("info program error"), Language.current.getText("Ok") ); | |
} | |
} |
/////////////////////////////////////////////////////////////////////////
var mpLoader:Loader = new Loader(); | |
cameraImage = true; | |
mpLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, onMediaPromiseLoaded); | |
mpLoader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, onMediaPromiseLoadError); // THIS IS THE ERROR EVENT THAT I SOMETIMES GET | |
mpLoader.loadFilePromise(mediaPromise); |
/////////////////////////////////////////////////////////////////////////
I hope someone can see what I'm doing wrong.
Thanks in advance
Mark