我已经设置了一个小应用程序,它只显示了加载本地文件的星火videoDisplay控件。如果flex应用程序是一个web应用程序,视频在windows中播放ok,在osx浏览器中播放ok,但是每当我尝试在Mac上作为Flex AIR应用程序运行时,VideoDisplay就会通过:
我找不到任何线索,是怎么回事,或原因,播放错误。当然,视频文件在所有情况下都是一样的。
我正在使用FlexSDK4.6(附带AIR 3.1),来自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>发布于 2014-01-21 23:26:06
问题与这个问题相同:由于某种原因,OSX中的AIR: securityError on OSX (but not on Windows) with URLStream()不使用安全沙箱,视频的源文件路径必须作为URL提供。
所以代码应该是:
<s:VideoDisplay width="100%" height="100%" source="{new File('/somepath/video.mp4').url}"
mediaPlayerStateChange="mediaPlayerStateChangeHandler(event)"/>这样,它就可以在osx和windows中工作。
https://stackoverflow.com/questions/21261479
复制相似问题