![]() |
|
||||||||||
|
|||||
|
Регистрация: Feb 2012
Сообщений: 68
|
ну а я пытаюсь щас сделать чтобы одно и то же приложение было и отправителем и слушателем....так нельзя?
farPeerID = callers.farID; для чего используется? |
|
|||||
|
Регистрация: Feb 2012
Сообщений: 1,540
|
Используйте библиотеку Tom'а Krcha.
И там же есть примеры. |
|
|||||
|
Регистрация: Sep 2010
Адрес: Ростов-на-Дону
Сообщений: 369
|
Цитата:
в краце: создаете публикующий поток. В его клиенте должен быть определен тот самый метот onPeerConnect, из которого Вы создаете принимающий поток. Ему в конструктор передаете callers.farID, и тогда он начинает (по вызову метода .play(name)) "слушать" оппонента. Вот и все. Отправка идет через публикующий поток, приме - через принимающий. Добавлено через 41 секунду Цитата:
|
|
|||||
|
Регистрация: Feb 2012
Сообщений: 1,540
|
Цитата:
А у меня пинг меньше 0.2 секунд. |
|
|||||
|
Регистрация: Feb 2012
Сообщений: 68
|
каким образом мне тогда сделать обмен этими ID?
помогите ктонибудь, как мне исправить код чтобы все получилось?....я уже просто целый день сижу и запутался в примерах совсем.....дайте аську, скайп или помогите исправить код....чтобы я наглядно увидел как надо было сделать....примеров достаточно....но под конец дня я уже ничего не понимаю.... очень прошу...))) знающему человеку пару минут потратить, а мне еще день копать.... |
|
|||||
|
Регистрация: Sep 2010
Адрес: Ростов-на-Дону
Сообщений: 369
|
Код выложи - посмотрим.
|
|
|||||
|
Регистрация: Feb 2012
Сообщений: 68
|
package { import flash.display.MovieClip; import flash.net.NetConnection; import flash.events.NetStatusEvent; import flash.net.NetStream; import flash.media.Microphone; import flash.media.Camera; import fl.video.*; import flash.media.Video; import flash.net.NetGroup; import flash.net.GroupSpecifier; public class Main extends MovieClip { private const CIRRUS_ADDRESS:String = "rtmfp://p2p.rtmfp.net"; private const DEVELOPER_KEY:String = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"; private var netConnection:NetConnection; private var myPeerID; private var farPeerID; //streams private var sendStream:NetStream; private var recvStream:NetStream; private var video:Video; public function Main() { netConnection = new NetConnection(); // Добавляем детектор (listener) для получаения информации о статусе соединения netConnection.addEventListener(NetStatusEvent.NET_STATUS, netConnectionHandler); // Соединяемся со Cirrus netConnection.connect(CIRRUS_ADDRESS, DEVELOPER_KEY); } function netConnectionHandler(e:NetStatusEvent):void { switch (e.info.code) { case "NetConnection.Connect.Success": trace(e.info.code); myPeerID = netConnection.nearID; initSendStream(); break; } } // для отправки потока данных пиру private function initSendStream() { trace("initSendStream()"); sendStream = new NetStream(netConnection, NetStream.DIRECT_CONNECTIONS); sendStream.addEventListener(NetStatusEvent.NET_STATUS, netStreamHandler); sendStream.publish("media"); sendStream.attachAudio(Microphone.getMicrophone()); sendStream.attachCamera(Camera.getCamera()); var sendStreamClient:Object = new Object(); sendStreamClient.onPeerConnect = function(callers:NetStream):Boolean { farPeerID = callers.farID; trace("onPeerConnect "+farPeerID); return true; } sendStream.client = sendStreamClient; } private function initRecvStream() { trace("initRecvStream()"); trace("myPerrID = ", myPeerID); recvStream = new NetStream(netConnection, myPeerID); recvStream.addEventListener(NetStatusEvent.NET_STATUS, netStreamHandler); recvStream.play("media"); video = new Video(320, 240); video.attachNetStream(recvStream); addChild(video); recvStream.client = this; } function netStreamHandler(e:NetStatusEvent):void { trace(e.info.code); if (e.info.code=="NetStream.Publish.Start") { initRecvStream(); } } } } |
|
|||||
|
Регистрация: Sep 2010
Адрес: Ростов-на-Дону
Сообщений: 369
|
Вызов метода initRecvStream должен быть тут sendStreamClient.onPeerConnect, и передавать ему в качестве параметра callers.farID. И вот тут recvStream = new NetStream(netConnection, farID); он и должен быть в конструкторе
|
|
|||||
|
Регистрация: Feb 2012
Сообщений: 68
|
Цитата:
var sendStreamClient:Object = new Object(); sendStreamClient.onPeerConnect = function(callers:NetStream):Boolean { farPeerID = callers.farID; trace("onPeerConnect "+farPeerID); initRecvStream(farPeerID); return true; } sendStream.client = sendStreamClient; Цитата:
|
|
|||||
|
Регистрация: Sep 2010
Адрес: Ростов-на-Дону
Сообщений: 369
|
initRecvStream(farPeerID);
Вот farPeerID - это оно и есть. А так, как Вы делали: recvStream = new NetStream(netConnection, myPeerID); Это Вы к себе же и подключались) |
![]() |
![]() |
Часовой пояс GMT +4, время: 18:23. |
|
|
« Предыдущая тема | Следующая тема » |
| Теги |
| rtmfp |
|
|