请帮忙,我已经成功通过iphone相机访问和拍摄照片。但问题是当我通过" loadFilePromise"加载它时,照片旋转方向错误。
import flash.media.CameraUI;
import flash.media.MediaType;
import flash.media.MediaPromise;
import flash.events.MediaEvent;
import flash.events.Event;
import flash.events.MouseEvent;
import flash.display.Loader;
import flash.display.Bitmap;
import flash.media.CameraRoll;
import flash.display.StageOrientation;
import flash.events.StageOrientationEvent;
import flash.media.Camera;
import flash.media.Video;
var currentOrientation:String = "";
var cam:CameraUI = new CameraUI();
cam.addEventListener(MediaEvent.COMPLETE, captured);
cam.addEventListener(Event.CANCEL, cancelled);
var loader:Loader = new Loader();
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, photoLoaded);
addChild(loader);
captureBtn.addEventListener(MouseEvent.MOUSE_UP, pressed);
function pressed(e:MouseEvent){
if(CameraUI.isSupported){
cam.launch(MediaType.IMAGE);
}
}
function captured(e:MediaEvent){
var mediaPromise:MediaPromise = e.data;
if(mediaPromise != null)
{
output.text = "Photo captured.";
loader.loadFilePromise(mediaPromise);
}
}
function cancelled(e:Event):void {
output.text = "Cancelled.";
}
stage.addEventListener(StageOrientationEvent.ORIENTATION_CHANGING,orientationChanging);
stage.addEventListener(StageOrientationEvent.ORIENTATION_CHANGE, orientationChanged);
function orientationChanging(e:StageOrientationEvent){
currentOrientation = e.afterOrientation;
trace(currentOrientation);
switch(currentOrientation)
{
case StageOrientation.DEFAULT :
currentOrientation = "DEFAULT";
//set rotation value here
stage.rotation = 0;
break;
case StageOrientation.ROTATED_RIGHT :
currentOrientation = "ROTATED_RIGHT";
//set rotation value here
stage.rotation = -90;
break;
case StageOrientation.ROTATED_LEFT :
currentOrientation = "ROTATED_LEFT";
//set rotation value here
stage.rotation = 90;
break;
case StageOrientation.UPSIDE_DOWN :
currentOrientation = "UPSIDE_DOWN";
//set rotation value here
stage.rotation = 180;
break;
}
}
function orientationChanged(e:StageOrientationEvent){
}
function photoLoaded(e:Event){
var img:Bitmap = e.currentTarget.content as Bitmap;
img.smoothing = true;
img.width = 350
img.scaleY = img.scaleX;
/* TRY THIS TO FIX BUT IT DIDN'T WORK:
switch(currentOrientation){
case "rotatedLeft":
img.rotation = 90;
break;
case "rotatedRight":
img.rotation = 90;
break;
case "upsideDown":
break;
}*/
/* THESE LINE ARE JUST USED TO SAVE PHOTO IN CAMERA ROLL:
if(CameraRoll.supportsAddBitmapData)
{
cameraRoll.addBitmapData(img.bitmapData);
}*/
}
function camRollSaved(e:Event){
output.text = "Your photo is saved to a camera roll."
}
我已取消选中"自动定位"在发布设置中,尝试纠正StageOrientation但它仍然无法正常工作。
stage.addEventListener(StageOrientationEvent.ORIENTATION_CHANGING,orientationChanging);
stage.addEventListener(StageOrientationEvent.ORIENTATION_CHANGE, orientationChanged);
当我将iphone旋转到lanscape(相机的位置在TOP-RIGHT)时,它才正确,然后拍照。
有没有人有同样的问题或知道如何解决?
非常感谢,
答案 0 :(得分:1)
这解决了我在Android上的问题: http://blog.flexnroses.com/?p=95
我认为iOS的库存在问题,因此它可能无法解决您的问题,但也许您可以从中获得所需的灵感。祝你好运!