我已经设置了一个小应用程序,它只显示了一个加载本地文件的spark videoDisplay控件。 如果flex应用程序是一个Web应用程序,视频在Windows中可以作为AIR播放,并且在浏览器上播放正常,但是当我尝试在Mac上作为Flex AIR应用程序运行时,VideoDisplay会通过:
我找不到任何有关播放错误的原因或播放错误的原因。在所有情况下,视频文件当然都是相同的。
我正在使用Flash Builder 4中的Flex SDK 4.6(AIR 3.1附带)
这是我用于测试的代码:
<?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 :(得分:0)
问题与此问题中所述相同:AIR: securityError on OSX (but not on Windows) with URLStream() 出于某种原因,OSX中的AIR未使用安全沙箱,并且视频的源文件路径必须作为URL提供。
所以代码应该是:
<s:VideoDisplay width="100%" height="100%" source="{new File('/somepath/video.mp4').url}"
mediaPlayerStateChange="mediaPlayerStateChangeHandler(event)"/>
这样它可以在osx和windows中运行。