Разработка собственного WebRTC-приложения для Android

Я пытаюсь создать приложение для Android для видеочата и обмена сообщениями с помощью собственных API-интерфейсов WebRTC. Я просмотрел несколько ссылок и обнаружил, что большая часть документации по Android расплывчата, особенно если вы не знаете, с чего начать. Я перешел по следующим ссылкам,

https://webrtc.org/native-code/android/#

https://www.chromium.org/developers/how-tos/android-build-instructions

Но вышеупомянутые ссылки не имеют никакого смысла, потому что я хочу разработать приложение для Android, и эти ссылки предлагают загрузить хром, а затем создать его. Я знаю, что конечным результатом будет apk, но что, если я захочу закодировать себя. Я также изучил pubnub и OpenTokRTC, но я также не хочу использовать чью-либо службу сигнализации (вместе с ключами pub и sub). Я попробовал следующую ссылку,

https://github.com/pristineio/webrtc-build-scripts

но это кажется немного неполным для новичка в WebRTC, так как он предлагает получить WebRTC с помощью следующей команды:

# Pull WebRTC
get_webrtc

Наконец, я попробовал следующую ссылку,

http://simonguest.com/2013/08/06/building-a-webrtc-client-for-android/

Но проблема с этим учебником в том, что он вообще не обновляется. Libjingle уже перемещен на github, и я не знаю, как использовать gclient для получения libjingle с github.

Эта моя борьба обернулась катастрофой. Может ли кто-нибудь помочь мне с обновленной документацией или учебным пособием, которое я могу использовать для понимания того, что именно мне нужно для разработки приложения с использованием собственных API-интерфейсов webRTC? Пожалуйста, не давайте мне никаких ссылок на OpenTokRtc или PubNub.

Спасибо


person Ahmed    schedule 24.04.2016    source источник
comment
Вы можете отключить вызов без закрытия приложения?   -  person NovusMobile    schedule 13.07.2016
comment
Вы уже нашли решение? у меня такая же проблема   -  person Subkhan Sarif    schedule 12.06.2017
comment
Лучшим способом было бы, возможно, создать хром, чтобы вы могли создать свой собственный apk. А затем попробуйте получить бесплатную службу сигнализации или напишите ее. Или перейдите на libjingle, чтобы вы могли создавать свои собственные вещи.   -  person Ahmed    schedule 13.06.2017
comment
@Ahmed Ты смог закончить проект или получить рекомендации ??   -  person ASN    schedule 19.12.2017
comment
К сожалению нет.....   -  person Ahmed    schedule 20.12.2017
comment
Привет, Ахмед, не могли бы вы поделиться с нами, как вы наконец решили проблему?   -  person Mushfiqur Rahman    schedule 06.03.2019
comment
Что вы пытаетесь достичь?   -  person Ahmed    schedule 06.03.2019
comment
Я хочу разработать приложение, используя собственный API WebRTC. Если вы уже нашли хорошую документацию, учебник или пример, не могли бы вы поделиться им здесь? @Ахмед Спасибо   -  person Mushfiqur Rahman    schedule 07.03.2019
comment
@Ahmed, я думаю, это поможет скомпилировать и создать нативные библиотеки: github.com /mail2chromium/Android-Native-Development-For-WebRTC   -  person Muhammad Usman    schedule 17.04.2020


Ответы (5)


Я знаю, что это старая тема, но на случай, если кто-то все еще ищет способ создания приложений для Android с помощью libjingle, за последние несколько месяцев были опубликованы готовые библиотеки, которые можно очень просто добавить в качестве зависимостей в проекты Android Studio следующим образом:

dependencies {
    compile 'org.webrtc:google-webrtc:1.0.+'
}

В Android Studio 2. Или для Android Studio 3:

dependencies {
    implementation 'org.webrtc:google-webrtc:1.0.+'
}

Документация находится здесь. Пример использования Android API см. в коде AppRTC< /а>.

