2017-02-01 9 views
1

Я пытаюсь сделать мои скрипты максимально возможными. Я использую CameraUI для извлечения файлов и их загрузки в Firebase. Проблема в том, что я могу получить только bytearray через filepromise, а не расширение файла ... или что угодно. Согласно многочисленным руководствам, iOS не позволит вам получить mediaPromise.file, чтобы получить его тип. Поэтому у меня остается вопрос о том, как получить mime/type из этого bytearray, который у меня есть, что я знаю, это либо изображение, либо видео из MediaPromise.type.Получите mime/type из MediaPromise

MetaData или что-нибудь поможет.

После того, как this guide доставит меня к ошибке безопасности. Что-то с доменами. Я в Android и iOS, поэтому я не могу сделать Security.allowDomain («*»); Я сделал свою версию, следуя этому руководству.

Я искал и нашел this guide, и это работает. Но он только выбирает bytearray.

Он написал еще одну статью, которая сделала что-то, что извлекло данные из первых 64K bytearray или что-то еще и отобразило его в своем приложении. Он использовал lib, который больше не работает, поэтому я не могу пойти со своим гидом.

В коде есть код, который у меня есть в моем сценарии, за исключением нескольких дополнений для управления пользовательским интерфейсом. Как я могу это решить? Есть ли метаданные, которые всегда лежат в первом наборе байтов?

Я даже попытался использовать this nice ANE, но я получаю сообщение об ошибке ..

ответ

0

Вы можете получить тип пантомимы раз был загружен MediaPromise:

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

Другой способ заключается в определении MimeType «вручную» на основе расширения файла в mediaPromise.file.extension

+0

Это будет работать, только если я использую изображение. Погрузчик не будет работать с обещаниями видеоматериалов. – quantomworks

+0

Никогда не пытался загрузить видео, но не будет ли он работать одинаково, указав MediaType.VIDEO в качестве запрошенного типа носителя? Вы можете проверить для mediaPromise.file.extension в onCameraUIComplete – Philarmon