Versions Compared

Key

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

...

Code Block
languagejs
themeRDark
        var url = field('url');
        log("Create new session with url " + url);
        $('#url').prop('disabled', true);
        session = Flashphoner.createSession({urlServer: url}).on(SESSION_STATUS.ESTABLISHED, function(session){
            //session connected, start streaming...
        });


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

ConnectionStatusEvent ESTABLISHED код

Code Block
languagejs
themeRDark
    startStreaming(session);
    session =   }).on(Flashphoner.createSession({urlServer: url}).on(SESSION_STATUS.DISCONNECTEDESTABLISHED, function(session){
            setStatus(SESSION_STATUS.DISCONNECTED);
            $('#url').prop('disabled', false);//session connected, start streaming
            onStoppedstartStreaming(session);
        }).on(SESSION_STATUS.FAILEDDISCONNECTED, function(){
            setStatus(SESSION_STATUS.FAILED);...
            $('#url'}).prop('disabled'on(SESSION_STATUS.FAILED, falsefunction();{
            onStopped();...
        }).on(SESSION_STATUS.DEBUG, function(event){
            log("Debug session " + event.status);...
            if (event.file) {
                var link = window.location.protocol + "//" + window.location.host + "/" + event.file;
                $("#link").attr("href", link);
                $("#downloadDiv").show();
            }
        });

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

ConnectionStatusEvent ESTABLISHED код

Code Block
languagejs
themeRDark
session = 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);
            $('#url').prop('disabled', false);
            onStopped();
        }).on(SESSION_STATUS.FAILED, function(){
            setStatus(SESSION_STATUS.FAILED);
            $('#url').prop('disabled', false);
            onStopped();
        }).on(SESSION_STATUS.DEBUG, function(event){
            log("Debug session " + event.status);
            if (event.file) {
                var link = window.location.protocol + "//" + window.location.host + "/" + event.file;
                $("#link").attr("href", link);
                $("#downloadDiv").show();
            }
        });

4. Запуск отладочного вывода сессии и публикация видеопотока.

session.startDebug(), session.createStream(), publish() код

При создании передается имя видеопотока streamName, а также localVideo - div-элемент, в котором будет отображаться видео с камеры.

Code Block
languagejs
themeRDark
  session.startDebug();
    session.createStream({
        name: streamName,
        display: localVideo,
        cacheLocalResources: true,
        receiveVideo: false,
        receiveAudio: false
    }).on(STREAM_STATUS.PUBLISHING, function(publishStream){
        log("Stream " + streamName + " " + STREAM_STATUS.PUBLISHING);
        setStatus(STREAM_STATUS.PUBLISHING);
        //play preview
        session.createStream({
            name: streamName,
            display: remoteVideo
        }).on(STREAM_STATUS.PLAYING, function(previewStream){
            //enable stop button
            log("Stream " + streamName + " " + STREAM_STATUS.PLAYING);
            onStarted(publishStream, previewStream);
        }).on(STREAM_STATUS.STOPPED, function(){
            log("Stream " + streamName + " " + STREAM_STATUS.STOPPED);
            publishStream.stop();
        }).on(STREAM_STATUS.FAILED, function(stream){
            log("Stream " + streamName + " " + STREAM_STATUS.FAILED);
            //preview failed, stop publishStream
            if (publishStream.status() == STREAM_STATUS.PUBLISHING) {
                log("Stream " + streamName + " " + STREAM_STATUS.FAILED);
                setStatus(STREAM_STATUS.FAILED, stream);
                publishStream.stop();
            }
        }).play();
    }).on(STREAM_STATUS.UNPUBLISHED, function(){
        setStatus(STREAM_STATUS.UNPUBLISHED);
        log("Stream " + streamName + " " + STREAM_STATUS.UNPUBLISHED);
        //enable start button
        onStopped();
    }).on(STREAM_STATUS.FAILED, function(stream){
        log("Stream " + streamName + " " + STREAM_STATUS.FAILED);
        setStatus(STREAM_STATUS.FAILED, stream);
        //enable start button
        onStopped();
    }).publish();

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

StreamStatusEvent PUBLISHING код

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

