ios Chrome: Failed: this provider doesn't support getMediaAccess

Discussion in 'Web Call Server 5' started by inpost, Mar 13, 2018.

  1. inpost

    inpost New Member

    Здравствуйте.
    С нескольких телефонов пробовал запустить, получаю эту ошибку! В Google Chrome не работает захват камеры!
    Если включить просмотр, то просто чёрный экран, хотя событие STREAM_STATUS.PLAYING срабатывает.
    Пробовал из DEMO запустить, та же проблема, пишет FAILED.
    Last edited: Mar 13, 2018
  2. Alex Vorona

    Alex Vorona Member

    В iOS webrtc в браузерах работает исключительно в standalone Safari, для остальных браузеров это недоступно на уровне iOS. Минимум iOS 11.0, рекомендуемый - хотя бы 11.2, часть зависаний исправили.
  3. inpost

    inpost New Member

    Можете уточнить.
    webrtc не работает в других браузерах кроме Safari, это значит, что трансляция камеры на сервер будет работать только с Safari, а с Chrome - нет. С этим ясно.
    А что насчёт просмотра видео? Там, на сколько я понимаю, можно подключать не только webrtc, но и другие технологии, которые стабильно должны работать для Chrome в ios. Но сейчас не работает, сейчас черный экран и всё. Я имею ввиду об вебсоккеты + canvas. Сейчас я пробовал в самой последней версии IOS, 11.2.
    Вы сказали, что часть зависаний исправили. Вы имели ввиду в версии 11.2 IOS, или , всё же, в плеере от flashphoner ? Мне надо новый билд скачать?
  4. Max

    Max Administrator Staff Member

    Добрый день.
    WSPlayer (Websocket + Canvas) был также разработан специально для iOS Safari 9 и 10, где не было WebRTC.
    Поэтому с Chrome браузером под iOS он не тестировался, но вполне может работать.
    Сейчас проверили Chrome. Работает в iOS 11.2.2 c WSPlayer.
    Тест следующий
    1. Публикуем поток из примера Two Way Streaming
    https://wcs5-eu.flashphoner.com/cli...ming/two_way_streaming/two_way_streaming.html
    2. Открываем Embed Player в iOS 11 Chrome
    https://wcs5-eu.flashphoner.com/client2/examples/demo/streaming/embed_player/sample.html
    3. Оставляем только WSPlayer в списке. Нажимаем Test и Play.
    Картинка есть.
    Хотим прояснить, что официальные ответы идут от пользователей с логотипом Flashphoner на аватаре и ролью Administrator.
    В данном случае ваш вопрос был адресован посетителю форума.
  5. inpost

    inpost New Member

    Ещё одно уточнение. Плеер сам не подбирает рабочий вариант? Это не очень удобно, было бы неплохо, если бы в ios Chrome автоматом ставился WSPlayer, а не webrtc, так как именно он работает стабильно.
  6. Max

    Max Administrator Staff Member

    Плееру можно передать список mediaProviders в порядке приоритетов, например WebRTC, Flash, MSE, WSPlayer по-умолчанию:
    https://wcs5-eu.flashphoner.com/client2/examples/demo/streaming/embed_player/sample.html
    Выбирается первый провайдер, который доступен по приоритету.
  7. Alex Vorona

    Alex Vorona Member

    один плеер на странице, который ест батарею. Более одного плеера на странице - не работает нормально(звук)/слишком сильно ест батарею и это так и останется. Вариант ну хоть как-то посмотреть в любом браузере, если iOS 11 не поддерживается устройством. На iOS 11+ - standalone Safari. Не идеально, но юзабельно, в том числе и камера. Вариант с native application всегда остается, правда у Flashphoner сейчас iOS SDK только на ObjectC.
    Речь о зависаниях Safari/iOS при работе с WebRTC. С Flashphoner и так всё в порядке, это Apple в роли догоняющего на поезд WebRTC.
  8. inpost

    inpost New Member

    Спасибо, заработало.
    В общем, ставил из примера Two Way Streaming, где не работает. А вот по указанным выше ссылкам уже работает, чуть код поправил и готово!
  9. Max

    Max Administrator Staff Member

    Разница в инициализации API

    В примере плеера инициализация проходит так:
    https://github.com/flashphoner/flas...xamples/demo/streaming/embed_player/player.js
    Code:
    Flashphoner.init({
                flashMediaProviderSwfLocation: '../../../../media-provider.swf',
                receiverLocation: '../../dependencies/websocket-player/WSReceiver2.js',
                decoderLocation: '../../dependencies/websocket-player/video-worker2.js',
                preferredMediaProviders: mediaProviders && mediaProviders !== "" ? mediaProviders.split(','): []
            });
    Эти две строки отвечают за работу WSPlayer:
    Code:
    receiverLocation: '../../dependencies/websocket-player/WSReceiver2.js',
                decoderLocation: '../../dependencies/websocket-player/video-worker2.js',
    В примере Two Way Streaming этих строк нет, поэтому WSPlayer не работает.
    https://github.com/flashphoner/flas...eaming/two_way_streaming/two_way_streaming.js
    Code:
    Flashphoner.init({flashMediaProviderSwfLocation: '../../../../media-provider.swf'});
    Alex Vorona likes this.

Share This Page