首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在OSX上使用AIR在MediaPlayerState.PLAYBACK_ERROR上使用VideoDisplay

在OSX上使用AIR在MediaPlayerState.PLAYBACK_ERROR上使用VideoDisplay
EN

Stack Overflow用户
提问于 2014-01-21 14:53:11
回答 1查看 304关注 0票数 0

我已经设置了一个小应用程序,它只显示了加载本地文件的星火videoDisplay控件。如果flex应用程序是一个web应用程序,视频在windows中播放ok,在osx浏览器中播放ok,但是每当我尝试在Mac上作为Flex AIR应用程序运行时,VideoDisplay就会通过:

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

我找不到任何线索,是怎么回事,或原因,播放错误。当然,视频文件在所有情况下都是一样的。

我正在使用FlexSDK4.6(附带AIR 3.1),来自4

下面是我用于测试的代码:

代码语言:javascript
复制
<?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>
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-01-21 23:26:06

问题与这个问题相同:由于某种原因,OSX中的AIR: securityError on OSX (but not on Windows) with URLStream()不使用安全沙箱,视频的源文件路径必须作为URL提供。

所以代码应该是:

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

这样,它就可以在osx和windows中工作。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21261479

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档