Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Не работает NetStream.play() (http://www.flasher.ru/forum/showthread.php?t=152920)

MrAngel 24.03.2011 23:33

Не работает NetStream.play()
 
Вложений: 1
Здравствуйте! Создаю простенький видеочат с использованием RTMFP. Использую Adobe Flash CS5.

Открываю приложение в разных окнах браузера, соединяюсь, но к сожалению не получается получить во втором окне поток видеоданных из экземпляра приложения находящегося в первом окне. :(

Публикую видеопоток с помощью следующего кода:

Код AS3:

...
var cam:Camera = Camera.getCamera();
var video:Video = new Video();
video.attachCamera(cam);
 
_netStream.attachCamera(cam);
_netStream.publish("multicast_"+_nick);       
 
video_count++;
 
video.name = "video_"+video_count;
 
addChild(video);
video.x = 625;
video.y = 30;
 
video.height /= (video.width/170);
video.width /= (video.width/170);
...

Пытаюсь просмотреть его так:

Код AS3:

...
var video:Video = new Video();
 
_netStream.play(e.target.selectedItem.data.toString());
video.attachNetStream(_netStream);
 
video_count++;
 
video.name = "video_"+video_count;
 
addChild(video);
 
video.height /= (video.width/170);
video.width /= (video.width/170);
 
video.x = 625;
video.y = 30 + (video_count-1)*(video.height+5);
...

Выскакивает "NetStream.Play.Failed"

Подскажите пожалуйста в чем причина?

P.S. На всякий случай приаттачил полные исходные коды.

MrAngel 25.03.2011 11:19

Все, проблема решена) Загвоздка была в том что использовал один и тот же поток для публикации и для чтения.. немудрено, что NetStream ругался :)

Но вот есть еще один неразрешенный вопросец.. Пусть и не самый важный, но хотелось бы с ним тоже разобраться.

Вообщем после подключения к группе нового клиента этот клиент отправляет всем сообщение о том что он появился таким образом:

Код AS3:

private function say_that_i_login():void
{
                ...
                var mes:Object = new Object();
                mes.user = _nick;
                mes.sequnce = _sequence++;
                mes.sender = _netConnection.nearID;
 
                status_output.appendText("say that I login.. \n");
 
                mes.action = "login";
                _netGroup.sendToAllNeighbors(mes);
                ...
}

Функция say_that_i_login() вызывается непосредственно после получения сообщения NetGroup.Connect.Success. Но вот беда, это сообщение так ни до кого и не доходит. Несмотря на сообщение об удачном подключении к группе, у нашего клиента похоже нет ни одного соседа...

Так вот собсно вопрос в том есть ли у клиента получившего сообщение NetGroup.Connect.Success в момент его получения связь хоть с одним из клиентов той же группы? Или же связь настраивается постепенно и в первоначальный момент он не связан вообще не с кем?

kseniya 25.03.2011 11:56

Может лучше использовать post?
отправлять нужно после соединения пользователя к группе это NetGroup.Neighbor.Connect
Код AS3:

//отправка
var mes:Object = new Object();
mes.user = _nick;
mes.sequnce = _sequence++;
mes.sender = _netConnection.nearID;
mes.action = "login";
_netGroup.post(message);
 
//приём
_netConnection.addEventListener(NetStatusEvent.NET_STATUS,netConnectionHandler);
function netConnectionHandler(event:NetStatusEvent):void {
        switch (event.info.code) {
                case "NetGroup.Posting.Notify" :
                        trace(event.info.message.action);
                        break;
        }
}


xamelyon 26.03.2011 20:26

Здравствуйте.
3 день изучаю Flex/Actionscript 3 (новичок), не могу разобраться с проблемой связанная с addEventListener.

Код:
Код AS3:

incomingStream = new NetStream(netConnection, conn_id);
incomingStream.addEventListener(NetStatusEvent.NET_STATUS, netConnectionHandler);
incomingStream.play("stream");
 
conn_id содержит ID пира которого нужно прослушать, но если пир не существует я не получаю никакую информацию в netConnectionHandler.
 
private function netConnectionHandler(event:NetStatusEvent):void
{
      trace("netConnectionHandler " + event.info.code);
}

Помогите пожалуйста.


Часовой пояс GMT +4, время: 12:40.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.