2011-07-28 28 views
1

我正在嘗試做一些非常簡單的事情,希望有人能指點我一個快速解決方案。使用Flash Media Server的網絡攝像頭池

我有一個應用程序,用戶可以登錄並連接到Flash媒體服務器。連接後,任何人都可以查看其攝像頭。

例如,讓說Bob和Sally登錄到網站,他們的相機現在正在流式傳輸。 Bob可以在http://www.example.com?cam=sally上查看Sally的攝像頭流,Sally可以查看Bob的網絡攝像頭流http://www.example.com?cam=bob

我相信這很容易,你們可以幫忙。

請,這是迫切而我等待......

最好的問候, 諾曼。

+0

避風港」這樣做還沒完,但看看使用netstream和netstreams attachCamera函數:) –

+0

@Noman Ur Rehman你說,他們的相機現在正在流式傳輸?那麼他們怎麼會看到對方呢?我不明白,你在問什麼?你怎麼了?連接到FMS?流媒體視頻?播放視頻?你能提供更多的細節嗎?謝謝 –

+0

我想問的是,我已經知道如何將用戶的網絡攝像機流式傳輸到媒體服務器並與之一起播放,比如記錄一個flv文件。我想知道這怎麼可能讓你可以讓不同用戶的多個攝像頭可以互相訪問?我想讓Bob和Sally連接到我的媒體服務器,然後我希望他們能夠像Bob一樣看到彼得的攝像頭輸出,並在攝像頭上看到Sally,反之亦然。同樣,用戶數量不會限制爲2個。 –

回答

0

使用此代碼播放攝像頭流FMS:

var nc : NetConnection = new NetConnection(); 
     nc.client = this; 
     nc.addEventListener(NetStatusEvent.NET_STATUS, statusHandler); 
     nc.connect("rtmp://your-fms-server-url/your-application"); 

    var cam : Camera = Camera.getCamera(); 
     cam.setMode(640, 480, 20); 

    var ns : NetStream; 

    function statusHandler (eventOBJ : NetStatusEvent) 
    { 
     if (eventOBJ.info.code == "NetConnection.Connect.Success") 
     { 
      ns = new NetStream(nc); 
      ns.attachCamera(cam); 
      ns.publish("your-stream-name"); 
     } 
    }; 

接收器是simliar,除了幾行:

// to the declaration section: 
    var video : Video = new Video(); 

    // code in the statusHandler method: 
    if (eventOBJ.info.code == "NetConnection.Connect.Success") 
    { 
     ns = new NetStream(nc); 
     ns.play("your-stream-name", -1); 
     video.attachNetStream(ns);  
     addChild(video); 
    } 

你簡單地傳遞在Flash變數所需的視頻流的名稱。 例如,如果你使用這個網址:www.yourdomain.com/chat.php?cam=Sally,在這種情況下,通過凸輪參數爲SWF客戶端,並在下面的表單中使用:

ns.play(this.loaderInfo.parameters.cam , -1);