Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

1. В самом начале, при инициализации берется доступ к камере и микрофону.line 65

Code Block
languagejs
themeRDark
cam = Camera.getCamera();
localDisplay.attachCamera(cam);
mic = Microphone.getEnhancedMicrophone();
remoteDisplayHolder.addChild(remoteDisplay);

...

При успешном соединении с сервером будет вызван метод joinRoom() для присоединения к комнате.

Code Block
languagebash
themeRDark
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
languagejs
themeRDark
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
languagejs
themeRDark
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;
    }
});
}
}

...