...
1. В самом начале, при инициализации берется доступ к камере и микрофону.line 65
Code Block | ||||
---|---|---|---|---|
| ||||
cam = Camera.getCamera(); localDisplay.attachCamera(cam); mic = Microphone.getEnhancedMicrophone(); remoteDisplayHolder.addChild(remoteDisplay); |
...
При успешном соединении с сервером будет вызван метод joinRoom() для присоединения к комнате.
Code Block | ||||
---|---|---|---|---|
| ||||
session = new Session(url, username); session.on(SessionStatus.FAILED, function():void{ setStatus(sessionStatus, SessionStatus.FAILED); onLeft(); }).on(SessionStatus.DISCONNECTED, function():void { setStatus(sessionStatus, SessionStatus.DISCONNECTED); onLeft(); }).on(SessionStatus.ESTABLISHED, function():void { setStatus(sessionStatus, SessionStatus.ESTABLISHED); joinRoom(); }); session.connect(); |
...
4. Публиковать видеопоток с веб-камеры на WCS-сервер. line 232
Code Block | ||||
---|---|---|---|---|
| ||||
private function publishLocalMedia(room:Room):void { var stream:NetStream = room.publish(mic, cam); stream.addEventListener(NetStatusEvent.NET_STATUS, function(event:NetStatusEvent):void{ Logger.info("handlePublishStreamStatus: "+event.info.code); switch (event.info.code) { case "NetStream.Publish.BadName": setStatus(streamStatus, "FAILED"); onMediaStopped(room); break; case "NetStream.Unpublish.Success": setStatus(streamStatus, "UNPUBLISHED"); onMediaStopped(room); break; case "NetStream.Publish.Start": setStatus(streamStatus, "PUBLISHING"); onMediaPublished(stream); break; } }); } |
5. Воспроизвести поток другого участника. line 207
Code Block | ||||
---|---|---|---|---|
| ||||
private function playParticipantsStream(p:Participant):void { var stream:NetStream = p.play(); if (stream != null) { remoteDisplay.attachNetStream(stream); stream.addEventListener(NetStatusEvent.NET_STATUS, function(event:NetStatusEvent):void{ Logger.info("handlePlayStreamStatus: "+event.info.code); switch (event.info.code) { case "NetStream.Video.DimensionChange": var res:Object = downScaleToFitSize(remoteDisplay.videoWidth, remoteDisplay.videoHeight, display.width, display.height); remoteDisplay.width = res.w; remoteDisplay.height = res.h; remoteDisplayHolder.width = res.w; remoteDisplayHolder.height = res.h; break; case "NetStream.Play.UnpublishNotify": case "NetStream.Play.Stop": remoteDisplay.clear(); break; } }); } } |
...