Я реализую одноранговое приложение для видеоконференций во Flex, используя новый протокол RTMFP и NetGroups ..
Допустим, имягруппа это группа1.То, что я хочу сделать, это;Когда новый узел подключается к Group1;создать новый видеодисплей для каждого присоединяющегося партнера и сразу же воспроизвести его / ее поток.
Я слушаю событие NetStatus
NetConnection
и "NetStream.Connect.Success"
;Я хочу добавить нового партнера и воспроизвести его / ее поток.
Но моя проблема заключается в следующем:
Как узнать имя потока, чтобы я мог воспроизвести этот поток для этого присоединяющегося партнера?,NetStream.Connect.Success
даст мне только свойство event.info.stream
, но я не могу найти имя потока, который будет воспроизводиться для этого конкретного пира.
Вот краткая версия кода:
private function connect():void
{
var conn:NetConnection = new NetConnection();
conn.addEventListener(NetStatusEvent.NET_STATUS, onNetStatus);
conn.connect(rtmfpServer);
}
private function setupGroup():void
{
var gspec:GroupSpecifier = new GroupSpecifier("Group1");
gspec.multicastEnabled = true;
gspec.postingEnabled = true;
gspec.serverChannelEnabled = true;
var group:NetGroup = new NetGroup(conn, gspec.groupspecWithAuthorizations());
group.addEventListener(NetStatusEvent.NET_STATUS, onNetStatus);
}
protected function onNetStatus(e:NetStatusEvent):void
{
switch (e.info.code)
{
case "NetConnection.Connect.Success": //connected to the server
setupGroup(); //create and connect to the group
break;
case "NetGroup.Connect.Success": //connected to the group
publishMyVideo(); //create a player for my own video and publish it to the group
break;
case "NetStream.Connect.Success": //a new stream is connected
if (NetStream(e.info.stream) != myStream) //if this is not my own stream; it's a new joining peer...
{
createPlayerForPeer(); //Create a video player for each joning peer
playPeersVideo(); //what is the stream name to play?
}
break;
}
}
Любая помощь приветствуется .. спасибо ..