WebRTC sur une application mobile autonome

je sais que WebRTC a été conçu pour les navigateurs, mais est-il possible d'utiliser les bibliothèques WebRTC sur les applications mobiles directement?

Merci!

24
demandé sur Taras 2013-05-13 12:41:56

18 réponses

à partir du 14 mai ici est un projet android utilisant WebRTC cela fonctionne très bien.

j'ai traduit tout le projet android en Objective-C pour iOS et got WebRTC travailler dans iOS aussi mais j'ai des problèmes sur iPhone 4 et 4s. Just works in iPhone 5 and 5s.

je pense que le problème est la performance. Quand je fais une videocall avec les bibliothèques webrtc il prend environ 140% du CPU sur un iPhone 5, ce qui je suppose que c'est beaucoup de ressources et l'iPhone 4s ne peut pas le manipuler.


Modifié

après avoir lutté avec la connexion vidéo (toujours déconnecté après 10 Secondes) j'ai finalement obtenu WebRTC travailler sur iPhone 4s, tout ce que vous avez à faire est de définir les bonnes contraintes lors de la création de l'objet local de capture videoSource:

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]];

notez que cela envoie une très petite vidéo, mais ça marche!

21
répondu Moisés Olmedo 2016-07-07 12:47:24

vous pouvez utiliser WebRTC avec des applications natives, mais cela demande un peu de travail. WebRTC Native app anatomy

Si vous regardez l'image, vous pouvez voir un rectangle rouge en bas. C'est les bibliothèques natives C++ De WebRTC. Les classes WebRTC et les objets WebRTC pour l'audio et la vidéo peuvent également être trouvés dans le cadre du projet WebRTC.Ce que vous devez ajouter est une API pour votre application pour être en mesure de configurer les appels (l'interface VOIP), une pile de signalisation et les utilitaires de traversée NAT (protocole de base-pour SIP cela pourrait être quelque chose comme PJSIP et PJNATH) et un adaptateur de votre pile de signalisation à webrtc, lui disant Quand ouvrir des canaux pour la vidéo et l'audio et quand les arrêter, etc.

Voir aussi: http://bloggeek.me/porting-webrtc-mobile/

12
répondu Arik Halperin 2013-11-15 08:07:19

Nous (disclaimer: j'y travaille) ont construit un ensemble de bibliothèques pour le faire @ Congelés Montagne, dans Iselink. Mise en œuvre complète de WebRTC pour iOS, Android, .NET, etc.

5
répondu jvenema 2013-10-22 13:33:33

Permettez-moi de résumer la réponse, sur Android Firefox a effectivement le soutien WebRTC je crois, d'autre part, il ya un tas d'entreprises là-bas fournissant la pile complète pour la construction d'un produit WebRTC. Si vous êtes après juste WebRTC et la construction des autres choses (l'adressage etc) votre AUTO vous devez probablement construire un couple de wrappers vous-même. (Avertissement je travaille pour sinch)

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

Il y a certains plus là-bas, mais ce sont les principaux

Nous avons tous nos différents avantages et faiblesses. si vous êtes intéressés envoyez un mail, et je peux parler de sinch.

5
répondu cjensen 2014-06-06 02:56:45

il est possible de travailler avec WebRTC dans des applications mobiles avec L'utilisation D'API tierces comme OpenTok (iOS seulement, à partir de janvier 2014 Android en beta) http://tokbox.com/opentok/webrtc/downloads/index.html and Addlive (iOS and Android)http://www.addlive.com/platform-overview/

3
répondu Thelle 2014-01-29 10:03:38

A partir d'aujourd'hui, WebRTC est officiellement disponible nativement sur Android/iOS.

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

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

bien que sous le capot, C'est juste un enveloppeur Java/Objectif C autour des API C++.

Vous pouvez toujours utiliser sans passer par JavaScript.

L'API Java wrapper : https://code.google.com/p/webrtc/source/browse/trunk/talk/#talk%2Fapp%2Fwebrtc%2Fjava%2Fsrc%2Forg%2Fwebrtc

L'Objectif C API wrapper : https://code.google.com/p/webrtc/source/browse/trunk/talk/#talk%2Fapp%2Fwebrtc%2Fobjc%2Fpublic%253Fstate%253Dclosed

3
répondu Schleir 2014-12-29 19:38:58

