首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >必须连接flash media server 2126 NetConnection对象

必须连接flash media server 2126 NetConnection对象
EN

Stack Overflow用户
提问于 2017-05-19 05:36:34
回答 1查看 54关注 0票数 0

我在闪存CS6上使用闪存媒体server5尝试播放视频,但它从来没有工作过。它总是说:

代码语言:javascript
复制
{ArgumentError: Error #2126: NetConnection object must be connected
at flash.net::NetStream/ctor()
at flash.net::NetStream()
at flashmediaservertest_fla::MainTimeline/frame1()}

我的代码:

代码语言:javascript
复制
var my_nc:NetConnection =new NetConnection();
my_nc.connect("rtmp://127.0.0.1/flv/");
my_nc.client = this;
var my_ns= new NetStream(my_nc);
video.attachNetStream(my_ns);
my_ns.play("simple.flv");

有什么问题吗?

EN

回答 1

Stack Overflow用户

发布于 2017-05-19 07:47:53

问题是NetConnectionconnect方法是异步的。这意味着,应用程序不会冻结整个程序等待响应(有时可能需要一段时间),而是立即转到代码的其余部分,并在连接完成时调度一个事件。

您需要做的是向您的网络连接添加一个事件侦听器,以便您的程序知道该连接何时完成。然后,只有在您知道连接已建立之后,才能运行您的net stream代码。

下面是一个示例:

代码语言:javascript
复制
//instantiate your net connection (no change here)
var my_nc:NetConnection = new NetConnection();

//listen for the NET_STATUS event which you tell you when you have successfully connected or if your connection is lost etc.
my_nc.addEventListener(NetStatusEvent.NET_STATUS, statusHandler);
my_nc.client = this;

my_nc.connect("rtmp://127.0.0.1/flv/");


function statusHandler(e:NetStatusEvent):void {
    switch (e.info.code) {
        case "NetConnection.Connect.Success":
            startStream();
            break;

        case "NetConnection.Connect.Closed":
            //your connection was closed
            break;
    }
}

function startStream():void {
    var my_ns= new NetStream(my_nc);
    video.attachNetStream(my_ns);
    my_ns.play("simple.flv");
}

您可以看到所有不同的NET_STATUS信息代码here的列表。处理所有不同的连接错误也是一个好主意。

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

https://stackoverflow.com/questions/44058161

复制
相关文章

相似问题

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