person samuelokrent    schedule 26.01.2018
comment
Если вы просто хотите использовать Android API, то все, что вам нужно сделать, это добавить приведенные выше строки в build.gradle. Нет необходимости компилировать библиотеку самостоятельно, если у вас нет более конкретных потребностей. - person samuelokrent; 29.01.2018
comment
@samuelokrent Знаете ли вы какие-либо учебные пособия или примеры проектов, которые проще, чем представленные на их сайте? Это немного сложно, и документация не очень полезна. Я с нетерпением жду понимания этой библиотеки и что-то с ней делаю, но, к сожалению, информации не хватает. - person shurrok; 11.05.2018
comment
@shurrok Код AppRTC, которым я поделился выше, является единственным известным мне правильным примером использования текущего Android API. Библиотека определенно немного сложна, тем более что большая часть документации находится в родная библиотека C++. Я настоятельно рекомендую начать с копирования кода webrtc из AppRTC и изменения оттуда. - person samuelokrent; 13.05.2018
comment
Это правильный ответ. Кроме того, образец проекта, основанный на коде AppRTC и обновленный для Oreo, можно найти здесь. - person user2230793; 28.08.2018
comment
Эта библиотека предназначена только для целей разработки - person Praveena; 09.03.2019

@Mark Sherman дал хороший ответ о том, как заставить библиотеку libjingle скомпилироваться в ваш проект. Вам все равно нужно будет придумать свой собственный сигнальный сервис. Я нашел полезным проект, который включает в себя Android-клиент и службу:

Клиент — https://github.com/pchab/AndroidRTC

Сигнализация — https://github.com/pchab/ProjectRTC

Вы также можете ознакомиться с обширным кросс-платформенным пакетом SDK от Ericsson под названием OpenWebRTC:

http://www.openwebrtc.org/

https://github.com/EricssonResearch/openwebrtc-android-sdk

person Sofia Clover    schedule 19.05.2016

Я также нахожусь в той же ситуации, что и вы, ищу, как интегрировать мою собственную сигнальную службу в libjingle, и, похоже, нет учебника, посвященного этому.

Если вы используете Android Studio для своей разработки, вы должны включить compile 'io.pristine:libjingle:9694@aar' в раздел dependencies вашего build.gradle скрипта:

dependencies {
   compile fileTree(dir: 'libs', include: ['*.jar'])
   compile 'io.pristine:libjingle:9694@aar'
   // the rest of your code
}

Это должно добавить libjingle к вашему проекту.

person Mark Sherman    schedule 28.04.2016
comment
Привет, я хочу добавить аутентификацию пользователя для подключения к моему существующему серверу WebRTC. Я могу подключиться через веб-страницу и могу звонить через нее. У вас есть какой-нибудь пример, чтобы помочь работать так для Android ?? - person For Guru; 01.08.2016

Я использую библиотеку, о которой упоминает Марк Шерман. В блоге есть сообщение, в котором очень хорошо объясняются все классы, участвующие в процессе: tech.appear.in

ПРИМЕЧАНИЕ. Он ничего не объясняет о серверах сигнализации, но знакомит вас с ними.

Кроме того, код AppRTCDemo доступен по адресу chromium.googlesource.com может быть хорошим надежным ресурсом для проверки рабочего процесса. Это немного сложно, но если вы знаете, что ищете, это может быть полезно.

person Samuel Méndez    schedule 03.05.2016
comment
Привет, я хочу добавить аутентификацию пользователя для подключения к моему существующему серверу WebRTC. Я могу подключиться через веб-страницу и могу звонить через нее. У вас есть образец, чтобы помочь работать так?? - person For Guru; 01.08.2016
comment
@ForGuru Что именно вы имеете в виду? Как логин? В этом случае используйте для этого базу данных. - person Samuel Méndez; 01.08.2016
comment
У меня работает сервер VoIP на основе FreeSwitch. Который теперь работает с идентификатором пользователя и паролем SIP. Мы установили на него модуль WebRTC и можем подключиться через клиент WebRTC в Chrome. Я хочу добавить аутентификацию имени пользователя и пароля в пример приложения Android AppRTC для подключения к моему серверу - person For Guru; 01.08.2016
comment
@ForGuru Не является частью самого webrtc. Я предлагаю вам создать вопрос об этом. Я не могу помочь вам. - person Samuel Méndez; 01.08.2016

Если вам не нужна полная реализация с открытым исходным кодом, я бы посмотрел на эту библиотеку... https://github.com/nhancv/nc-kurento-android

Это в сочетании с Kurento (https://github.com/kurento) и включенными демонстрационными примерами в значительной степени покажет вам, как все работает под капотом. Я использовал это в качестве отправной точки для моего собственного проекта webrtc, и было относительно легко следовать и тщательно, хотя, конечно, все еще будет кривая обучения.

person ESportsVRGuy    schedule 21.02.2020