【问题标题】:Get mime/type from MediaPromise从 MediaPromise 获取 mime/type
【发布时间】:2017-02-01 07:14:56
【问题描述】:

我正在尝试使我的脚本尽可能跨平台。我正在使用 CameraUI 来获取文件并将它们上传到 Firebase。问题是我只能通过文件承诺而不是文件扩展名..或任何东西来获取字节数组。根据众多指南,iOS 不会让您获取 mediaPromise.file 来获取它的类型。所以我剩下的问题是如何从我拥有的这个字节数组中获取一个 mime/类型,我知道它是来自 MediaPromise.type 的图像或视频。

元数据或任何东西都会有所帮助。

关注this guide 让我遇到安全错误。有域名的东西。我在 Android 和 iOS 中,所以我不能做 Security.allowDomain("*");我按照本指南制作了自己的版本。

我搜索并找到了this guide,这很有效。但它只获取字节数组..

他写了另一篇文章,做了一些从字节数组的前 64K 或其他东西中提取数据并将其显示在他的应用程序中的东西。他使用了一个不再启动的库,所以我真的不能和他的向导一起去。

其中的代码是我在脚本中的代码,除了一些 UI 管理添加。我将如何解决这个问题?是否有一些元数据总是位于第一组字节中?

我什至尝试过使用this nice ANE,但我得到一个错误..

【问题讨论】:

    标签: actionscript-3 mime-types


    【解决方案1】:

    加载 mediapromise 后,您可以获取 mime 类型:

    cameraUI = new CameraUI();
    if (CameraUI.isSupported)
    {   
        cameraUI.addEventListener(MediaEvent.COMPLETE, onCameraUIComplete);
        cameraUI.addEventListener(Event.CANCEL, onCameraUICanceled);
        cameraUI.addEventListener(ErrorEvent.ERROR, onCameraError);
        cameraUI.launch(MediaType.IMAGE);
    }
    
    private function onCameraUIComplete(e:MediaEvent):void
    {               
        var mediaPromise:MediaPromise = e.data;
    
        if (mediaPromise)
        {               
            myLoader = new Loader();
            myLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, onMediaPromiseLoaded);
            myLoader.addEventListener(IOErrorEvent.IO_ERROR, onMediaPromiseLoadError);
            myLoader.loadFilePromise(mediaPromise);
        }
    }
    
    private function onMediaPromiseLoaded(e:Event):void
    {
        var myLoaderInfo:LoaderInfo = e.target as LoaderInfo;       
    
        var myByteArray:ByteArray = myLoaderInfo.bytes;
        var mimeType:String = myLoaderInfo.contentType;
    }
    

    另一种方法是根据 mediaPromise.file.extension 中的文件扩展名“手动”确定 mimetype

    【讨论】:

    • 这只有在我使用图像时才有效。 Loader 无法处理视频媒体承诺。
    • 从未尝试加载视频,但通过将 MediaType.VIDEO 指定为请求的媒体类型,它不会以相同的方式工作吗?您可以在 onCameraUIComplete 中检查 mediaPromise.file.extension
    猜你喜欢
    • 2020-01-18
    • 1970-01-01
    • 2014-01-28
    • 2017-09-13
    • 1970-01-01
    • 2016-08-22
    • 2014-12-01
    • 2013-01-07
    • 2020-07-20
    相关资源
    最近更新 更多