2014-01-21 3 views
0

Я создал небольшое приложение, которое просто показывает искровое видеоизображение управления загрузкой локального файла. Видео воспроизводится нормально как AIR в окнах, и оно хорошо воспроизводится в браузере через osx, если приложение flex является веб-приложением, но всякий раз, когда я пытаюсь запустить приложение Flex AIR на Mac, VideoDisplay проходит через:MediaPlayerState.PLAYBACK_ERROR на VideoDisplay с использованием AIR на OSX

  • MediaPlayerState.LOADING
  • MEdiaPlayerState.READY
  • MediaPlayerState.PLAYBACK_ERROR

Я не могу найти какие-либо понятия о том, что происходит или причину этой ошибки воспроизведения. Видеофайл, конечно, одинаковый во всех случаях.

Я использую Flex SDK 4.6 (поставляется с AIR 3.1) из Flash Builder 4

Вот это код, я использую для теста:

<?xml version="1.0" encoding="utf-8"?>  
<s:WindowedApplication xmlns:fx="http://ns.adobe.com/mxml/2009"  
    xmlns:s="library://ns.adobe.com/flex/spark"  
    xmlns:mx="library://ns.adobe.com/flex/mx"> 

<fx:Script>  
<![CDATA[  
import org.osmf.events.MediaPlayerStateChangeEvent;  

protected function mediaPlayerStateChangeHandler(event:MediaPlayerStateChangeEvent):void  
{  
    trace(event.state);  
} 


]]> 

</fx:Script> 

    <s:VideoDisplay width="100%" height="100%" source="/somepath/video.mp4"  
        mediaPlayerStateChange="mediaPlayerStateChangeHandler(event)"/> 

</s:WindowedApplication> 

ответ

0

Проблема была та же как указано в этом вопросе: AIR: securityError on OSX (but not on Windows) with URLStream() По какой-то причине AIR в OSX не использует изолированную программную среду безопасности, а путь к исходному файлу для видео должен быть предоставлен в виде URL-адреса.

Поэтому код должен быть как:

<s:VideoDisplay width="100%" height="100%" source="{new File('/somepath/video.mp4').url}"  
       mediaPlayerStateChange="mediaPlayerStateChangeHandler(event)"/> 

Таким образом, он работает в OSX и окон.

Смежные вопросы