convert ios photo(mediapromise) into byteArray ?
hello
I'm trying to convert ios photo into bytearray. Because I want send the photo from iphone to AIR in laptop.
I've found some tutorial looks great and should work:
http://forums.adobe.com/post!input.jspa?container=4434&containerType=14
the method is to use "mediaPromise.open()" and get the byte data.
but I always got an error blow:
ArgumentError: Error #1063: Argument count mismatch on Main/selectHandler(). Expected 0, got 1.
dose anyone bump into the same error as me?
my code is below:
package
{
import flash.display.Sprite;
import flash.events.Event;
import flash.events.IEventDispatcher;
import flash.events.MediaEvent;
import flash.events.MouseEvent;
import flash.media.CameraRoll;
import flash.media.MediaPromise;
import flash.utils.ByteArray;
import flash.utils.IDataInput;
public class Main extends Sprite
{
public var dataSource:IDataInput;
public var cameraRoll:CameraRoll=new CameraRoll();
public var but_select:Sprite=new Sprite()
public function Main()
{
super();
but_select.graphics.beginFill(0xFF0000)
but_select.graphics.drawCircle(stage.stageWidth / 2, stage.stageHeight / 2, 50)
addChild(but_select)
but_select.addEventListener(MouseEvent.CLICK, selectHandler)
}
public function selectHandler():void
{
if (CameraRoll.supportsBrowseForImage)
{
cameraRoll.addEventListener(MediaEvent.SELECT, imageSelected);
cameraRoll.browseForImage();
}
else
{
trace("Image browsing is not supported on this device.");
}
}
private function imageSelected(event:MediaEvent):void
{
trace("Media selected...");
var imagePromise:MediaPromise=event.data;
dataSource=imagePromise.open();
if (imagePromise.isAsync)
{
trace("Asynchronous media promise.");
var eventSource:IEventDispatcher=dataSource as IEventDispatcher;
eventSource.addEventListener(Event.COMPLETE, onMediaLoaded);
}
else
{
trace("Synchronous media promise.");
readMediaData();
}
}
private function onMediaLoaded(event:Event):void
{
trace("Media load complete");
readMediaData();
}
private function readMediaData():void
{
var imageBytes:ByteArray=new ByteArray();
dataSource.readBytes(imageBytes);
trace("imageBytes= " + imageBytes)
}
}
}
