Разработка нативного приложения для Android WebRTC
Я пытаюсь создать приложение для Android для видеочата и обмена сообщениями, используя WebRtc Native apis. Я перебрал несколько ссылок и обнаружил, что большая часть документации для 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.
Спасибо
4 ответа
Я знаю, что это старая ветка, но в случае, если кто-то все еще ищет способ создания приложений 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.+'
}
Документация здесь. Для примера того, как использовать API Android, прочитайте код AppRTC.
@ Марк Шерман дал хороший ответ о том, как включить libjingle lib в ваш проект. Вам все равно нужно будет придумать собственную службу сигнализации. Проект, который я нашел полезным, который включает в себя Android-клиент и сервис, заключается в следующем:
Клиент - https://github.com/pchab/AndroidRTC
Сигнализация - https://github.com/pchab/ProjectRTC
Вы также можете проверить обширный кроссплатформенный SDK Ericsson под названием OpenWebRTC:
Я также нахожусь в той же ситуации, что и вы, и выясняю, как интегрировать мою собственную службу сигнализации в 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
к вашему проекту.
Я использую библиотеку, которую упоминает Mark Sherman. Есть запись в блоге, которая очень хорошо объясняет все классы, вовлеченные в процесс: tech.appear.in
ПРИМЕЧАНИЕ. Он ничего не объясняет о сигнальных серверах, но знакомит вас с ним.
Кроме того, код AppRTCDemo, доступный на chromium.googlesource.com, может быть хорошим доверенным ресурсом для проверки рабочего процесса. Это немного сложно, но если вы знаете, что ищете, это может быть полезно.
Если вам не нужна полная реализация с открытым исходным кодом, я бы посмотрел на эту библиотеку... https://github.com/nhancv/nc-kurento-android
Это в сочетании с Kurento (https://github.com/kurento) и включенными демонстрациями в значительной степени покажет вам, как все работает под капотом. Я использовал это как отправную точку для моего собственного проекта webrtc, и он был относительно простым и тщательным, хотя, конечно, все равно придется учиться.