![]() |
|
||||||||||
|
|||||
|
Регистрация: Feb 2012
Сообщений: 68
|
Здравствуйте. Пытаюсь разобраться с p2p соединением посредством RTMFP.
Естественно перед тем как спросить я не один час провел в гугле прежде чем написать на форум. И так, что собственно сейчас пытаюсь сделать... Флешка, в которой есть 2 окошка, в одном показывается видео с камеры пользователя, в другом с камеры подключенного пользователя, тоесть такой приватный как бы чат... Что понял и сделал: Получил код разработчика на сайте, создал NetConnection, подключился, создал sendStream, тобишь канал по которому собираюсь передавать видео и звук. Ну и получил peerID. На этом все. Дальше я закопался в примерах и в конец запутался. Поэтому прошу помощи у вас, товарищи... вот собственно код: package { public class Main extends MovieClip { private const CIRRUS_ADDRESS:String = "rtmfp://p2p.rtmfp.net"; private const DEVELOPER_KEY:String = "xxxxxxxxxxxxxxxxxxxxxxxxxxxx-xxxxxxxxxx"; private var netConnection:NetConnection; private var myPeerID; private var farPeerID; //streams private var sendStream:NetStream; private var recvStream:NetStream; private var video:Video; var netGroup:NetGroup; private const GROUP:String = "ashIndie"; 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 { if (e.info.code=="NetConnection.Connect.Success") { trace(e.info.code); myPeerID = netConnection.nearID; initSendStream(); } } // для отправки потока данных пиру 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(); } } } } Прошу помогите, на самом деле срочно нужно сделать... Последний раз редактировалось ashIndie; 25.02.2012 в 18:00. |
![]() |
Часовой пояс GMT +4, время: 00:55. |
|
|
« Предыдущая тема | Следующая тема » |
| Теги |
| rtmfp |
|
|