2
我在Flash Builder中使用JPGEncoder函數將拍攝的圖像從設備轉換爲字節數組,但在iOS中創建iOS和Android應用程序我的應用程序凍結,並且在Android中,屏幕一分鐘黑屏左右,然後繼續。以下是我正在使用的代碼。JPGEncoder凍結應用程序
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? –
你是對的 – 2013-01-19 20:20:50
謝謝!這真的有幫助 –