在 iOS 上,用于 CameraUI 的 AS3 MediaPromise 没有回复我

Posted

技术标签:

【中文标题】在 iOS 上,用于 CameraUI 的 AS3 MediaPromise 没有回复我【英文标题】:AS3 MediaPromise for CameraUI doesn't get back to me on iOS 【发布时间】:2017-02-06 20:33:14 【问题描述】:

我需要在 AS3/Air/Starling 框架上使用 CameraUI 捕获图像。我得到 CameraUI,它打开,图像被选中,我收到一个 MediaPromise 对象。

文档中的示例提到了以下代码,用于从 ios 上的异步媒体承诺中捕获图像,但我在 onMediaLoaded 函数和 ioError 函数中都没有听到任何回调。

顺便说一句,日志行“异步模式媒体承诺”。选择照片时显示。

private function imageSelected(evt:MediaEvent):void

    this.feedbackText.text = "Image Selected\n";

    // Create a new imagePromise
    var imagePromise:MediaPromise = evt.data;

    // Open our data source
    dataSource = imagePromise.open();

    if(imagePromise.isAsync)
    
        this.feedbackText.text += "Asynchronous Mode Media Promise.\n";

        var eventSource:IEventDispatcher = dataSource as IEventDispatcher;

        eventSource.addEventListener( Event.COMPLETE, onMediaLoaded );
        eventSource.addEventListener( IOErrorEvent.IO_ERROR, ioError );
    
    else
    
        this.feedbackText.text += "Synchronous Mode Media Promise.\n";
        readMediaData();
    


// =======================================================================
// onMediaLoaded
// =======================================================================
protected function onMediaLoaded( event:Event ):void

    this.feedbackText.text += "Image Loaded.\n";
    readMediaData();


// ========================================================================
// ioError()
// ========================================================================
protected function ioError(event:IOErrorEvent):void

    this.feedbackText.text = "IOError - Unable to process photo - " + event.text;

测试设备:运行 iOS 10 的 iPhone 6 空中SDK:v22

【问题讨论】:

【参考方案1】:

刚刚发现我的代码有问题,我导入了 starling.events.Event(而不是 flash.events.DataEvent),因此我的回调函数参数中的“事件”类型导致“类型强制失败”。

【讨论】:

以上是关于在 iOS 上,用于 CameraUI 的 AS3 MediaPromise 没有回复我的主要内容,如果未能解决你的问题,请参考以下文章

verilog 有啥用?

AS3将文件保存在iOS上的可访问位置

dismissViewControllerAnimated 自定义动画

System.setClipboard 不适用于 ios (AS3)

用于导入的 AS3 SoundChannel/Sound HZ 限制

为啥在verilog中要定义wire?