Получить состояние потока

Discussion in 'Web Call Server 5' started by taruk, Sep 2, 2019.

  1. taruk

    taruk New Member

    На стороне клиента мне надо получить информацию о том, запущена ли трансляция. Подключаюсь к трансляции так

    Code:
    let session = Flashphoner.getSessions()[0];let streamName = 'stream$wid';if (Flashphoner.getMediaProviders()[0] === "WSPlayer") { Flashphoner.playFirstSound();} else if (Browser.isSafariWebRTC() || Flashphoner.getMediaProviders()[0] === "MSE") { Flashphoner.playFirstVideo(remoteVideo, false);}let strm = session.createStream({name: streamName,display: remoteVideo,transport: "TCP",video: {controls: true }}).on(STREAM_STATUS.PENDING, function (stream) { var video = document.getElementById(stream.id()); if (!video.hasListeners) { video.hasListeners = true; video.addEventListener('resize', function (event) {resizeVideo(event.target); }); }}).on(STREAM_STATUS.PLAYING, function (stream) {$('.statusWebinar').addClass('online');$('.coverVideo').hide();onPlaying(stream);}).on(STREAM_STATUS.STOPPED, function () {$('.coverVideo').show();onStopped();}).on(STREAM_STATUS.FAILED, function () {$('.coverVideo').show();onStopped();});
    
    В конце не делаю вызов .play(). Как мне из объекта sts извлечь состояние?
  2. Max

    Max Administrator Staff Member

    Добрый день.
    Если Вам необходимо проверить на клиенте, опубликован ли поток, который Вы собираетесь проигрывать, это можно сделать при помощи функции WebSDK Stream.available(). Функция возвращает Promise, который разрешается, если поток с указанным именем опубликован на сервере. Пример использования можно посмотреть в исходных текстах примера Two Way Streaming:
    Code:
    function availableStream(){
        var session = Flashphoner.getSessions()[0];
        var streamName = $('#playStream').val();
        session.createStream({
            name: streamName,
            display: remoteVideo
        }).available().then(function(stream){
            $("#availableStatus").text("AVAILABLE").attr("class", "text-success");
        }, function(stream){
            $("#availableStatus").text("UNAVAILABLE").attr("class", "text-danger");
        });
    }
    
    Кроме того, Вы можете воспользоваться REST API запросом /rest-api/stream/find для поиска опубликованного потока на сервере по имени.

Share This Page