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){
        //session connected, start streaming
        startStreaming(session);
    }).on(SESSION_STATUS.DISCONNECTED, function(){
        setStatus(SESSION_STATUS.DISCONNECTED);
        onStopped();
    }).on(SESSION_STATUS.FAILED, function(){
        setStatus(SESSION_STATUS.FAILED);
        onStopped();
    });

...

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


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

...

Code Block
languagejs
themeRDark
    var constraints = {
        video: {
            width: parseInt($('#width').val()),
            height: parseInt($('#height').val()),
            frameRate: parseInt($('#fps').val()),
            type: "screen"
        }
    };
    session.createStream({
        name: streamName,
        display: localVideo,
        constraints: constraints
        }).on(STREAM_STATUS.PUBLISHING, function(publishStream){
        /*
         * User can stop sharing screen capture using Chrome "stop" button.
         * Catch onended video track event and stop publishing.
         */
        document.getElementById(publishStream.id()).srcObject.getVideoTracks()[0].onended = function (e) {
            publishStream.stop();
        };
        document.getElementById(publishStream.id()).addEventListener('resize', function(event){
            resizeVideo(event.target);
        });
        setStatus(STREAM_STATUS.PUBLISHING);
        //play preview
        session.createStream({
            name: streamName,
            display: remoteVideo
        }).on(STREAM_STATUS.PLAYING, function(previewStream){
            document.getElementById(previewStream.id()).addEventListener('resize', function(event){
                resizeVideo(event.target);
            });
            //enable stop button
            onStarted(publishStream, previewStream);
        }).on(STREAM_STATUS.STOPPED, function(){
            publishStream.stop();
        }).on(STREAM_STATUS.FAILED, function(){
            //preview failed, stop publishStream
            if (publishStream.status() == STREAM_STATUS.PUBLISHING) {
                setStatus(STREAM_STATUS.FAILED);
                publishStream.stop();
            }
        }).play();
    }).on(STREAM_STATUS.UNPUBLISHED, function(){
        setStatus(STREAM_STATUS.UNPUBLISHED);
        //enable start button
        onStopped();
    }).on(STREAM_STATUS.FAILED, function(){
        setStatus(STREAM_STATUS.FAILED);
        //enable start button
        onStopped();
    }).publish();

5. Получение от сервера события, подтверждающего успешную публикацию потока

StreamStatusEvent PUBLISHED код

При получении данного события запускается проигрывание превью в отдельном элементе на странице при помощи session.createStream() и play()

Code Block
languagejs
themeRDark
  session.createStream({
        name: streamName,
        display: localVideo,
        constraints: constraints
    }).on(STREAM_STATUS.PUBLISHING, function(publishStream){
        /*
         * User can stop sharing screen capture using Chrome "stop" button.
         * Catch onended video track event and stop publishing.
         */
        document.getElementById(publishStream.id()).srcObject.getVideoTracks()[0].onended = function (e) {
            publishStream.stop();
        };
        document.getElementById(publishStream.id()).addEventListener('resize', function(event){
            resizeVideo(event.target);
        });
        setStatus(STREAM_STATUS.PUBLISHING);
        //play preview
        session.createStream({
            name: streamName,
            display: remoteVideo
        }).on(STREAM_STATUS.PLAYING, function(previewStream){
            document.getElementById(previewStream.id()).addEventListener('resize', function(event){
                resizeVideo(event.target);
            });
            //enable stop button
            onStarted(publishStream, previewStream);
        }).on(STREAM_STATUS.STOPPED, function(){
            publishStream.stop();
        }).on(STREAM_STATUS.FAILED, function(){
            //preview failed, stop publishStream
            if (publishStream.status() == STREAM_STATUS.PUBLISHING) {
                setStatus(STREAM_STATUS.FAILED);
                publishStream.stop();
            }
        }).play();
    }).on(STREAM_STATUS.UNPUBLISHED, function(){
        setStatus(STREAM_STATUS.UNPUBLISHED);
        //enable start button
        onStopped();
    }).on(STREAM_STATUS.FAILED, function(){
        setStatus(STREAM_STATUS.FAILED);
        //enable start button
        onStopped();
    }).publish();

6. Получение от сервера события, подтверждающего успешное воспроизведение превью-потока

StreamStatusEvent PLAYING код

Code Block
languagejs
themeRDark
     session.createStream({
            name: streamName,
            display: remoteVideo
        }).on(STREAM_STATUS.PLAYING, function(previewStream){
            document.getElementById(previewStream.id()).addEventListener('resize', function(event){
                resizeVideo(event.target);
            });
            //enable stop button
            onStarted(publishStream, previewStream);
        }).on(STREAM_STATUS.STOPPED, function(){
            publishStream.stop();
        }).on(STREAM_STATUS.FAILED, function(){
            //preview failed, stop publishStream
            if (publishStream.status() == STREAM_STATUS.PUBLISHING) {
                setStatus(STREAM_STATUS.FAILED);
                publishStream.stop();
            }
        }).play();

7. Остановка воспроизведения видеопотока.

stream.stop() код

Code Block
languagejs
themeRDark
function onStarted(publishStream, previewStream) {
    $("#publishBtn").text("Stop").off('click').click(function(){
        $(this).prop('disabled', true);
        previewStream.stop();
    }).prop('disabled', false);
}

...

...
    }).publish();


5. Получение от сервера события, подтверждающего успешную остановку воспроизведения публикацию потока.

StreamStatusEvent STOPPED PUBLISHING код

