Versions Compared

Key

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

...

Code Block
languagejs
themeRDark
    Flashphoner.createSession({urlServer: url}).on(SESSION_STATUS.ESTABLISHED, function(session){
        setStatus(session.status());
        //session connected, start playback
        startStreaming(session);
    }).on(SESSION_STATUS.DISCONNECTED, function(){
        ...
    }).on(SESSION_STATUS.FAILED, function(){
        ...
    });

4. Get audio publishing and playing constraints from the client pageПолучение граничных параметров для публикации и воспроизведения со страницы клиента

getConstraints() код

Audio constraint: true or false (depending on the value both published and played stream will have or have not audio)

Video constraint: true (published and played streams will have videoПараметры аудио: true или false (в зависимости от значения и публикация, и воспроизведение будут производиться с аудио или без)

Параметры видео: true (потоки будут публиковаться и воспроизводиться с видео)

Code Block
languagejs
themeRDark
    var constraints = {
        audio: $("#hasAudio").is(':checked'),
        video: true
    };

5. Video streamingПубликация видеопотока

session.createStream(), publish() кодWhen stream is created, the following parameters are passed

При создании потока передаются следующие параметры

  • streamName - имя потокпотока, публикуемого участником конференции (в данном случае login + "#" + roomName, где login - имя участника)
  • mockLocalDisplay - div-элемент, required for the local camera video (will not be displayed to the user in the caseтребуемый для отображения видео локальной камеры (в данном случае не будет виден пользователю)
  • constraints - getConstraints() код (in this case is used to specify if the published stream will have audioв данном случае, чтобы указать, должна ли публикация производиться с аудио)
Code Block
languagejs
themeRDark
    publishStream = session.createStream({
        name: streamName,
        display: mockLocalDisplay,
        receiveVideo: false,
        receiveAudio: false,
        constraints: getConstraints()
    }).on(STREAM_STATUS.PUBLISHING, function (publishStream) {
        ...
    });
    publishStream.publish();

6. Receiving the event confirming successful streamingПолучение от сервера события, подтверждающего успешную публикацию потока

StreamStatusEvent PUBLISHING кодOn receiving the event, a stream for playing the participant's conference mixer is created

При получении данного события создается видеопоток для воспроизведения микшера конференции для этого участника

Code Block
languagejs
themeRDark
    publishStream = session.createStream({
        ...
    }).on(STREAM_STATUS.PUBLISHING, function (publishStream) {
        //play preview
        playStream(session);
        ...
    });

...

session.createStream(), play() кодWhen stream is created, the following parameters are passed

При создании потока передаются следующие параметры

  • streamName - имя микшера, кторый будет воспроизводиться для участника (в данном случае roomName + "-" + login + roomName, где login - имя участника)
  • remoteVideo - div-элемент, в котором будет отображаться видео
  • constraints - getConstraints() код (in this case is used to specify if the played stream will have audio (в данном случае, чтобы указать, должно ли воспроизведение производиться с аудио)
Code Block
languagejs
themeRDark
    conferenceStream = session.createStream({
        name: streamName,
        display: remoteVideo,
        constraints: getConstraints()
        ...
    });
    conferenceStream.play();

8. Receiving the event confirming successful playbackStreamStatusEvent PLAYING codeПолучение от сервера события, подтверждающего воспроизведение потока

StreamStatusEvent PLAYING код

Code Block
languagejs
themeRDark
    conferenceStream = session.createStream({
        name: streamName,
        display: remoteVideo,
        constraints: getConstraints()
    }).on(STREAM_STATUS.PENDING, function (stream) {
        ...
    }).on(STREAM_STATUS.PLAYING, function (stream) {
        $("#preloader").hide();
        setStatus(stream.status());
        onStarted();
    }).on(STREAM_STATUS.STOPPED, function () {
        ...
    }).on(STREAM_STATUS.FAILED, function (stream) {
       ...
    });

...

Code Block
languagejs
themeRDark
    conferenceStream.stop();
    publishStream.stop();

10. Receiving the event confirming successful streaming stopПолучение от сервера события, подтверждающего остановку публикации

StreamStatusEvent UNPUBLISHED код

Code Block
languagejs
themeRDark
    publishStream = session.createStream({
        name: streamName,
        display: mockLocalDisplay,
        receiveVideo: false,
        receiveAudio: false,
        constraints: getConstraints()
    }).on(STREAM_STATUS.PUBLISHING, function (publishStream) {
        ...
    }).on(STREAM_STATUS.UNPUBLISHED, function () {
        onStopped();
    }).on(STREAM_STATUS.FAILED, function (stream) {
        ...
    });

11. Receiving the event confirming playback stopПолучение от сервера события, подтверждающего остановку воспроизведения

StreamStatusEvent STOPPED код

...