SightCall a un SDK compatible WebRTC pour Android qui permet aux applications natives D'Android de se connecter à WebRTC dans un navigateur. Vous pouvez obtenir le SDK ici

3
répondu Christophe 2015-03-12 18:35:20

Je ne sais pas ce que vous voulez dire par "utiliser les bibliothèques WebRTC sur les applications mobiles directement". Mais il y a quelque chose que j'ai déjà fait. Construisez des modules WebRTC NS/AEC/AECM/AGC/VAD avec JNI + NDK, et utilisez la bibliothèque partagée sur android. ou vous pouvez construire VoE et ViE WebRTC entier pour les deux android et iOS.

2
répondu BillHoo 2013-05-30 10:26:42

Une ressource que vous pouvez consulter cet article: comment commencer avec webrtc et ios sans perdre 10 heures de votre vie

Un problème que j'ai est de donner un sens à tous les WebRTC/Libjingle dossiers de bibliothèque. En ce moment, je peux obtenir l'application d'exemple en cours d'exécution, mais je souhaite qu'il y ait un exemple "Hello World" là-bas.

2
répondu Martin Duparc 2014-02-05 00:39:57

pas encore, il n'est pris en charge que dans les versions de bureau nightly et Chrome de Firefox. Voir http://www.webrtc.org

Edit: désolé, je pensais que vous demandez pour les navigateurs mobiles. Les applications natives, il ressemble à un non catégorique :(

Mais il semble que certains navigateur mobile de soutien http://www.morbo.org/2013/04/webrtc-support-on-android.html

1
répondu destan 2013-05-13 08:48:00

Pour l'instant, vous avez deux options:

  • soit vous construisez libWebRTC pour votre périphérique. Vous devez savoir comment travailler avec Android NDK et le code C natif sur iOS. Il est non trivial, mais c'est parfaitement faisable
  • utilisez le travail des autres qui ont fait cela pour vous. Par exemple: déjà mentionné AddLive (yip, je travaille là) ou même OpenTok.
0
répondu stoiczek 2014-02-07 21:13:31

Voir aussi exemple pour une application android avec webrtc, phonertc et crosswalk-WebView construire sur cordova, avec peerjs.

0
répondu guest 2016-07-07 11:50:02
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

Case pour lesquelles des révisions sont disponibles. Révision 6802.X reflète de la WebRTC base de code.

Android sera ajouté à maven central très bientôt, je ferai une édition à ce moment-là.

si vous voulez construire manuellement WebRTC, Vérifiez github.com/pristineio/webrtc-build-scripts qui comprend également un guide étape par étape pour les deux les plates-formes

0
répondu thebehera 2016-07-07 12:04:07

Mon équipe a fait un peu de travail dans ce domaine. Si vous cherchez un plugin Cordova, nous avons joué avec un projet open source appelé PhoneRTC. Nous l'avons fait tourner sur iOS mais c'est un peu peu peu fiable et le format de la fenêtre vidéo est corrigé d'une manière qui semble anormale sur la plupart des appareils, mais cela fonctionne.

nous avons aussi créé une démo Android en utilisant libjingle. Libjingle fait maintenant partie du projet WebRTC et de la base de code. link est probablement périmé maintenant, mais indique des instructions qui ont fonctionné pour nous à l'époque.

0
répondu bpulito 2016-07-07 13:20:05

assez tard pour répondre.. Mais je viens de faire un cadre pour ajouter WebRTC facilement dans le projet iOS. Vous n'aurez pas besoin de construire le framework WebRTC à partir de la bibliothèque. Ce framework vous donnera construit dans le cadre avec un wrapper pour l'ajout facile de webRTC à votre application. https://github.com/Ankit-Aggarwal/SwiftyWebRTC

0
répondu Ankit 2017-03-06 09:26:18

si vous ciblez android > = L, vous pouvez construire une application webbrtc native assez facilement en intégrant un (chrome) webview - qui prend en charge WebRTC - dans votre application.

Voir chrome webview

0
répondu Tim Panton 2017-03-24 08:15:30

Vérifier ma réponse ici, et j'espère que vous comprenez que cela fonctionne sur android trop. Essayez de ne pas obtenir les bibliothèques déjà implémentées pour certains serveurs de signalisation (ps ils sont payés).

0
répondu Stoica Mircea 2017-08-11 14:57:07