Как использовать API видеозвонков для создания приложения для видеозвонков в реальном времени


Введение

С постоянным улучшением производительности устройств и качества сети все чаще применяются сценарии аудио- и видеозвонков, и API видеозвонков также применяется все чаще.

Какие возможности может предоставить API видеозвонков?

С ростом спроса на API видеозвонков появляется все больше компаний, предоставляющих API видеозвонков, но предоставляемые функции схожи.

Возможности, предоставляемые API видеозвонков, в основном включают следующее:

  1. Приглашение к звонку
  2. голосовой и видеозвонок
  3. Функция автономной отправки звонка
  4. Пользовательский интерфейс звонка и взаимодействие

Ниже представлено приложение для видеозвонков в реальном времени, созданное с использованием API видеозвонков ZEGOCLOUD.

Что такое API видеозвонков ZEGOCLOUD?

API видеозвонков ZEGOCLOUD использует многоуровневую архитектуру. Подробности показаны на рисунке ниже:

API видеозвонков ZEGOCLOUD предоставляет вам два различных SDK: CallUIKit и Call SDK.

CallUIKit: Предоставляет полный пользовательский интерфейс для видеозвонков в реальном времени, вам нужно только вызвать интерфейс вызова и повесить трубку там, где вам нужно завершить процесс вызова.

Call SDK: Предоставляет базовую логику видеозвонков в реальном времени, такую как управление аудио и видео, управление вызовами, управление состоянием сети и т.д. Вам нужно только сосредоточиться на реализации пользовательского пользовательского интерфейса верхнего уровня и вызвать соответствующий интерактивный интерфейс для завершения процесса вызова.

Как использовать API видеозвонков ZEGOCLOUD

Шаг 1. Создайте учетную запись ZEGOCLOUD

  • Создайте учетную запись в ZEGOCLOUD Official.

Шаг 2. Создайте новый проект

  • Создайте проект в консоли администратора ZEGOCLOUD Admin Console.

Шаг 3. Создайте проект Firebase

Создайте проект Firebase в консоли Firebase. Для получения более подробной информации смотрите Документацию Firebase.

Шаг 4. Разверните Firebase Cloud Functions

ZEGO Call по умолчанию использует Firebase Cloud Functions в качестве бизнес-сервера, мы рекомендуем вам активировать и развернуть его перед интеграцией ZEGOCall SDK.

  1. Создайте новую базу данных реального времени в Firebase.

  2. Отредактируйте правила базы данных Realtime Database, добавив следующее:

{
  "rules": {
        ".read": "auth.uid != null",
        ".write": "auth.uid != null",
  }
}
Войти в полноэкранный режим Выйти из полноэкранного режима

  1. Установите CLI через npm.

    npm install -g firebase-tools
    

  2. Запустите firebase login для входа в систему через браузер и аутентификации инструмента firebase.

  3. Запустите firebase init functions. Инструмент дает вам возможность установить зависимости с помощью npm. Можно отказаться, если вы хотите управлять зависимостями другим способом, хотя если вы откажетесь, вам нужно будет запустить npm install перед эмуляцией или развертыванием ваших функций.

  1. Загрузите пример кода функции Cloud.

  2. Скопируйте файлы firebase.json, functionsindex.js и папку functionstoken04 из примера кода в ваш проект облачной функции, перезапишите файлы с тем же именем.

  1. Измените файл index.js, правильно заполните AppID и ServerSecret, которые вы получили из ZEGOCLOUD Admin Console.

  1. В Firebase CLI выполните команду firebase deploy --only functions, чтобы развернуть облачные функции.

Шаг 5. Скопируйте файл в проект

