NetStream HTTPvideo不在IOS设备上播放

我想在iPad上播放video,我的代码如下:

public function init_RTMP():void { videoURL = "http://rest************_iphone_high.mp4"; vid = new Video(); nc = new NetConnection(); nc.addEventListener(NetStatusEvent.NET_STATUS, onConnectionStatus); nc.connect(null); } private function onConnectionStatus(e:NetStatusEvent):void { if (e.info.code == "NetConnection.Connect.Success") { trace("Creating NetStream"); netStreamObj = new NetStream(nc); metaListener = new Object(); metaListener.onMetaData = received_Meta; netStreamObj.client = metaListener; netStreamObj.play(videoURL); vid.attachNetStream(netStreamObj); addChild(vid); } } 

当我在我的系统上播放它工作正常,但是当我创build它的IOS应用程序并安装在设备上时,它显示白色的空白屏幕。

如果有人有同样的问题或任何想法,请与我分享。

正如VC.One所指出的,AIR for iOS不会播放大部分(但不是全部,偶尔会播放非常特定的编码types)h.264编码的video。 有三个解决scheme:

  1. 正如VC.One所说,你编码为FLV。 这样做不好,我不会推荐它。 FLV不是硬件加速的(除非事情最近改变了,我还没有看到更新),并且完全离开CPU,这意味着你的应用程序将运行缓慢,应用程序将比平时快得多的电池。
  2. 使用StageWebView ,在这种情况下,您只需将video的url插入,即可使用本地video播放器播放video。 这有一个缺点,那就是你不能让玩家失望,而你无法控制它。 一旦开始播放,除卸载页面外,您无法控制它。 不过,这样做效果很好,虽然video会出现在舞台的顶部( 不在 Display List ),但实现起来相当容易。
  3. 最后一个选项是使用StageVideo 。 这将使用本机框架播放video,所以你可以轻松地播放h.264 它将被硬件加速。 此外,这只是一个NetStream播放器,所以你可以完全控制它。 而最好的是,它没有铬,所以你可以在video屏幕周围build立一个播放器。 但是,像StageWebView一样,StageVideo 不在 Display List 。 但与StageWebView不同的是,它直接在舞台上呈现, 低于其他所有内容。 所以应用程序本身将覆盖video。 你可以通过创build一个类来屏蔽video中的应用来解决这个问题,但是要正确地取消这个任务是非常困难的。 我花了大约12个小时来创build我的StageVideo播放器和屏蔽类,再加上另外半天的时间来解决屏蔽类的问题以及它如何处理DPI更改(提示:如果您使用的是Flex,请不要设置applicationDPI

与往常一样,请确保您的AIR SDK也是最新的。 3.5-3.7都为iOS应用程序增加了大量的新function和错误修复,所以更新到AIR 3.7可能实际上解决了问题或使问题更less(我不认为这会是问题,但总是值得一试,对?)

看到这个链接:

Netstreamvideo不能在iPad上播放

基本上它是通过编码为FLV而不是MP4video文件。