Документация
ОС Аврора 5.2.0

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

Для ОС Аврора доступен пример WebRTC.

Приложение демонстрирует:

  • локальное видео, снятое с камеры (или записанное ранее видео, если камера недоступна) и видео с подключённого удалённого узла;
  • захват и воспроизведение звука с помощью устройства PulseAudio по умолчанию;
  • встроенный сервер для обмена сигнальными сообщениями через веб-сокет.

Приложение имеет следующую функциональность:

  • Без включённого переключателя «Подключиться» ожидается входящее соединение через веб-сокет, порт 8881.
  • С включённым переключателем «Подключиться» устанавливается подключение через веб-сокет к сигнальному серверу через порт IP 127.0.0.1 8881.

Следует использовать поля ввода «Сервер» и «Порт» для переопределения значений по умолчанию.

Предполагается, что телефон с ОС Аврора имеет IP-адрес 192.168.2.15.

Звонок из браузера ПК на телефон

  1. Запустить пример WebRTC на телефоне с ОС Аврора.

  2. Открыть файл signaling_server/server_test.html в браузере.

  3. Установить адрес сервера как ws://192.168.2.15:8881 и нажать на переключатель «Подключиться»:

    Подключение

    В результате кнопка «Вызов» станет зелёной:

    Вызов

  4. Нажать кнопку «Вызов».

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

Пакет rpm собирается с помощью Аврора SDK, см. spec-файл.

Зависимости примера

  • GNU make;
  • libwebrtc;
  • Модули Qt: Qt5Quick, Qt5Gui, Qt5Qml, Qt5Network, Qt5Core, Qt5WebSockets;
  • libpulse;
  • streamcamera и streamcamera-qt5 для сборки для ОС Аврора.

Мы используем cookies для персонализации сайта и его более удобного использования. Вы можете запретить cookies в настройках браузера.

Пожалуйста ознакомьтесь с политикой использования cookies.