Code Block
languagejs
themeRDark
 session.createStream({
        name: streamName,
        display: localVideo,
        cacheLocalResources: true,
        receiveVideo: false,
        receiveAudio: false
    }).on(STREAM_STATUS.PUBLISHING, function(publishStream){
        log("Stream " + streamName + " " + STREAM_STATUS.PUBLISHING);
        setStatus(STREAM_STATUS.PUBLISHING);
        //play preview
        session.createStream({
            name: streamName,
            display: remoteVideo
        }).on(STREAM_STATUS.PLAYING, function(previewStream){
            //enable stop button
            log("Stream " + streamName + " " + STREAM_STATUS.PLAYING);
            onStarted(publishStream, previewStream);
        }).on(STREAM_STATUS.STOPPED, function(){
            log("Stream " + streamName + " " + STREAM_STATUS.STOPPED);
            publishStream.stop();
        }).on(STREAM_STATUS.FAILED, function(stream){
            log("Stream " + streamName + " " + STREAM_STATUS.FAILED);
            //preview failed, stop publishStream
            if (publishStream.status() == STREAM_STATUS.PUBLISHING) {
                log("Stream " + streamName + " " + STREAM_STATUS.FAILED);
                setStatus(STREAM_STATUS.FAILED, stream);
                publishStream.stop();
            }
        }).play();
    }).on(STREAM_STATUS.UNPUBLISHED, function(){
        setStatus(STREAM_STATUS.UNPUBLISHED);
        log("Stream " + streamName + " " + STREAM_STATUS.UNPUBLISHED);
        //enable start button
        onStopped();
    }).on(STREAM_STATUS.FAILED, function(stream){
        log("Stream " + streamName + " " + STREAM_STATUS.FAILED);
        setStatus(STREAM_STATUS.FAILED, stream);
        //enable start button
        onStopped();
    }).publish();

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

previewStream.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);
    $("#downloadDiv").hide();
}

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

StreamStatusEvent STOPPED код

Code Block
languagejs
themeRDark
   session.createStream({
            name: streamName,
            display: remoteVideo
        }).on(STREAM_STATUS.PLAYING, function(previewStream){
            //enable stop button
            log("Stream " + streamName + " " + STREAM_STATUS.PLAYING);
            onStarted(publishStream, previewStream);
        }).on(STREAM_STATUS.STOPPED, function(){
            log("Stream " + streamName + " " + STREAM_STATUS.STOPPED);
            publishStream.stop();
        }).on(STREAM_STATUS.FAILED, function(stream){
            log("Stream " + streamName + " " + STREAM_STATUS.FAILED);
            //preview failed, stop publishStream
            if (publishStream.status() == STREAM_STATUS.PUBLISHING) {
                log("Stream " + streamName + " " + STREAM_STATUS.FAILED);
                setStatus(STREAM_STATUS.FAILED, stream);
                publishStream.stop();
            }
        }).play();

8. Остановка публикации видеопотока после остановки воспроизведения превью-потока

publishStream.stop() код

Code Block
languagejs
themeRDark
 session.createStream({
            name: streamName,
            display: remoteVideo
        }).on(STREAM_STATUS.PLAYING, function(previewStream){
            //enable stop button
            log("Stream " + streamName + " " + STREAM_STATUS.PLAYING);
   });


4. Запуск отладочного вывода сессии и публикация видеопотока.

session.startDebug(), session.createStream(), publish() код

При создании передается имя видеопотока streamName, а также localVideo - div-элемент, в котором будет отображаться видео с камеры.