При получении этого события останавливается публикация потока при помощи publishStream.stopданного события запускается проигрывание превью в отдельном элементе на странице при помощи session.createStream() и play()

Code Block
languagejs
themeRDark
    session.createStream({
            name: streamName,
            display: remoteVideo
        }).on(STREAM_STATUS.PLAYING, function(previewStream){
localVideo,
        constraints: constraints
    document}).getElementByIdon(previewStream.id()).addEventListener('resize'STREAM_STATUS.PUBLISHING, function(eventpublishStream){
        /*
        resizeVideo(event.target);
            }); * User can stop sharing screen capture using Chrome "stop" button.
         * Catch onended //enable stop button
    video track event and stop publishing.
        onStarted(publishStream, previewStream); */
        }).on(STREAM_STATUS.STOPPED, function()document.getElementById(publishStream.id()).srcObject.getVideoTracks()[0].onended = function (e) {
            publishStream.stop();
        };
        document.getElementById(publishStream.id()).on(STREAM_STATUS.FAILEDaddEventListener('resize', function(event){
            //preview failed, stop publishStream
resizeVideo(event.target);
        });
       if (publishStream.status() == setStatus(STREAM_STATUS.PUBLISHING) {
;
        //play preview
        session.createStream({
          setStatus(STREAM_STATUS.FAILED);
  name: streamName,
             publishStream.stop();display: remoteVideo
            }
    ...
    }).play();

9. Остановка публикации видеопотока по кнопке расширения Chrome

publishStream.stop(). код

Code Block
languagejs
themeRDark
  document.getElementById(publishStream.id()).srcObject.getVideoTracks()[0].onended = function (e)     }).play();
    }).on(STREAM_STATUS.UNPUBLISHED, function(){
        ...
    publishStream.stop();
}).on(STREAM_STATUS.FAILED, function(){
        ...
    }).publish();


106. Получение от сервера события, подтверждающего успешную остановку публикации потока.успешное воспроизведение превью-потока

StreamStatusEvent UNPUBLISHED PLAYING код

Code Block
languagejs
themeRDark
        session.createStream({
            name: streamName,
            display: localVideo, remoteVideo
        }).on(STREAM_STATUS.PLAYING, function(previewStream){
        constraints: constraints
    }document.getElementById(previewStream.id()).on(STREAM_STATUS.PUBLISHINGaddEventListener('resize', function(publishStreamevent){
        /*
         * User can stop sharing screen capture using Chrome "stop" button.
resizeVideo(event.target);
            });
          * Catch onended//enable videostop trackbutton
 event and stop publishing.
         */onStarted(publishStream, previewStream);
        document.getElementById(publishStream.id()}).srcObject.getVideoTracks()[0].onended = function (e) on(STREAM_STATUS.STOPPED, function(){
            publishStream.stop();
        };...
        document}).getElementByIdon(publishStream.id()).addEventListener('resize'STREAM_STATUS.FAILED, function(event){
            resizeVideo(event.target);
...
        }).play();


7. Остановка воспроизведения видеопотока.

stream.stop() код

Code Block
languagejs
themeRDark
function onStarted(publishStream,   });previewStream) {
        setStatus(STREAM_STATUS.PUBLISHING);
        //play preview
        session.createStream($("#publishBtn").text("Stop").off('click').click(function(){
            name: streamName,$(this).prop('disabled', true);
        previewStream.stop();
    display: remoteVideo
        }).on(STREAM_STATUS.PLAYING, function(previewStream){
     }).prop('disabled', false);
}


8. Получение от сервера события, подтверждающего успешную остановку воспроизведения потока.

StreamStatusEvent STOPPED код

При получении этого события останавливается публикация потока при помощи publishStream.stop()

Code Block
languagejs
themeRDark
       document.getElementById(previewStream.id()).addEventListener('resize', function(event) session.createStream({
            name: streamName,
      resizeVideo(event.target);
      display: remoteVideo
        });
.on(STREAM_STATUS.PLAYING, function(previewStream){
            ...
        //enable stop button}).on(STREAM_STATUS.STOPPED, function(){
            onStarted(publishStream, previewStreampublishStream.stop();
        }).on(STREAM_STATUS.STOPPEDFAILED, function(){
            publishStream.stop();...
        }).on(STREAM_STATUS.FAILED, function(){
play();


9. Остановка публикации видеопотока по кнопке расширения Chrome

publishStream.stop(). код

Code Block
languagejs
themeRDark
        document.getElementById(publishStream.id()).srcObject.getVideoTracks()[0].onended = function  //preview failed, stop publishStream
 (e) {
           if (publishStream.statusstop() == STREAM_STATUS.PUBLISHING) {
   ;
        };


10. Получение от сервера события, подтверждающего успешную остановку публикации потока.

StreamStatusEvent UNPUBLISHED код

Code Block
languagejs
themeRDark
     setStatus(STREAM_STATUS.FAILED);
session.createStream({
        name: streamName,
         publishStream.stop();
display: localVideo,
        constraints: constraints
    }).on(STREAM_STATUS.PUBLISHING, function(publishStream){
        }).play();...
    }).on(STREAM_STATUS.UNPUBLISHED, function(){
        setStatus(STREAM_STATUS.UNPUBLISHED);
        //enable start button
        onStopped();
    }).on(STREAM_STATUS.FAILED, function(){
        setStatus(STREAM_STATUS.FAILED);
        //enable start button
        onStopped();...
    }).publish();