Подтвердить что ты не робот

WebRTC в автономном мобильном приложении

Я знаю, что WebRTC был разработан для браузеров, но можно ли напрямую использовать библиотеки WebRTC для мобильных приложений?

Спасибо!

4b9b3361

Ответ 1

По состоянию на май 14 здесь является проектом андроида с использованием WebRTC, который работает красиво.

Я перевел весь проект Android на Objective-C для iOS и получил WebRTC, работающий в iOS, но у меня проблемы с iPhone 4 и 4. Просто работает в iPhone 5 и 5s.

Я думаю, проблема в производительности. Когда я делаю видеозвонок с библиотеками webrtc, он занимает около 140% процессора на iPhone 5, и я полагаю, что многие ресурсы и iPhone 4 не могут его обработать.


Edited

После борьбы с видеосоединением (всегда отключенным через 10 секунд) я наконец получил WebRTC, работающий на iPhone 4, все, что вам нужно сделать, это установить правильные ограничения при создании локального объекта захвата видеоисточника:

NSString *_width = @"320";
NSString *_height = @"180";
NSString *_maxFrameRate = @"10";

RTCMediaConstraints *videoConstraints = [[RTCMediaConstraints alloc]   
initWithMandatoryConstraints:@[[[RTCPair alloc] initWithKey:@"maxHeight" value:_height],
[[RTCPair alloc] initWithKey:@"maxWidth" value:_width],
[[RTCPair alloc] initWithKey:@"maxFrameRate" value:_maxFrameRate]] optionalConstraints:@[[[RTCPair alloc] 
initWithKey:@"googCpuOveruseDetection" value:@"true"],
[[RTCPair alloc] initWithKey:@"googCpuLimitedResolution" value:@"true"]]];


RTCVideoSource *videoSource = [factory videoSourceWithCapturer:capturer constraints:videoConstraints];
RTCMediaStream *lms = [factory mediaStreamWithLabel:@"ARDAMS"];
[lms addVideoTrack:[factory videoTrackWithID:@"ARDAMSv0" source:videoSource]];

Обратите внимание, что это отправляет очень маленькое видео, но оно работает!

Ответ 2

Вы можете использовать WebRTC с собственными приложениями, но это требует немного работы. WebRTC Native app anatomy

Если вы посмотрите на изображение, то увидите внизу красный прямоугольник. Это родные C++ библиотеки WebRTC. Классы WebRTC и объекты WebRTC для аудио и видео также можно найти как часть проекта WebRTC. Необходимо добавить API-интерфейс для вашего приложения, позволяющий настраивать вызовы (интерфейс VOIP), стек сигнализации и NAT утилиты обхода (Core Protocol- Для SIP это может быть что-то вроде PJSIP и PJNATH) и адаптер от вашего стека сигнализации к webrtc, сообщающий, когда открывать каналы для видео и аудио, а когда останавливать их и т.д.

Смотрите также: http://bloggeek.me/porting-webrtc-mobile/

Ответ 3

Мы (отказ от ответственности: я там работаю) создали набор библиотек для этого @Frozen Mountain, в IceLink. Полная реализация WebRTC для iOS, Android,.NET и т.д.

Ответ 4

Позвольте мне обобщить ответ: на Android Firefox действительно есть поддержка WebRTC, я полагаю, с другой стороны, существует множество компаний, предоставляющих полный стек для создания продукта WebRTC. Если ты после просто WebRTC и создания другого материала (адресации и т.д.), вы, вероятно, должны сами создать пару оберток. (Отказ от ответственности я работаю для синха)

