2012-07-26 15 views
0

我只想做一個簡單的Flash播放器,可以使用Flash的ActionScript播放RTMP流...RTMP Flash客戶端使用ActionScript - >緩衝legnth爲零

這裏是我的代碼:

import flash.display.Sprite; 
import flash.net.NetConnection; 
import flash.net.NetStream; 
import flash.media.Video; 
import flash.events.*; 

var nc : NetConnection; 
var ns : NetStream; 
var vid : Video; 
var monitorBufferLengthEverySecond:uint; 
var counter:uint; 

vid=new Video(); 
vid.width=640; 
vid.height=480; 


trace("Create ... NetConnection"); 
nc = new NetConnection(); 

nc.addEventListener(NetStatusEvent.NET_STATUS, netStatus); 
nc.addEventListener(SecurityErrorEvent.SECURITY_ERROR, netSecurityError); 
nc.connect("rtmp://x.x.x.x/live"); 


function netStatus(event:NetStatusEvent):void 
{ 
    trace("Net Satus: "+ event.info.code); 

    if(event.info.code == "NetConnection.Connect.Success") 
    { 
     trace("Net Satus is OK"); 

     trace("Creating NetStream"); 
     ns = new NetStream(nc); 


     var infoClient:Object = new Object(); 
     infoClient.onMetaData = function oMD():void {}; 
     infoClient.onCuePoint = function oCP():void {}; 
     ns.client = infoClient; 


     ns.play("IPCamera.stream"); 

     vid.attachNetStream(ns); 

     monitorBufferLengthEverySecond = setInterval(monPlayback, 1000); 

    } 

} 

function netSecurityError(event:SecurityErrorEvent):void 
{ 
    trace("Security error: " + event);   
} 

function monPlayback():void 
{ 
     // Print current buffer length 
     trace((++counter)+ " Buffer length: " + ns.bufferLength); 
} 

連接成功 * * 當我嘗試檢查緩衝區我總是得到「0」長......我不能看到RTMP流...

爲什麼會發生這種情況?我做錯了什麼?有任何想法嗎?

回答

1

ns.addEventListener(NetStatusEvent.NET_STATUS, netStatus); 您可以將此監聽器添加到NetConnection和NetStream對象,與你會看到什麼是您的流狀態即時猜測你是不是正確accesing流的名稱,但不能告訴是肯定的。

用此檢查您的流是否可用: