Flash как альтернатива WebRTC

Discussion in 'Web Call Server 5' started by pride, Apr 13, 2017.

  1. pride

    pride Member

    Здравствуйте! Интересует возможность использовать Flash если браузер пользователя не поддерживает WEBRTC.
    В коде примеров вижу такие строки :
    Code:
        try {
            Flashphoner.init({flashMediaProviderSwfLocation: '../../../../media-provider.swf'});
        } catch(e) {
            $("#notifyFlash").text("Your browser doesn't support Flash or WebRTC technology necessary for work of an example");
            return;
        }
    
    Где как я понимаю flashMediaProviderSwfLocation служит в качестве альтернативы. Да вот только на деле этого не случаться получаю "Your browser doesn't support Flash or WebRTC technology necessary for work of an example".
    Тестировал в IE8 Firefox с отключенным WEBRTC
  2. pride

    pride Member

    Так же интересует будет ли эта Flash альтернатива работать с кастомными полями?
  3. Max

    Max Administrator Staff Member

    Да, верно. Подгружается swf-файл и отвечает за отправку или отображение видео.
    Когда в API вызывается session.createStream({display:videoDiv}).play(), то swf подгружается в указанный div:
    Code:
    var videoDiv = document.getElementById('videoDiv');
    <div id="videoDiv"></div>
    Flash поддерживается в IE 11.
    Да, будет. Так как обертка будет та же что и с WebRTC и будет работать через Websocket.
    Flash отвечает только за видеопотоки.
  4. pride

    pride Member

    Code:
    Flash поддерживается в IE 11.
    
    Только в ie 11. т.е другие браузеры не поддерживающие WEBRTC не смогут работать ?
    Если да то есть какие либо выходы с этой ситуации ?
    И интересует альтернативы для iOS и Safari.
  5. Max

    Max Administrator Staff Member

    На данный момент мы тестировали IE 11, Mac OS Safari, Edge.
    В них должно работать, если установлен Adobe Flash Player последней версии (предыдущие версии плеера могут автоматически отключаться системой, например Mac Sierra, из-за проблем с уязвимостями).

    Альтернатива для браузеров IE10 и ниже, это использование плагина Temasys.
    Можете попробовать подключить плагин, используя скрипт flashphoner-temasys-flash-websocket.js вместо flashphoner.js. В этом случае страница должна запросить установку WebRTC-плагина Temasys со стороннего сайта temasys.com.sg. Даже с плагином Temasys, в браузерах IE10 и ниже могут быть проблемы. Мы не планируем дальнейшую поддержку этих браузеров и самого Temasys. Но в случае проблем, вы можете их решить фиксами и пересборкой Web SDK, т.к. код открыт: https://github.com/flashphoner/flashphoner_client/tree/wcs_api-2.0

    Для iOS альтернативы три:
    1. Websocket Player - только воспроизведение потока
    2) iOS-приложение на базе iOS SDK
    3) Дождаться поддержки WebRTC от Apple в браузерах iOS Safari или iOS Google Chrome.
  6. Max

    Max Administrator Staff Member

    Еще одна альтернатива для браузеров IE10 и ниже - использовать чистый Flash для публикации и воспроизведения потоков.
    Вы также можете написать к нему свою HTML/Javascript-обертку.
    Для этого нужно написать собственное приложение на Action Script 3 или модифицировать существующее:
    https://github.com/flashphoner/flas...ing/flash_client/streaming/src/streaming.mxml
    https://wcs5-eu.flashphoner.com/demo2/flash-streaming
  7. pride

    pride Member

    Спасибо за ответ, думаю это самый подходящий вариант.
    Можно поподробнее о Websocket Player для Сафари и iOS . Как это реализовать ?
  8. Max

    Max Administrator Staff Member

    Websocket Player работает из коробки в примере Player
    https://wcs5-eu.flashphoner.com/demo2/player
    https://github.com/flashphoner/flashphoner_client/tree/wcs_api-2.0/examples/demo/streaming/player
    Если WebRTC и Flash недоступны, то автоматический идет переключение на WSPlayer.
    Code:
    Flashphoner.init({
    flashMediaProviderSwfLocation: '../../../../media-provider.swf',
    receiverLocation: '../../dependencies/websocket-player/WSReceiver2.js',
    decoderLocation: '../../dependencies/websocket-player/video-worker2.js',
    preferredMediaProvider: mediaProvider
    });
    В коде можно увидеть, что подключаются два скрипта, реализующие Websocket Player:
    • WSReceiver2.js
    • video-worker2.js
    По дальнейшим вопросам по Websocket Player просьба создать отдельную тему.
  9. pride

    pride Member

    Подскажите, как передать custom поля из флеша при просмотре.

    stream = new NetStream(connect);
    stream.play('myStream', {user : '100' });

    Не работает.
  10. pride

    pride Member

  11. Max

    Max Administrator Staff Member

    При использоваии чистого Flash, custom поля передаются только в методе connect().
    Code:
    obj.custom = new Object();
    obj.custom.token='123';
    nc.connect(this.urlServer,obj);
    Для стримов эти поля не передаются.
  12. Max

    Max Administrator Staff Member

  13. pride

    pride Member

    При таком подходе, на Вэб сервер приходит вот так:
    Code:
      custom:  { 
           data: { token: '222222', user: '111111' },
            keys: { user: 'java.lang.String', token: 'java.lang.String' } 
    }
    
    При чем на REST оно не передается.
  14. pride

    pride Member

    С этим вариантом на Вэб приходит нормально, но на REST его нет.
  15. Max

    Max Administrator Staff Member

  16. pride

    pride Member


    Code:
            connection = new NetConnection();
            connection.addEventListener(NetStatusEvent.NET_STATUS, netStatusHandler);
            var obj:Object = new Object();
                obj.appKey = 'flashStreamingApp';
                obj.custom = new Object();
                obj.custom.token = 'ddddddddddd';
            connection.connect(UrlStr, obj);
    
    Нечего на REST API нет.

    В connect прилетело :
    Code:
      custom:  { 
          data: { token: 'ddddddddddd' },
           keys: { token: 'java.lang.String' } 
    }
    
  17. Max

    Max Administrator Staff Member

    По-умолчанию, все приложения смотрят на http://localhost:9091/EchoApp
    Поэтому REST-запрос по flashStreamingApp уходит туда:

    show-apps.jpg
  18. pride

    pride Member

    Я разумеется это сразу исправил) На вэб сервер все приходит, а вот при просмотре через REST client . Поле custom пусто
  19. Max

    Max Administrator Staff Member

    Как смотрите через REST клиент?
  20. pride

    pride Member

    Advanced REST client. /RESTCall/findStreams

Share This Page