2017-05-18 9 views
0

Flash CS5でFlash Media Server5を使用していますが、ビデオは再生できません。それは常に言う:フラッシュメディアサーバー2126 NetConnectionオブジェクトが接続されている必要があります

{ArgumentError: Error #2126: NetConnection object must be connected 
at flash.net::NetStream/ctor() 
at flash.net::NetStream() 
at flashmediaservertest_fla::MainTimeline/frame1()} 

マイコード:

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

問題は何ですか?

+0

実際にローカルPC上でFlash Media Serverのインスタンスを実行していますか? – Organis

+0

はい私のFlash Media Serverが実行されていて、管理コンソールが接続しているのがわかります – Yjerry

+0

その後、正常に接続されたときに送出される** my_nc **オブジェクトから** NetStatusEvent.NET_STATUS **イベントを待つ必要がありますここ:http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/net/NetConnection.html#connect())、それを** my_ns **オブジェクトのソースとして添付します。 – Organis

答えて

1

connectメソッドがNetConnectionの場合、非同期であるという問題があります。これは、アプリケーションが応答を待っている(しばらく時間がかかることがある)ことを止めるのではなく、すぐに残りのコードに移動し、その接続が完了したときにイベントを送出することを意味します。

必要な操作は、接続が完了したときにプログラムが認識できるように、ネット接続にイベントリスナーを追加することです。接続が確立されたことを知った後で、ネットストリームコードを実行します。ここで

は一例です:

//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の一覧を見ることができます。さまざまな接続エラーもすべて処理することをお勧めします。

関連する問題