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

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 извлечь состояние?
 

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 для поиска опубликованного потока на сервере по имени.
 
Top