Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Table of Contents

Ресурсы

Скачать

...

http://flashphoner.com/downloads/builds/flashphoner_client/wcs-ios-sdk

API документация для iOS SDK

http://flashphoner.com/docs/api/WCS5/client/ios-sdk/latest

Скачать исходный код примеров для iOS SDK

...

API документацияИсходный код примеров
2,52.52.5
2.62.62.6

Исходный код примеров расположен на Github и будет использоваться в дальнейшем для пояснения работы примеров в данной
документации. Например, данная ссылка line 78 указывает на семьдесят восьмую строку файла ViewController.m примера Media Devices
ревизии с хешем 79a318b6.

Подготовка примеров для сборки

0. Устанавливаем Cocoapods для сборки зависимостей.

Code Block
languagejs
sudo gem install cocoapods

1. Скачиваем исходный код примеров на Mac.

Code Block
languagebash
git clone https://github.com/flashphoner/wcs-ios-sdk-samples.git

Image Removed

2. Скачиваем архив iOS SDK

Code Block
languagebash
wget http://flashphoner.com/downloads/builds/flashphoner_client/wcs-ios-sdk/WCS-iOS-SDK-2.2.2.tar.gz

Image Removed

3. После распаковки iOS SDK представляет собой фреймворк в папке FPWCSApi2.framework

Code Block
languagebash
tar -xvzf WCS-iOS-SDK-2.2.2.tar.gz

Image Removed

4. Копируем распакованную iOS SDK (фреймворк) в папку с примерами

Code Block
languagejs
cp -R FPWCSApi2.framework wcs-ios-sdk-samples

Image Removed

5. В результате получаем папку примеров с фреймворком (iOS SDK). Можно приступать к сборке.

Image Removed

6. Запускаем сборку скриптом и дожидаемся сборки всех зависимостей и примеров

Code Block
languagebash
./build_example.sh

Image Removed

7. Теперь, после того как все зависимости собрались (спасибо cocoapods), открываем workspace в Xcode.

Обратите внимание! Открываем именно workspace, а не project-файл. Это нужно чтобы не испортить сборку.

Image Removed

...

Для этого кликните по WCSExample в левом меню. После указания Team, еще раз соберите примеры скриптом как показано на шаге 6.

Image Removed

9. Приступаем к сборке примера Media Devices в Xcode. Для этого выберите Generic iOS Device в целях сборки.

Image Removed

10. И запустите сборку из меню Product - Build

Image Removed

11. Если сборка завершилась успешно, вы увидите сообщение Build MediaDevices: Succeeded

Image Removed

12. Подключите свой iPhone или iPad через USB и выберите его в целях для запуска примера Media Devices

Image Removed

13. После успешного запуска в нижней части отобразиться отладочная информация. Это означает что пример Media Devices был корректно установлен на iPhone или iPad и запущен.

Image Removed

14. На iPhone появится интерфейс приложения, который можно начинать тестировать с WCS-сервером

Image Removed

15. Соединяемся с сервером и отправляем видеопоток с веб-камеры на iPhone.

Image Removed

16. В логах Xcode видим отладочную информацию.

Image Removed

...

Отличия сборок iOS SDK

1. В сборке 2.6, начиная с 2.6.19, поставляются два фреймворка: Objective C и Swift, а в сборке 2.6.95 Objective C фреймворк поставляется в виде XCFramework пакета.

2. В связи с обновлением WebRTC библиотеки, сборки начиная с 2.6.86 работают только на arm64 аппаратах (iPhone 5s и новее).

3. Примеры для версии 2.5 не могут быть собраны с версией 2.6 из-за того, что изменилась работа с захватом видео для добавления возможности захвата кастомного источника. Ссылки в таблице выше указывают на исходный код примеров, совместимых с каждой из версий.

Сборка примеров

Сборка примеров при помощи Xcode до версии 10 описана здесь. Процедура сборки примеров в новейших версиях Xcode 10 и выше несколько отличается, и описана здесь.

Известные проблемы

1. При публикации WebRTC потока и его воспроизведении в iOS приложении в полноэкранном режиме необходимо учитывать соотношение сторон экрана клиентского устройства

Симптомы: при публикации потока с соотношением сторон 4:3 (например, 640x480) и воспроизведении потока в iOS приложении в полноэкранном режиме изображение выглядит растянутым.

Решение: публиковать поток с соотношением сторон 16:9 (например, 1280x720)

2. Сборка 2.6.37 совместима со сборками WCS, начиная с 5.2.935

Симптомы: в примерах публикация и воспроизведение работают, но состояние кнопок и отображение статусов не меняются, в логах приложения могут быть сообщения

Code Block
themeRDark
Error converting audioState JSON to FPWCSApi2MediaState
Error converting videoState JSON to FPWCSApi2MediaState

Решение: обновить WCS до сборки 5.2.935 или новее

3. В качестве менеджера зависимостей используется CocoaPods, поскольку некоторые зависимости не поддерживают Swift Package Manager

4. При сборке в Xcode для iOS Simulator на Mac с процессором M1 рекомендуется использовать Rosetta