2016-07-13 4 views
0

Adob​​e Flashでmediaplaybackコンポーネントを使用している場合、crtmp-serverのビデオストリームが正しく実行されます。as3 stream from crtmp-server

このコンポーネントを使用せずに私自身でこれを行おうとすると、いくつかのエラーが発生しました。不運にも、mediaplayback-componentなしでas3でストリーミングを説明することはあまりサポートされていません。

私はコード

package 
 
{ 
 
\t import flash.display.MovieClip; 
 
\t import flash.media.Video; 
 
\t import flash.net.NetConnection; 
 
\t import flash.net.NetStream; 
 
\t 
 
\t 
 
\t /** 
 
\t * ... 
 
\t * @author Siam Modi 
 
\t */ 
 
\t public class Main extends MovieClip 
 
\t { 
 
\t \t 
 
\t \t public function Main() 
 
\t \t { 
 
\t \t \t 
 
\t \t \t var nc:NetConnection = new NetConnection(); 
 
\t \t \t nc.connect("rtmp://213.136.73.230/maya"); 
 
\t \t \t var vid:Video = new Video(); 
 
\t \t \t addChild(vid); 
 
\t \t \t var ns:NetStream = new NetStream(nc); 
 
\t \t \t 
 
\t \t \t vid.attachNetStream(ns); 
 
\t \t \t ns.play("atlas.mp4"); 
 
\t \t } 
 
\t 
 
\t } 
 

 
}

任意のアイデア以下がありますか?ヘルプ

答えて

1

のためのTHXは、あなたはそれがNetConnection.Connect.Succesinfo.codeNetStatusEventを発射した後にのみNetConnectionインスタンスにNetStreamを接続することができます。
あなたが
nc.connect("rtmp://213.136.73.230/maya");
を呼び出す前に
nc.addEventListener(NetStatusEvent.NET_STATUS, netStatusHandler)
を呼び出す必要があり、このイベントを取得し、NetStream/Videoそこ取り付けるには:

private function netStatusHandler(event:NetStatusEvent):void { 
     switch (event.info.code) { 
      case "NetConnection.Connect.Success": 
       var ns:NetStream = new NetStream(nc); 
       vid.attachNetStream(ns); 
       ns.play("atlas.mp4"); 

      break; 
      case "NetStream.Play.StreamNotFound": 
       trace("Stream not found: " + videoURL); 
      break; 
     } 
    } 

here is an example from the reference

+0

のthatsそれを、ありがとう... 行います「NetConnectionがコールバックを呼び出すことができませんでした」というエラーが発生しました。 – Glowhollow

+0

@Glowhollow http://stackoverflow.com/questions/2296822/flash-as3-streaming-player-onbwdone解決策( 'nc.client'プロパティ) – www0z0k