2
JPGEncoder 함수를 사용하여 촬영 한 이미지를 장치에서 bytearray로 변환하는 iOS 및 Android 응용 프로그램을 Flash Builder에서 만들고 있지만 iOS에서는 내 응용 프로그램이 멈추고 Android에서는 화면이 잠깐 검은 색으로 변합니다 그렇지 않으면 계속됩니다. 아래는 내가 사용하고있는 코드입니다.JPGEncoder Freezing App
private var uploadData:ByteArray;
protected var camera:CameraUI;
protected var loader:Loader;
public var file:File;
protected function takePhoto():void {
if (CameraUI.isSupported){
camera = new CameraUI();
camera.addEventListener(MediaEvent.COMPLETE, savePhoto);
camera.launch(MediaType.IMAGE);
}
}
protected function savePhoto(e:MediaEvent):void
{
uploadProgress.visible = true;
var imagePromise:MediaPromise = e.data;
var loader:Loader = new Loader();
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, onPhotoBitmapLoadComplete);
loader.loadFilePromise(imagePromise);
}
protected function onPhotoBitmapLoadComplete(e:Event):void
{
var loaderInfo:LoaderInfo = e.target as LoaderInfo;
if (CameraRoll.supportsAddBitmapData)
{
var bitmapData:BitmapData = new BitmapData(loaderInfo.width, loaderInfo.height);
bitmapData.draw(loaderInfo.loader);
file = File.applicationStorageDirectory.resolvePath("receipt" + new Date().time + ".jpg");
var stream:FileStream = new FileStream()
stream.open(file, FileMode.WRITE);
var j:JPEGEncoder = new JPEGEncoder();
var bytes:ByteArray = j.encode(bitmapData);
stream.writeBytes(bytes, 0, bytes.bytesAvailable);
stream.close();
uploadData = bytes;
SetupWebService();
}
}
답장을 보내 주셔서 감사합니다! 나는 많은 사람들이 비동기식 인코더를 사용하는 것을 보았으나 그것이 나의 iOS 어플리케이션이 정지 된 이유인가? 그것은 asyc가 아니기 때문에? –
당신은 정확합니다 –
고마워! 정말 도움이 됐어. –