Отписка от событий в WebSDK

Renat

New Member
Не нашел метод off для отписки от событий у объектов Session и Stream, пришлось добавить самому.

1) Добавьте пожалуйста в следующей сборке WebSDK.
2) Как получить подробности ошибки при вызове STREAM_STATUS.FAILED не залезая внутрь Flashphoner.js? Методы getInfo() и getStats() возвращают undefined.
 

Attachments

Last edited:

Max

Administrator
Staff member
Так должно возвращать объект stream с полем, описывающим ошибку.
Code:
session.createStream({
name: streamName,
display: localVideo,
cacheLocalResources: true,
receiveVideo: false,
receiveAudio: false
}).on(STREAM_STATUS.FAILED, function(stream){
trace(stream);
}).publish();
Насчет отписки от событий, пока непонятна необходимость этого. Опишите пожалуйста подробнее, почему это может быть необходимо.
 

Renat

New Member
1) Чтобы избежать утечек памяти при использовании разных экземпляров stream в рамках одного класса, задавая их, например, через такой сеттер.
Code:
    function setStream(value)
    {
        if(stream)
        {
            stream.off(STREAM_STATUS.FAILED,streamFailedHandler);
            stream.off(STREAM_STATUS.STOPPED,streamStoppedHandler);
            stream.off(STREAM_STATUS.PLAYING,streamPlayingHandler);
            stream.off(STREAM_STATUS.PUBLISHING,streamPublishingHandler);
            stream.off(STREAM_STATUS.UNPUBLISHED,streamUnpublishingHandler);

            stream.stop();
            Flashphoner.releaseLocalMedia(video.get(0));
        }

        stream = value;

        if(stream)
        {
            stream.on(STREAM_STATUS.FAILED,streamFailedHandler);
            stream.on(STREAM_STATUS.STOPPED,streamStoppedHandler);
            stream.on(STREAM_STATUS.PLAYING,streamPlayingHandler);
            stream.on(STREAM_STATUS.PUBLISHING,streamPublishingHandler);
            stream.on(STREAM_STATUS.UNPUBLISHED,streamUnpublishingHandler);
            stream.play();
        }
    }
2) Судя по коду и по дебагу, в обработчик ошибки передается сам объект Stream, а не объект с информацией об ошибке.
 

Attachments

Last edited:

Max

Administrator
Staff member
Сейчас отписка происходит так
Code:
//remove session DISCONNECTED and FAILED callbacks
            session.on(SESSION_STATUS.DISCONNECTED, function(){});
            session.on(SESSION_STATUS.FAILED, function(){});
2) Судя по коду и по дебагу, в обработчик ошибки передается сам объект Stream, а не объект с информацией об ошибке.
Объект Stream должен содержать поле с описанием ошибки. Проверим.
 

Max

Administrator
Staff member
Исправили.
Информация об ошибке передается в stream.getInfo()
Здесь коммит
Здесь сборка
Если на publishStream ответить 403 Forbidden, то stream.getInfo() вернет Forbidden
 
Top