I want to be able to access image metadata for images on my device.
Load media promise using one of available EXIF parsing libraries.
Flash Builder Project with solution
CameraUI and CameraRoll allows to get MediaPromise object that can be loaded as bytes:
private function useCameraRoll():void
{
var cameraRoll:CameraRoll = new CameraRoll();
cameraRoll.addEventListener(MediaEvent.SELECT, cameraRoll_selectHandler);
cameraRoll.addEventListener(ErrorEvent.ERROR, some_errorHandler);
cameraRoll.browseForImage();
}
private function cameraRoll_selectHandler(event:MediaEvent):void
{
showEXIFFromPromise(event.data);
}
private function useCameraUI():void
{
var cameraUI:CameraUI = new CameraUI();
cameraUI.addEventListener(MediaEvent.COMPLETE, cameraUI_completeHandler);
cameraUI.addEventListener(ErrorEvent.ERROR, some_errorHandler);
cameraUI.launch(MediaType.IMAGE);
}
private function cameraUI_completeHandler(event:MediaEvent):void
{
showEXIFFromPromise(event.data);
}
private function showEXIFFromPromise(data:MediaPromise):void
{
if (data.isAsync)
{
data.addEventListener(Event.COMPLETE, readDataSource);
data.addEventListener(IOErrorEvent.IO_ERROR, some_errorHandler);
dataSource = data.open();
}
else
{
dataSource = data.open();
readDataSource();
}
}
private function readDataSource(... args):void
{
var byteArray:ByteArray = new ByteArray();
dataSource.readBytes(byteArray, 0, dataSource.bytesAvailable);
var exifInfo:ExifInfo = new ExifInfo(byteArray);
showEXIFInf1o(exifInfo);
}
+