我有一个简单的视频/聊天应用程序内置在FLEX。我为不同的功能创建了一个groupSpecifier、netGroup和NetStream。
NetGroup主要用于发送消息和跟踪进入的用户。
NetStream (或将用于)控制“开始视频,停止视频”等功能,用于同一组中的每个人。
我将在这里发布的最重要的功能。第一个是setupGroup。
private function setupGroup():void{
var groupspec:GroupSpecifier = new GroupSpecifier("vid"+GROUP_ID+"_sid_"+SESSION_ID);
groupspec.serverChannelEnabled = true;
groupspec.postingEnabled = true;
groupspec.multicastEnabled = true;
groupspec.ipMulticastMemberUpdatesEnabled = true;
trace("Groupspec: "+groupspec.groupspecWithoutAuthorizations());
netGroup = new NetGroup(nc,groupspec.groupspecWithoutAuthorizations());
netGroup.addEventListener(NetStatusEvent.NET_STATUS,netStatus);
netVideo = new NetStream(nc,groupspec.groupspecWithoutAuthorizations());
netVideo.addEventListener(NetStatusEvent.NET_STATUS,netStatus);
user = "user"+Math.round(Math.random()*10000);
}第二个是sendMessage
private function sendMessage():void{
var message:Object = new Object();
message.sender = netGroup.convertPeerIDToGroupAddress(nc.nearID);
message.user = txtUser.text;
message.text = txtMessage.text;
netGroup.post(message);
receiveMessage(message);
txtMessage.text = "";
}然后是startVideo
private function startVideo():void{
netVideo.send("publishVideo");
ns.togglePause();
}还有一个名为"publishVideo“的函数,我希望这个函数能为组中的其他成员调用,但这并没有发生。大部分代码都是从http://www.flashrealtime.com提供的示例Tom中直接得到的。如有任何帮助或建议,将不胜感激!
附注:由于延迟,我不使用组对象复制。
发布于 2011-06-08 09:36:49
答案很简单。
你需要从以下视频开始:
netVideo.publish("channel");NetStream.send()用于调用接收方NetStream.client对象上的回调方法。
http://www.flashrealtime.com/multicast-explained-flash-101-p2p/
https://stackoverflow.com/questions/4233247
复制相似问题