Я знаю, что WebRTC
был разработан для браузеров, но можно ли напрямую использовать библиотеки WebRTC для мобильных приложений?
Спасибо!
Я знаю, что WebRTC
был разработан для браузеров, но можно ли напрямую использовать библиотеки WebRTC для мобильных приложений?
Спасибо!
По состоянию на май 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]];
Обратите внимание, что это отправляет очень маленькое видео, но оно работает!
Вы можете использовать WebRTC с собственными приложениями, но это требует немного работы.
Если вы посмотрите на изображение, то увидите внизу красный прямоугольник. Это родные C++ библиотеки WebRTC. Классы WebRTC и объекты WebRTC для аудио и видео также можно найти как часть проекта WebRTC. Необходимо добавить API-интерфейс для вашего приложения, позволяющий настраивать вызовы (интерфейс VOIP), стек сигнализации и NAT утилиты обхода (Core Protocol- Для SIP это может быть что-то вроде PJSIP и PJNATH) и адаптер от вашего стека сигнализации к webrtc, сообщающий, когда открывать каналы для видео и аудио, а когда останавливать их и т.д.
Смотрите также: http://bloggeek.me/porting-webrtc-mobile/
Мы (отказ от ответственности: я там работаю) создали набор библиотек для этого @Frozen Mountain, в IceLink. Полная реализация WebRTC для iOS, Android,.NET и т.д.
Позвольте мне обобщить ответ: на Android Firefox действительно есть поддержка WebRTC, я полагаю, с другой стороны, существует множество компаний, предоставляющих полный стек для создания продукта WebRTC. Если ты после просто WebRTC и создания другого материала (адресации и т.д.), вы, вероятно, должны сами создать пару оберток. (Отказ от ответственности я работаю для синха)
[http://sinch.com]
[http://twilio.com]
[http://tokbox.com]
[http://nexmo.com]
[http://plivo.com] (I think)
Есть еще кое-что, но это основные
У всех нас есть разные преимущества и недостатки. если вы заинтересованы, отправьте электронное письмо, и я могу поговорить о sinch.
Можно работать с WebRTC в мобильных приложениях с использованием стороннего API, такого как OpenTok (только для iOS, по состоянию на январь 2014 года Android в бета-версии) http://tokbox.com/opentok/webrtc/downloads/index.html и Addlive (iOS и Android) http://www.addlive.com/platform-overview/
По состоянию на март 2014 года здесь - это способ сделать это:
Это было бы, если бы вы заинтересовались наличием собственного клиента. Если вы не против использования мобильного браузера, в настоящее время поддерживаются следующие:
На сегодняшний день 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
SightCall имеет совместимый с WebRTC SDK для Android, который позволяет подключаемым к Android приложениям подключаться к WebRTC в браузере. Вы можете получить SDK здесь
Я не знаю, что вы подразумеваете под "использованием библиотек WebRTC для мобильных приложений напрямую". Но есть кое-что, что я уже сделал. Создайте модули WebRTC NS/AEC/AECM/AGC/VAD с JNI + NDK и используйте общую библиотеку на Android. или вы можете создавать целые WebRTC VoE и ViE для Android и iOS.
Один ресурс, который вы, возможно, захотите посмотреть, - это статья: как начать работу с webrtc и ios, не тратя впустую 10 часов вашей жизни
Одна из проблем, с которой я столкнулась, имеет смысл всех файлов библиотеки WebRTC/Libjingle
. На данный момент я могу запустить приложение для примера, но мне жаль, что там не было примера "Hello World".
Пока нет, он поддерживается только в Firefox в ночное время и в Chrome, и в настольных версиях. См. http://www.webrtc.org
Изменить: извините, я думал, что вы просите мобильные браузеры. Для родных приложений это выглядит как нет: (
Но есть какая-то мобильная поддержка браузера http://www.morbo.org/2013/04/webrtc-support-on-android.html
Теперь у вас есть два варианта:
Для 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, который также включает пошаговое руководство для обеих платформ.
Моя команда провела довольно много работы в этой области. Если вы ищете плагин Cordova, мы играем с открытым исходным кодом под названием PhoneRTC. У нас он работает на iOS, но он немного ненадежный, а соотношение сторон видеоокна фиксировано таким образом, что на большинстве устройств выглядит неестественно, но он работает.
Мы также создали демо-версию Android, используя libjingle. Libjingle теперь является частью проекта и базы кода WebRTC. Эта ссылка, вероятно, устарела, но указывает на инструкции, которые работали для нас в то время.
См. также этот пример приложения для Android с помощью webrtc, phonertc и crosswalk-webview build на кордове с peerjs.
Довольно поздно ответить.. Но я просто создал рамки для простого добавления WebRTC в iOS Project. Вам не нужно будет создавать структуру WebRTC из библиотеки. Эта структура предоставит вам встроенную инфраструктуру вместе с оболочкой для легкого добавления webRTC в ваше приложение. https://github.com/Ankit-Aggarwal/SwiftyWebRTC
Если вы ориентируетесь на android >= L, вы можете легко создать собственное приложение webRTC, вставив (xrome) webview, который поддерживает WebRTC, в ваше приложение.
Проверьте мой ответ здесь, и я надеюсь, вы понимаете, что он работает и на android. Старайтесь не получать уже реализованные библиотеки для некоторых серверов сигнализации (ps они оплачиваются).
Вы можете попробовать использовать библиотеку Enablex. Библиотека Enablex очень гибкая и простая в использовании для создания потокового мобильного приложения/веб-приложения. EnableX - это платформа, которая помогает создавать приложения Видео/Аудио/Чат.