gpt4 book ai didi

android - JPGEncoder 卡住应用程序

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:45:36 26 4
gpt4 key购买 nike

我正在 Flash Builder 中创建一个 iOS 和 Android 应用程序,它使用 JPGEncoder 函数将拍摄的图像从设备转换为字节数组,但在 iOS 中我的应用程序卡住,在 Android 中屏幕变黑一分钟左右,然后继续。下面是我正在使用的代码。

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();
}
}

最佳答案

这是因为编码器不是异步的,编码大图像可能需要一段时间;尤其是 jpeg,尤其是在移动设备上。

那里有异步编码器,但不允许 self 提升。提示,提示。

编辑:该死的规则!这是我关于异步编码的博客文章(和代码)的链接:http://blog.leeburrows.com/2011/01/saving-an-image-to-hd-with-actionscript-part-2/

关于android - JPGEncoder 卡住应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14410593/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com