用p2p在這裏掙扎。有人能爲我澄清這一點......我讀的所有內容都不一致,包括Adobe文檔。p2p發佈並播放
要發佈你需要一個P2P:
var nc:NetConnection = new NetConnection();
var ns:NetStream = new NetStream(nc, NetStream.DIRECT_CONNECTIONS);
ns.attachCamera(cam);
ns.attachAudio(mic);
groupSpecifier = new GroupSpecifier("fms.mygroup");
groupSpecifier.multicastEnabled = true;
groupSpecifier.postingEnabled = true;
groupSpecifier.serverChannelEnabled = true;
group = new NetGroup(nc,groupSpecifier.groupspecWithAuthorizations());
group.addEventListener(NetStatusEvent.NET_STATUS, onNetStatus);
ns.publish("stream");
這應該發佈,我相信。是對的嗎?
再有就是觀看現場直播:
var v2:Video = new Video();
var ns2:NetStream = new NetStream(nc,myPeerID);
ns2.addEventListener(NetStatusEvent.NET_STATUS,onPublish);
ns2.client = this;
ns2.play(userName);
v2.attachNetStream(ns2);
c.addChild(v2);
myPeerID是獨一無二的,但我不能看到流。所以這裏是我的問題:
1)是否有可能我出於某種原因看不到自己的流?
2)對於查看...也許它沒有看到流,因爲我沒有對groupSpecifier說什麼。雖然我確實將groupSpecifier附加到nc,所以不會全部設置,因爲我已經這樣做了?我只是想,也許我沒有連接到同一組。
3)我做了配置multistream html頁面,就像它說的那樣。然後我把manifest.f4m放在服務器上,就像它說的那樣。我需要參考我的流名稱中的任何內容嗎?我看到一篇文章給出了我可以在FMLE中使用的查詢字符串。我想也許我需要使用它作爲我的流名稱?
4)在netStream連接中查看...有些人將它作爲第二個參數作爲peerID,而其他人則將其設置爲groupSpecifier.groupspecWithAuthorizations()。這將是peerID的權利,因爲我需要說我想查看那個人,並且知道要連接到哪個組,因爲我指定了當我在nc中執行GroupSpecifier時。
5)發佈中的流的名稱.... ns.publish(「流」)是什麼意思?它可以是馬還是驢?爲什麼我必須指定任何東西,如果它應該根據groupSpecifier知道要連接的組是什麼?是否因爲你可以連接到一個「組」,並在該組內,你可以連接到「驢」netstream更細的?