Code Block
languagejs
themeRDark
    session.startDebug();
    session.createStream({
        name: onStarted(publishStreamstreamName,
 previewStream);
        }).on(STREAM_STATUS.STOPPED, function(){display: localVideo,
            log("Stream " + streamName + " " + STREAM_STATUS.STOPPED);
cacheLocalResources: true,
        receiveVideo: false,
        receiveAudio: false
    publishStream.stop();
    ...
    }).on(STREAM_STATUS.FAILED, function(stream)publish();


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

StreamStatusEvent PUBLISHING код

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

Code Block
languagejs
themeRDark
    session.createStream({
        name: streamName,
    log("Stream " + streamName + " " + STREAM_STATUS.FAILED);
display: localVideo,
        cacheLocalResources: true,
      //preview failed, stopreceiveVideo: publishStreamfalse,
        receiveAudio: false
   if (publishStream}).statuson() == STREAM_STATUS.PUBLISHING, function(publishStream) {
                log("Stream " + streamName + " " + STREAM_STATUS.PUBLISHING);
        setStatus(STREAM_STATUS.FAILEDPUBLISHING);
        //play preview
        setStatus(STREAM_STATUS.FAILED, stream);
   session.createStream({
            name: streamName,
             publishStream.stop();display: remoteVideo
            }...
        }).play();

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

StreamStatusEvent UNPUBLISHED код

Code Block
languagejs
themeRDark
 session.createStream({
    }).on(STREAM_STATUS.UNPUBLISHED, function(){
   name: streamName,
    ...
    display: localVideo,}).on(STREAM_STATUS.FAILED, function(stream){
        cacheLocalResources: true,...
        receiveVideo: false,
        receiveAudio: false}).publish();


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

previewStream.stop() код

Code Block
languagejs
themeRDark
function onStarted(publishStream, previewStream) {
    }$("#publishBtn").on(STREAM_STATUS.PUBLISHING, function(publishStream){
        log("Stream " + streamName + " " + STREAM_STATUS.PUBLISHINGtext("Stop").off('click').click(function(){
        $(this).prop('disabled', true);
        setStatus(STREAM_STATUS.PUBLISHINGpreviewStream.stop();
    }).prop('disabled', false);
    //play preview
$("#downloadDiv").hide();
}


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

StreamStatusEvent STOPPED код

Code Block
languagejs
themeRDark
        session.createStream({
            name: streamName,
            display: remoteVideo
        }).on(STREAM_STATUS.PLAYING, function(previewStream){
            ...
   //enable stop button     }).on(STREAM_STATUS.STOPPED, function(){
            log("Stream " + streamName + " " + STREAM_STATUS.PLAYINGSTOPPED);
            onStarted(publishStream, previewStreampublishStream.stop();
        }).on(STREAM_STATUS.STOPPEDFAILED, function(stream){
            log("Stream " + streamName + " " + STREAM_STATUS.STOPPED);
     ...
        }).play();


8. Остановка публикации видеопотока после остановки воспроизведения превью-потока

publishStream.stop() код

Code Block
languagejs
themeRDark
 session.createStream({
       publishStream.stop();
        }).on(STREAM_STATUS.FAILED, function(stream){
name: streamName,
             log("Stream " + streamName + " " + display: remoteVideo
        }).on(STREAM_STATUS.FAILED);
  PLAYING, function(previewStream){
          //preview failed, stop publishStream ...
            if (publishStream.status() == }).on(STREAM_STATUS.PUBLISHINGSTOPPED, function() {
                log("Stream " + streamName + " " + STREAM_STATUS.FAILEDSTOPPED);
                setStatus(STREAM_STATUS.FAILED, stream);
        publishStream.stop();
        publishStream.stop();}).on(STREAM_STATUS.FAILED, function(stream){
            }...
        }).play();
    }).on(STREAM_STATUS.UNPUBLISHED, function()


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

StreamStatusEvent UNPUBLISHED код

Code Block
languagejs
themeRDark
    session.createStream({
        setStatus(STREAM_STATUS.UNPUBLISHED);
name: streamName,
        display:  log("Stream " + streamName + " " + STREAM_STATUS.UNPUBLISHED);
localVideo,
        cacheLocalResources: true,
         //enable start button
receiveVideo: false,
          onStopped();receiveAudio: false
    }).on(STREAM_STATUS.FAILEDPUBLISHING, function(streampublishStream){
        log("Stream " + streamName + " " + STREAM_STATUS.FAILED);...
        setStatus}).on(STREAM_STATUS.FAILEDUNPUBLISHED, stream);
        //enable start buttonfunction(){
        onStoppedsetStatus(STREAM_STATUS.UNPUBLISHED);
        }).publish();

10. Остановка отладочного вывода сессии после остановки публикации

session.stopDebug() код

Code Block
languagejs
themeRDark
function onStopped() {
    $("#publishBtn").text("Start").off('click').click(function(){log("Stream " + streamName + " " + STREAM_STATUS.UNPUBLISHED);
        //enable start button
        $(thisonStopped();
    }).prop('disabled', true);on(STREAM_STATUS.FAILED, function(stream){
        start();...
    }).prop('disabled', false);.publish();


10. Остановка отладочного вывода сессии после остановки публикации

session.stopDebug() код

Code Block
languagejs
themeRDark
function onStopped() {
    ...
    if (session)
        session.stopDebug();
}

...

Code Block
languagejs
themeRDark
session = Flashphoner.createSession({urlServer: url}).on(SESSION_STATUS.ESTABLISHED, function(session){
            //session connected, start streaming
            startStreaming(session);
     session = Flashphoner.createSession({urlServer: url}).on(SESSION_STATUS.DISCONNECTED, function(){
            setStatus(SESSION_STATUS.DISCONNECTED);
            $('#url').prop('disabled', false);(SESSION_STATUS.ESTABLISHED, function(session){
            onStopped();...
        }).on(SESSION_STATUS.FAILEDDISCONNECTED, function(){
            setStatus(SESSION_STATUS.FAILED);...
            $('#url'}).prop('disabled'on(SESSION_STATUS.FAILED, falsefunction();{
            onStopped();...
        }).on(SESSION_STATUS.DEBUG, function(event){
            log("Debug session " + event.status);
            if (event.file) {
                var link = window.location.protocol + "//" + window.location.host + "/" + event.file;
                $("#link").attr("href", link);
                $("#downloadDiv").show();
            }
        });

...