Air提供了两个类:
1、CameraUI类,此类用于打开相机,并从相机获取实时照片。
CameraUI类,可以选择当前是拍照还是拍摄视频,调用launch方法,并传入MediaType,mobile会打开相机进行拍照,拍照完成后,会触发MediaEvent.COMPLETE,MediaEvent的data属性是一个MediaPromise类,利用loader的loadFilePromise即可加载。
//打开相机获取图片
if(CameraUI.isSupported) {
_cameraUI = new CameraUI();
_cameraUI.addEventListener(MediaEvent.COMPLETE, onCapturedImg);
_cameraUI.addEventListener(Event.CANCEL, onCancelSave);
_cameraUI.addEventListener(ErrorEvent.ERROR, onCameraError);
//
_cameraUI.launch(MediaType.IMAGE);
}
else {
trace("CameraUI not support");
}
//******
//照相相关
//******
private function onCapturedImg(evt:MediaEvent):void {
trace("capture captured", evt.data.file);
if(evt.data.isAsync) {
trace("async img");
}
else {
trace("sync img");
}
_loader.loadFilePromise(evt.data);
}
private function onCancelSave(evt:Event):void {
trace("capture canceled");
}
private function onCameraError(evt:ErrorEvent):void {
trace("error" + evt.text);
}
2、CameraRoll类,此类用于从手机相册打开图片、保存图片到手机相册。
调用browseForImage方法,会打开mobile的相册,用户选择图片后会触发MediaEvent.SELECT,MediaEvent的data属性是一个MediaPromise类,利用loader的loadFilePromise即可加载。
调用addBitmapData方法,可以把照片存储到手机相册中。
//从相机交卷读取文件
if(CameraRoll.supportsBrowseForImage) {
_cameraRoll = new CameraRoll();
_cameraRoll.addEventListener(MediaEvent.SELECT, onSelectImg);
_cameraRoll.addEventListener(Event.CANCEL, onCancelSelectImg);
_cameraRoll.addEventListener(ErrorEvent.ERROR, onSelectError);
_cameraRoll.addEventListener(Event.COMPLETE, onSavedImg);
_cameraRoll.browseForImage();
// if(CameraRoll.supportsAddBitmapData) {
// var bmpdata:BitmapData = new BitmapData(100, 100, false, 0xff00ff);
// _cameraRoll.addBitmapData(bmpdata);
// }
}
else {
trace("CameraRoll not support");
}
//***
//打开相机图片相关
//***
private function onSelectImg(evt:MediaEvent):void {
trace("select img", evt.data.file);
_loader.loadFilePromise(evt.data);
//
}
private function onCancelSelectImg(evt:Event):void {
trace("img canceled");
}
private function onSelectError(evt:ErrorEvent):void {
trace("error" + evt.text);
}
private function onSavedImg(evt:Event):void {
trace("img saved");
}