[http://sinch.com]
[http://twilio.com]
[http://tokbox.com]
[http://nexmo.com]
[http://plivo.com] (I think)

Есть еще кое-что, но это основные

У всех нас есть разные преимущества и недостатки. если вы заинтересованы, отправьте электронное письмо, и я могу поговорить о sinch.

Ответ 6

По состоянию на март 2014 года здесь - это способ сделать это:

Это было бы, если бы вы заинтересовались наличием собственного клиента. Если вы не против использования мобильного браузера, в настоящее время поддерживаются следующие:

  • Google Chrome 28 (включен по умолчанию с 29)
  • Mozilla Firefox 24
  • Opera Mobile 12

Источник:

Ответ 7

На сегодняшний день WebRTC официально доступен на Android/iOS.

http://www.webrtc.org/native-code/android

http://www.webrtc.org/native-code/ios

Хотя под капотом это просто оболочка Java/Objective C вокруг API С++.

Вы все еще можете использовать их, не просматривая JavaScript.

API-интерфейс оболочки Java: https://code.google.com/p/webrtc/source/browse/trunk/talk/#talk%2Fapp%2Fwebrtc%2Fjava%2Fsrc%2Forg%2Fwebrtc

API-интерфейс обтекателя Objective C: https://code.google.com/p/webrtc/source/browse/trunk/talk/#talk%2Fapp%2Fwebrtc%2Fobjc%2Fpublic%253Fstate%253Dclosed

Ответ 8

SightCall имеет совместимый с WebRTC SDK для Android, который позволяет подключаемым к Android приложениям подключаться к WebRTC в браузере. Вы можете получить SDK здесь

Ответ 9

Я не знаю, что вы подразумеваете под "использованием библиотек WebRTC для мобильных приложений напрямую". Но есть кое-что, что я уже сделал. Создайте модули WebRTC NS/AEC/AECM/AGC/VAD с JNI + NDK и используйте общую библиотеку на Android. или вы можете создавать целые WebRTC VoE и ViE для Android и iOS.

Ответ 10

Один ресурс, который вы, возможно, захотите посмотреть, - это статья: как начать работу с webrtc и ios, не тратя впустую 10 часов вашей жизни

Одна из проблем, с которой я столкнулась, имеет смысл всех файлов библиотеки WebRTC/Libjingle. На данный момент я могу запустить приложение для примера, но мне жаль, что там не было примера "Hello World".

Ответ 11

Пока нет, он поддерживается только в Firefox в ночное время и в Chrome, и в настольных версиях. См. http://www.webrtc.org

Изменить: извините, я думал, что вы просите мобильные браузеры. Для родных приложений это выглядит как нет: (

Но есть какая-то мобильная поддержка браузера http://www.morbo.org/2013/04/webrtc-support-on-android.html

Ответ 12

Теперь у вас есть два варианта:

  • Либо вы создадите libWebRTC для своего устройства. Вам нужно знать, как работать с Android NDK и собственным C-кодом на iOS. Это нетривиально, но это прекрасно выполнимо
  • Используйте работу других, которые сделали это за вас. Например. уже упоминалось AddLive (yip, я там работаю) или даже OpenTok.

Ответ 13

Для iOS просто добавьте это в свой подкаст CocoaPods

pod "libjingle_peerconnection"


# Add this to the bottom so it won't have issues with active architecture
post_install do |installer_representation|
    installer_representation.project.targets.each do |target|
        target.build_configurations.each do |config|
            config.build_settings['ONLY_ACTIVE_ARCH'] = 'NO'
            config.build_settings['VALID_ARCHS'] = ['armv7', 'i386']
        end
    end
end

Отметьте этот, для которого доступны изменения. Версия 6802.X отражает это из фактической базы кода WebRTC.

Android скоро будет добавлен в maven central, я сделаю редактирование, когда это произойдет.

Если вы хотите вручную создать WebRTC, зайдите в github.com/pristineio/webrtc-build-scripts, который также включает пошаговое руководство для обеих платформ.

Ответ 14

Моя команда провела довольно много работы в этой области. Если вы ищете плагин Cordova, мы играем с открытым исходным кодом под названием PhoneRTC. У нас он работает на iOS, но он немного ненадежный, а соотношение сторон видеоокна фиксировано таким образом, что на большинстве устройств выглядит неестественно, но он работает.

Мы также создали демо-версию Android, используя libjingle. Libjingle теперь является частью проекта и базы кода WebRTC. Эта ссылка, вероятно, устарела, но указывает на инструкции, которые работали для нас в то время.

Ответ 15

См. также этот пример приложения для Android с помощью webrtc, phonertc и crosswalk-webview build на кордове с peerjs.

Ответ 16

Довольно поздно ответить.. Но я просто создал рамки для простого добавления WebRTC в iOS Project. Вам не нужно будет создавать структуру WebRTC из библиотеки. Эта структура предоставит вам встроенную инфраструктуру вместе с оболочкой для легкого добавления webRTC в ваше приложение. https://github.com/Ankit-Aggarwal/SwiftyWebRTC

Ответ 17

Если вы ориентируетесь на android >= L, вы можете легко создать собственное приложение webRTC, вставив (xrome) webview, который поддерживает WebRTC, в ваше приложение.

См. хромовый веб-просмотр

Ответ 18

Проверьте мой ответ здесь, и я надеюсь, вы понимаете, что он работает и на android. Старайтесь не получать уже реализованные библиотеки для некоторых серверов сигнализации (ps они оплачиваются).

Ответ 19

Вы можете попробовать использовать библиотеку Enablex. Библиотека Enablex очень гибкая и простая в использовании для создания потокового мобильного приложения/веб-приложения. EnableX - это платформа, которая помогает создавать приложения Видео/Аудио/Чат.