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
...
Исходный код примеров расположен на Github и будет использоваться в дальнейшем для пояснения работы примеров в данной
документации. Например, данная ссылка line 78 указывает на семьдесят восьмую строку файла ViewController.m примера Media Devices
ревизии с хешем 79a318b6.
Подготовка примеров для сборки
0. Устанавливаем Cocoapods для сборки зависимостей.
Code Block | ||||
---|---|---|---|---|
| ||||
sudo gem install cocoapods |
1. Скачиваем исходный код примеров на Mac.
Code Block | ||||
---|---|---|---|---|
| ||||
git clone https://github.com/flashphoner/wcs-ios-sdk-samples.git |
2. Скачиваем архив iOS SDK
Code Block | ||||
---|---|---|---|---|
| ||||
wget http://flashphoner.com/downloads/builds/flashphoner_client/wcs-ios-sdk/WCS-iOS-SDK-2.2.2.tar.gz |
3. После распаковки iOS SDK представляет собой фреймворк в папке FPWCSApi2.framework
Code Block | ||||
---|---|---|---|---|
| ||||
tar -xvzf WCS-iOS-SDK-2.2.2.tar.gz |
4. Копируем распакованную iOS SDK (фреймворк) в папку с примерами
Code Block | ||||
---|---|---|---|---|
| ||||
cp -R FPWCSApi2.framework wcs-ios-sdk-samples |
5. В результате получаем папку примеров с фреймворком (iOS SDK). Можно приступать к сборке.
6. Запускаем сборку скриптом и дожидаемся сборки всех зависимостей и примеров
Code Block | ||||
---|---|---|---|---|
| ||||
./build_example.sh |
7. Теперь, после того как все зависимости собрались (спасибо cocoapods), открываем workspace в Xcode.
Обратите внимание! Открываем именно workspace, а не project-файл. Это нужно чтобы не испортить сборку.
...
Для этого кликните по WCSExample в левом меню. После указания Team, еще раз соберите примеры скриптом как показано на шаге 6.
9. Приступаем к сборке примера Media Devices в Xcode. Для этого выберите Generic iOS Device в целях сборки.
10. И запустите сборку из меню Product - Build
11. Если сборка завершилась успешно, вы увидите сообщение Build MediaDevices: Succeeded
12. Подключите свой iPhone или iPad через USB и выберите его в целях для запуска примера Media Devices
13. После успешного запуска в нижней части отобразиться отладочная информация. Это означает что пример Media Devices был корректно установлен на iPhone или iPad и запущен.
14. На iPhone появится интерфейс приложения, который можно начинать тестировать с WCS-сервером
15. Соединяемся с сервером и отправляем видеопоток с веб-камеры на iPhone.
16. В логах Xcode видим отладочную информацию.
...
Отличия сборок 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 и выше несколько отличается, и описана здесь. Процедура сборки с SPM пакетами доступна для iOS SDK c 2.6.114 и описана здесь.
Известные проблемы
1. При публикации WebRTC потока и его воспроизведении в iOS приложении в полноэкранном режиме необходимо учитывать соотношение сторон экрана клиентского устройства
Симптомы: при публикации потока с соотношением сторон 4:3 (например, 640x480) и воспроизведении потока в iOS приложении в полноэкранном режиме изображение выглядит растянутым.
Решение: публиковать поток с соотношением сторон 16:9 (например, 1280x720)
2. Сборка 2.6.37 совместима со сборками WCS, начиная с 5.2.935
Симптомы: в примерах публикация и воспроизведение работают, но состояние кнопок и отображение статусов не меняются, в логах приложения могут быть сообщения
Code Block | ||
---|---|---|
| ||
Error converting audioState JSON to FPWCSApi2MediaState
Error converting videoState JSON to FPWCSApi2MediaState |
Решение: обновить WCS до сборки 5.2.935 или новее
3. При сборке в Xcode для iOS Simulator на Mac с процессором M1 рекомендуется использовать Rosetta