netStream с groupSpecifier не отправляет обработчик, FLEX - PullRequest
1 голос
/ 20 ноября 2010

У меня есть простое приложение для видео / чата, встроенное в 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. Буду признателен за любую помощь / предложения!

ps Я не использую репликацию объектов группы из-за задержки.

1 Ответ

0 голосов
/ 08 июня 2011

Ответ прозаично прост.

Вам нужно начать видео с:

netVideo.publish("channel");

NetStream.send() - для вызова метода обратного вызова на получателе NetStream.client объекта.

http://www.flashrealtime.com/multicast-explained-flash-101-p2p/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...