ios отображается только первый кадр из трансляции

Discussion in 'Web Call Server 5' started by inpost, Mar 23, 2020.

  1. inpost

    inpost Member

    Здравствуйте.
    Установил последнюю версию web_sdk: 0.5.28.2753.133
    Так же обновил сервер до самой последней версии.

    При включении трансляции в ios (iphone), показывается первый кадр и он замораживается. Трансляция на сервер идёт корректная, публикуются все кадры, а вот в указанный div в "display" выводится только один кадр. То есть пользователь не видит то, что он транслирует.
    Проверяю на PC, этой проблемы нет, на Mac Safari тоже, касается только мобильного safari на ios.

    Код я не трогал, до этого была сборка осенняя прошлого года (4 месяца назад) и там показывалась собственная камера при трансляции.

    Сам код вызова трансляции:
    Code:
    session.createStream({
            name: streamName,
            display: localVideo,
            cacheLocalResources: true,
            constraints: {
                audio: false,
                video: {
                    width: 640,
                    height: 480,
                    minBitrate: 600,
                    maxBitrate: 1200
                }
            },
            record: recordStream
    })
  2. Max

    Max Administrator Staff Member

    Добрый день,

    Уточните, пожалуйста,
    - версию iOS и модель iPhone
    - есть ли ошибки в консоли
    - воспроизводится ли проблема с demo-примерами Web SDK
  3. inpost

    inpost Member

    iOS: 12.4.5 , последний версии. Телефоны все iPhone, и 5s, и Xr, XS.
    - Воспроизводится только в iphone, где не знаю как открыть консоль. Есть эмулятор, он выводит:
    [​IMG]

    С Demo проблема не воспроизводится. Конечно, я могу весь код удалить и начать по кусочкам восстанавливать проблему, но может быть вы можете сразу подсказать с чем может быть связана подобная проблема? Потому что на старой версии не было, и в новой только IOS себя так ведёт.
  4. inpost

    inpost Member

    Сравнил код на DEMO, и увидел новую конструкцию:
    Code:
    Flashphoner.playFirstVideo(localVideo, true, PRELOADER_URL).then(function() {
        publishStream();
    });
    Теперь обрабатывать надо через then, попробовал и полетело, работает нормально!
  5. Max

    Max Administrator Staff Member

    Да, playFirstVideo возвращает promise, который разрешается при успешном проигрывании прелоадера. Это описано в документации к WebSDK и касается как воспроизводимого видео, так и локального (отображения трансляции).

Share This Page