ios - NetStream http 视频无法在 IOS 设备上播放

标签 ios actionscript-3 flash flash-cs6

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

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);
        }
    }

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

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

最佳答案

正如 VC.One 指出的那样,AIR for iOS 不能播放大多数(但不是全部,它偶尔会播放非常特定的编码类型)h.264 编码视频。三种解决方案:

  1. 正如 VC.One 所说,您编码为 FLV。这样做不好,我不推荐这样做。 FLV 不是硬件加速的(除非最近发生了变化而且我还没有看到更新)并且将完全依靠 CPU 运行,这意味着您的应用程序将运行缓慢并且应用程序消耗电池的速度比正常情况快得多。
  2. 使用StageWebView ,在这种情况下,您只需插入视频的 URL,它就会使用 native 视频播放器播放视频。这有不利的一面,因为你不能剥削他的球员,你也不能控制它。一旦开始播放,除了卸载页面外,您无法控制它。不过,这种方法效果很好,而且很容易实现,尽管视频会出现在舞台顶部(它显示列表中)。<
  3. 最后一个选项是使用 StageVideo .这将使用 native 框架播放视频,因此您可以轻松播放 h.264 并且它将进行硬件加速。此外,这只是一个 NetStream 播放器,因此您可以完全控制它。最好的是,它没有 chrome,因此您可以围绕视频屏幕构建播放器。但是,与 StageWebView 一样,StageVideo 显示列表中。但与 StageWebView 不同的是,它直接呈现在舞台上,低于其他一切。因此应用程序本身将覆盖视频。您可以通过创建一个类来在视频周围屏蔽您的应用程序来解决这个问题,但是要正确地实现这一点非常困难。我花了大约 12 个小时来创建我的 StageVideo 播放器和屏蔽类,再加上半天后修复屏蔽类的问题以及它如何处理 DPI 更改(提示:如果您不设置 applicationDPI正在使用 Flex)

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

关于ios - NetStream http 视频无法在 IOS 设备上播放,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16010572/

相关文章:

objective-c - 替换相册照片中的图像

javascript - 在ExternalInterface中传递回调

actionscript-3 - 如何检测flash模块是否在google chrome内运行?

actionscript-3 - ActionScript 库项目与 Flex 库项目

iphone - 如何在编译时使用不同的接口(interface)声明而不混淆 Interface Builder

iphone - ios 的 Cordova 3.0.0 ActionSheet 插件无法正常工作

ios - 带有 URL 的 NSAttributedString 不起作用

php - JavaScript 将多个 jpeg 从 Flash (AS3) 传递到 PHP

javascript - 鼠标移动效果 - Css 或 Javascript 或 flash?

javascript - 从字符串中获取keyCode?