Чтобы автоматически интегрировать ZEGOCallUIKit в CocoaPods, сделайте следующее:

  1. Скачайте коды примеров и скопируйте папки ZEGOCallUIKit и ZEGOCall в каталог вашего проекта (если у вас нет проекта, создайте новый).

  2. Откройте Terminal, перейдите в каталог проекта, выполните команду pod init, чтобы создать Podfile, а затем добавьте в файл следующее.

    pod 'ZegoExpressEngine'
    
    pod 'FirebaseAuth'
    pod 'GoogleSignIn'
    pod 'Firebase/Database'
    pod 'Firebase/Analytics'
    pod 'Firebase/Crashlytics'
    pod 'Firebase/Messaging'
    pod 'Firebase/Functions'
    

  1. В Terminal перейдите в каталог, где находится Podfile, и выполните команду pod install.

    pod install
    
  2. Перезапустите Xcode и откройте только что созданный файл .workspace.

Шаг 6. Добавьте разрешения

Разрешения могут быть установлены по мере необходимости.

  1. Откройте Xcode, выберите целевой объект, а затем нажмите Info > Custom iOS Target Properties.

  1. Нажмите кнопку Добавить (+), чтобы добавить разрешения на камеру и микрофон.
  • Privacy-Camera Usage Description

  • Privacy-Microphone Usage Description

  1. Выберите целевой проект, выберите Sign&Capabilities > Capability, найдите Background Modes и сделайте двойной щелчок.

  2. Проверьте следующие параметры в Background Modes.

  3. Включите функцию Push Notification.

  4. Скачайте конфигурационный файл GoogleService-Info.plist из firebase и добавьте его в свой проект. Чтобы получить файл конфигурации, обратитесь к разделу Как получить файл конфигурации?

  5. Настройте типы URL: Заполните схемы URL с полем REVERSED_CLIENT_ID в файле GoogleService-Info.plist.

Инициализация ZEGOCallUIKit

Чтобы инициализировать ZEGOCallUIKit, получите экземпляр CallManager, передайте AppID вашего проекта.

Чтобы получать обратные вызовы, установите соответствующий delegate в self.

Вход пользователя

ZEGO Call пока не предоставляет возможности управления пользователями. Вам нужно будет заставить пользователей войти в Firebase, а затем вызвать метод setLocalUser, чтобы установить информацию о пользователе в CallUIKit на основе результата входа.

Firebase предоставляет несколько режимов аутентификации при входе в систему. Ниже в качестве примера используется вход Google.
Для получения дополнительной информации о режимах обратитесь к официальному представителю Firebase.

Получить токен

ZEGO Call реализует функцию голосовых и видеозвонков с помощью RTC SDK. Вызывающий и вызываемый пользователи входят в одну комнату, а публикация и воспроизведение потока начинаются после соединения. Поэтому, чтобы совершить исходящий звонок, вам необходимо предоставить токен для RTC SDK для проверки. Подробнее см. в разделе Использование токенов для аутентификации.

Перед совершением или принятием исходящего вызова вам необходимо получить Token от Firebase Cloud Functions.

Чтобы установить токен в свойство token в CallManager, реализуйте принадлежащий агенту обратный вызов getRTCToken из TokenProvider.

Совершайте исходящие звонки

Чтобы сделать исходящий голосовой вызов, вызовите метод callUser и установите параметр type в CallType.voice.

Чтобы сделать исходящий видеовызов, вызовите метод callUser и установите параметр type в CallType.video.

После выполнения вызова CallUIKit автоматически отображает пользовательский интерфейс текущего состояния как для вызывающего, так и для вызываемого абонента (требуется интегрированный CallUIKit), и вы можете работать с пользовательским интерфейсом для дальнейших операций.

  • Когда абонент вызывает метод для совершения вызова (для примера — совершить голосовой вызов), отображается следующее

  • Когда абонент получает входящий звонок (для наглядности — сделать голосовой звонок), отображается следующая черная всплывающая подсказка

Загрузка журналов

Когда вы столкнулись с проблемами при использовании приложения, вызовите метод uploadLog для загрузки журналов, чтобы мы могли быстрее найти и помочь вам.

Деинициализация ZEGOCallUIKit

После завершения использования ZEGO Call вызовите метод unInit для деинициализации SDK.

Оцените статью
devanswers.ru
Добавить комментарий