【问题标题】:Can't programmatically control FLVPlayback with ActionScript无法使用 ActionScript 以编程方式控制 FLVPlayback
【发布时间】:2010-10-08 13:30:28
【问题描述】:

我正在尝试使用 Flash Professional 中的 ActionScript 3 代码控制实时视频流的视频播放。

我的舞台上有一个名为“flvPlayer”的 FLVPlayback 组件,在我的“动作”层的第一帧中,我有以下代码:

import fl.video.FLVPlayback; 
import flash.display.Sprite;
var vidURL:String = new String("rtmp://www.mycompanyserver.com/test/live/livestream");
var flvPlayer:FLVPlayback = new FLVPlayback(); 
addChild(flvPlayer);  
flvPlayer.source = vidURL;
flvPlayer.isLive = true;
flvPlayer.autoPlay = true;

但是,视频无法播放。

这是输出日志中显示的内容:

http://i.stack.imgur.com/J5n7J.png

我可以通过将源添加到 Compenent Parameters 窗口来使其工作,但我需要能够在代码中访问这些参数。

提前致谢。

【问题讨论】:

    标签: flash actionscript-3


    【解决方案1】:

    首先你需要任何一个

    -1- import fl.video.FLVPlayback 并像 var flvPlayer:FLVPlayback = new FLVPlayback(); 一样创建一个新实例

    -2- 拖动 FLVPlayback 组件并使用属性窗格命名实例,然后直接在您的操作脚本中引用它

    因此,如果您甚至没有看到您的播放器,那可能是因为您同时在做这两件事。由于您想以编程方式对此进行控制,请使用选项 -1-。但是,您仍然需要在您的库中使用 FLVPlayback 组件。


    其次,您应该更改设置变量的顺序。设置自动播放后,播放器将在设置源后自动播放,因此请最后设置源。

    import fl.video.FLVPlayback; 
    var flvPlayer:FLVPlayback = new FLVPlayback(); 
    addChild(flvPlayer);
    flvPlayer.isLive = true;
    flvPlayer.autoPlay = true;
    flvPlayer.source = "rtmp://www.mycompanyserver.com/test/live/livestream";
    



    最后,您未处理的NetStatusEvent 似乎来自您的 RTMP 连接问题,而不是播放器本身的问题。确保您没有任何违反安全沙箱的行为并从那里开始。

    【讨论】:

      【解决方案2】:

      @Brandon 的答案也是我的第一个猜测,但我想补充一点,流来自的服务器需要在根目录上有一个 crossdomain.xml (www.mycompanyserver.com/crossdomain.xml)。 xml) 并且跨域必须接受托管 Flash 文件的服务器。

      链接:

      如果有帮助,请将此标记为答案。

      【讨论】:

        猜你喜欢
        • 2011-06-30
        • 2017-06-26
        • 2011-07-09
        • 1970-01-01
        • 2019-09-03
        • 1970-01-01
        • 2011-09-05
        • 2013-02-08
        • 1970-01-01
        相关资源
        最近更新 更多