Здравствуйте. Пытаюсь разобраться с p2p соединением посредством RTMFP.
Естественно перед тем как спросить я не один час провел в гугле прежде чем написать на форум.
И так, что собственно сейчас пытаюсь сделать...
Флешка, в которой есть 2 окошка, в одном показывается видео с камеры пользователя, в другом с камеры подключенного пользователя, тоесть такой приватный как бы чат...
Что понял и сделал:
Получил код разработчика на сайте, создал NetConnection, подключился, создал sendStream, тобишь канал по которому собираюсь передавать видео и звук.
Ну и получил peerID. На этом все. Дальше я закопался в примерах и в конец запутался. Поэтому прошу помощи у вас, товарищи...
вот собственно код:

Код AS3:
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();
}
}
}
}
для удобства чтения импорты убрал
Прошу помогите, на самом деле срочно нужно сделать...