- Введение
- Что такое API видеозвонков ZEGOCLOUD?
- Как использовать API видеозвонков ZEGOCLOUD
- Шаг 1. Создайте учетную запись ZEGOCLOUD
- Шаг 2. Создайте новый проект
- Шаг 3. Создайте проект Firebase
- Шаг 4. Разверните Firebase Cloud Functions
- Шаг 5. Скопируйте файл в проект
- Шаг 6. Добавьте разрешения
- Инициализация ZEGOCallUIKit
- Вход пользователя
- Получить токен
- Совершайте исходящие звонки
- Загрузка журналов
- Деинициализация ZEGOCallUIKit
Введение
С постоянным улучшением производительности устройств и качества сети все чаще применяются сценарии аудио- и видеозвонков, и API видеозвонков также применяется все чаще.
Какие возможности может предоставить API видеозвонков?
С ростом спроса на API видеозвонков появляется все больше компаний, предоставляющих API видеозвонков, но предоставляемые функции схожи.
Возможности, предоставляемые API видеозвонков, в основном включают следующее:
- Приглашение к звонку
- голосовой и видеозвонок
- Функция автономной отправки звонка
- Пользовательский интерфейс звонка и взаимодействие
Ниже представлено приложение для видеозвонков в реальном времени, созданное с использованием 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.
-
Создайте новую базу данных реального времени в Firebase.
-
Отредактируйте правила базы данных Realtime Database, добавив следующее:
{
"rules": {
".read": "auth.uid != null",
".write": "auth.uid != null",
}
}
-
Установите CLI через npm.
npm install -g firebase-tools
-
Запустите
firebase login
для входа в систему через браузер и аутентификации инструмента firebase. -
Запустите
firebase init functions
. Инструмент дает вам возможность установить зависимости с помощью npm. Можно отказаться, если вы хотите управлять зависимостями другим способом, хотя если вы откажетесь, вам нужно будет запустить npm install перед эмуляцией или развертыванием ваших функций.
-
Загрузите пример кода функции Cloud.
-
Скопируйте файлы
firebase.json
,functionsindex.js
и папкуfunctionstoken04
из примера кода в ваш проект облачной функции, перезапишите файлы с тем же именем.
- Измените файл
index.js
, правильно заполните AppID и ServerSecret, которые вы получили из ZEGOCLOUD Admin Console.
- В Firebase CLI выполните команду
firebase deploy --only functions
, чтобы развернуть облачные функции.
Шаг 5. Скопируйте файл в проект
Чтобы автоматически интегрировать ZEGOCallUIKit в CocoaPods, сделайте следующее:
-
Скачайте коды примеров и скопируйте папки
ZEGOCallUIKit
иZEGOCall
в каталог вашего проекта (если у вас нет проекта, создайте новый). -
Откройте 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'
-
В Terminal перейдите в каталог, где находится Podfile, и выполните команду
pod install
.pod install
-
Перезапустите Xcode и откройте только что созданный файл .workspace.
Шаг 6. Добавьте разрешения
Разрешения могут быть установлены по мере необходимости.
- Откройте Xcode, выберите целевой объект, а затем нажмите Info > Custom iOS Target Properties.
- Нажмите кнопку Добавить (+), чтобы добавить разрешения на камеру и микрофон.
-
Privacy-Camera Usage Description
-
Privacy-Microphone Usage Description
-
Выберите целевой проект, выберите Sign&Capabilities > Capability, найдите Background Modes и сделайте двойной щелчок.
-
Проверьте следующие параметры в Background Modes.
-
Включите функцию Push Notification.
-
Скачайте конфигурационный файл GoogleService-Info.plist из firebase и добавьте его в свой проект. Чтобы получить файл конфигурации, обратитесь к разделу Как получить файл конфигурации?
-
Настройте типы 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.