WebRTC API
Библиотека WebRTC обеспечивает передачу аудио и видео данных (звонков) между браузерами. Стандарт WebRTC определяет набор ECMAScript API, позволяющих обмениваться медиа и произвольными данными с другим браузером или устройством, поддерживающим соответствующий набор протоколов реального времени.
Для использования WebRTC в проекте её следует подключить по имени libwebrtc
в конфигурационном файле,
а также в spec-файле:
BuildRequires: pkgconfig(libwebrtc)
Далее библиотеку можно подключать в C++-код, указывая необходимые классы и их модули. Например:
#include "media/engine/webrtc_media_engine.h"
Подробнее WebRTC API можно изучить в документации.
Архитектура WebRTC

Пример работы с WebRTC
Для ОС Аврора доступен пример WebRTC.
Приложение демонстрирует:
- локальное видео, снятое с камеры (или записанное ранее видео, если камера недоступна) и видео с подключённого удалённого узла;
- захват и воспроизведение звука с помощью устройства PulseAudio по умолчанию;
- встроенный сервер для обмена сигнальными сообщениями через веб-сокет.
Приложение имеет следующую функциональность:
- Без включённого переключателя «Подключиться» ожидается входящее соединение через веб-сокет, порт
8881. - С включённым переключателем «Подключиться» устанавливается подключение через веб-сокет к сигнальному серверу через порт
IP 127.0.0.1 8881.
Следует использовать поля ввода «Сервер» и «Порт» для переопределения значений по умолчанию.
Предполагается, что телефон с ОС Аврора имеет IP-адрес 192.168.2.15.
Звонок из браузера ПК на телефон
-
Запустить пример WebRTC на телефоне с ОС Аврора.
-
Открыть файл
signaling_server/server_test.htmlв браузере. -
Установить адрес сервера как
ws://192.168.2.15:8881и нажать на переключатель «Подключиться»:
В результате кнопка «Вызов» станет зелёной:

-
Нажать кнопку «Вызов».
Сборка примера
Пакет rpm собирается с помощью Аврора SDK, см. spec-файл.
Зависимости примера
- GNU make;
- libwebrtc;
- Модули Qt: Qt5Quick, Qt5Gui, Qt5Qml, Qt5Network, Qt5Core, Qt5WebSockets;
- libpulse;
- streamcamera и streamcamera-qt5 для сборки для ОС Аврора.