[英]p2p publish and play
在這里與p2p斗爭。 有人可以幫我澄清一下嗎...我正在閱讀的所有內容都不一致,包括Adobe文檔。
要發布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)我像說的那樣做了配置多流html頁面。 然后,我將manifest.f4m像上面所說的那樣放在服務器上。 我是否需要在流名稱中引用任何內容? 我看到了一篇文章,提供了可以在FMLE中使用的查詢字符串。 我以為可能需要使用它作為流名稱?
4)為了進行查看...在netStream連接中...某些人將其作為peerID作為第二個參數,而其他人將其作為groupSpecifier.groupspecWithAuthorizations()。 正確的是peerID,因為我要說我想查看該人並且它知道要連接到哪個組,因為我在nc中指定了GroupSpecifier時就指定了該名稱。
5)publish .... ns.publish(“ stream”)中流的名稱有什么含義嗎? 可能是馬還是驢? 如果要根據groupSpecifier知道要連接到哪個組,為什么還要指定任何內容? 是因為您可以連接到一個“組”,並且在該組中可以更好地連接到“驢”網絡流嗎?
2)你與發行方NetStream
過NetConnection
,不NetStream
過度NetGroup
,所以你不需要NetGroup
直接發布到其它對等體連接時,在所有NetStream(nc, peerId)
使用NetStream(nc, NetStream.DIRECT_CONNECTIONS)
時,不會通過NetGroup
發布,因此需要與NetStream(nc, peerID)
如果您使用NetStream(nc, gs.groupspecWithAuthorizations())
那么您將使用NetStream(nc, gs.groupspecWithAuthorizations())
您需要選擇通過NetStream @ DIRECT_CONNECTIONS或NetStream @ NetGroup發布
4a)參數peerId用於NetStream @ DIRECT_CONNECTIONS
4b)參數gs.groupspecWithAuthorizations()用於NetStream @ NetGroup
5)是的,它是:)您需要發布並播放相同的字符串,它是流的標識: ns.publish("StreamName")
然后是ns2.play("StreamName")
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.