it-swarm.com.de

WebRTC als eigenständige mobile App

Ich weiß, dass WebRTC für Browser entwickelt wurde. Aber ist es möglich, WebRTC-Bibliotheken direkt auf mobilen Anwendungen zu verwenden?

Vielen Dank!

23
Taras

Ab dem 14. Mai hier ist ein Android-Projekt mit WebRTC, das gut funktioniert.

Ich habe das gesamte Android-Projekt in Objective-C für iOS übersetzt und WebRTC auch unter iOS zum Laufen gebracht, aber ich habe Probleme mit dem iPhone 4 und 4. Funktioniert einfach in iPhone 5 und 5s.

Ich denke, das Problem ist die Leistung. Wenn ich mit den Webrtc-Bibliotheken einen Videotelefonat verwende, sind auf einem iPhone 5 ungefähr 140% der CPU-Kosten erforderlich. Ich denke, das ist eine Menge von Ressourcen, und das iPhone 4 kann damit nicht umgehen.


Bearbeitet

Nachdem ich mich mit der Videoverbindung auseinandergesetzt hatte (immer nach 10 Sekunden getrennt), konnte WebRTC endlich auf dem iPhone 4 funktionieren. Alles, was Sie tun müssen, ist, die richtigen Einschränkungen für das Erstellen des lokalen VideoSource-Aufnahmeobjekts festzulegen:

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

Beachten Sie, dass dies ein sehr kleines Video sendet, aber es funktioniert!

21
Moisés Olmedo

Sie könnten WebRTC mit nativen Apps verwenden, dies erfordert jedoch etwas Arbeit. WebRTC Native app anatomy

Wenn Sie das Bild betrachten, sehen Sie unten ein rotes Rechteck. Das sind die nativen C++ - Bibliotheken von WebRTC. Die WebRTC-Klassen und WebRTC-Objekte für Audio und Video finden Sie auch als Teil des WebRTC-Projekts. Was Sie hinzufügen müssten, ist eine API für Ihre App, um Anrufe (Die VOIP-Schnittstelle), einen Signalisierungsstapel und NAT Durchlauf-Dienstprogramme (Core Protocol- Für SIP könnte dies etwas wie PJSIP und PJNATH sein) und einen Adapter von Ihrem Signaling Stack auf webrtc, der angibt, wann Kanäle für Video und Audio zu öffnen sind und wann sie zu stoppen sind usw.

Siehe auch: http://bloggeek.me/porting-webrtc-mobile/

12
Arik Halperin

Wir (Disclaimer: Ich arbeite dort) haben eine Reihe von Bibliotheken für dieses @ Frozen Mountain in IceLink erstellt. Vollständige WebRTC-Implementierung für iOS, Android, .NET usw.

5
jvenema

Lassen Sie mich die Antwort zusammenfassen: Auf Android Firefox gibt es tatsächlich eine WebRTC-Unterstützung. Auf der anderen Seite gibt es eine Reihe von Unternehmen, die den gesamten Stack für den Aufbau eines WebRTC-Produkts bereitstellen. Wenn Sie Nach nur WebRTC und dem Bauen der anderen Sachen (Adressierung usw.) selbst sind, müssen Sie wahrscheinlich ein paar Wrapper selbst erstellen . (Disclaimer Ich arbeite für Sinch)

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

Es gibt noch mehr, aber das sind die wichtigsten

Wir haben alle unsere unterschiedlichen Vorzüge und Schwächen. Wenn Sie interessiert sind, senden Sie eine E-Mail und ich kann über Sinch sprechen.

5
cjensen

Ab März 2014 ist hier ein Weg, dies tatsächlich zu tun:

Das wäre, wenn Sie an einem nativen Client interessiert sind. Wenn Sie nichts dagegen haben, einen mobilen Browser zu verwenden, werden derzeit folgende unterstützt:

  • Google Chrome 28 (seit 29 standardmäßig aktiviert)
  • Mozilla Firefox 24
  • Opera Mobile 12

Quelle :

3
Clint Eastwood

SightCall verfügt über ein WebRTC-kompatibles SDK für Android, mit dem Android-native Apps in einem Browser eine Verbindung mit WebRTC herstellen können. Sie können das SDK hier erhalten.

3
Christophe

Es ist möglich, mit WebRTC in Mobilanwendungen mit APIs von Drittanbietern wie OpenTok zu arbeiten (nur iOS, ab Januar 2014 Android in der Beta) http://tokbox.com/ opentok/webrtc/downloads/index.html und Addlive (iOS und Android) http://www.addlive.com/platform-overview/

3
Thelle

Ab heute ist WebRTC offiziell auf Android/iOS verfügbar.

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

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

Obwohl unter der Haube, handelt es sich lediglich um einen Java/Objective C-Wrapper für die C++ - APIs.

Sie können sie auch ohne JavaScript verwenden.

Die Java-Wrapper-API: https://code.google.com/p/webrtc/source/browse/trunk/talk/#talk%2Fapp%2Fwebrtc%2Fjava%2Fsrc%2Forg%2Fwebrtc

Die Objective C-Wrapper-API: https://code.google.com/p/webrtc/source/browse/trunk/talk/#talk%2Fapp%2Fwebrtc%2Fobjc%2Fpublic%253Fstate%253Dclosed

3
Schleir

Eine Ressource, die Sie sich ansehen sollten, ist folgender Artikel: Erste Schritte mit webrtc und ios, ohne 10 Stunden Ihres Lebens zu verschwenden

Ein Problem, das ich habe, besteht darin, alle WebRTC/Libjingle-Bibliotheksdateien zu verstehen. Im Moment kann ich die Beispiel-App zum Laufen bringen, aber ich wünschte, es gäbe ein Beispiel für "Hello World".

2
Martin Duparc

Ich weiß nicht, was Sie unter "WebRTC-Bibliotheken direkt für mobile Anwendungen verwenden" verstehen. Aber es gibt etwas, was ich bereits getan habe JNI + NDK, und verwenden Sie die gemeinsam genutzte Bibliothek unter Android . Sie können auch ganze WebRTC-VoE und ViE für Android und iOS erstellen.

2
BillHoo

Noch nicht, es wird nur in Firefox Nightly und Chrome, beiden Desktop-Versionen, unterstützt. Siehe http://www.webrtc.org

Edit: Entschuldigung, ich dachte, du hättest nach mobilen Browsern gefragt. Für native Apps sieht es wie ein definitives Nein aus :(

Es scheint jedoch, dass einige mobile Browser unterstützt werden http://www.morbo.org/2013/04/webrtc-support-on-Android.html

1
destan

Mein Team hat in diesem Bereich viel Arbeit geleistet. Wenn Sie nach einem Cordova-Plugin suchen, haben wir mit einem Open Source-Projekt namens PhoneRTC gespielt. Wir haben es auf iOS laufen lassen, aber es ist etwas unzuverlässig und das Seitenverhältnis des Videofensters ist so festgelegt, dass es auf den meisten Geräten unnatürlich wirkt, aber es funktioniert. 

Wir haben auch eine Android-Demo mit libjingle erstellt. Libjingle ist jetzt Teil des WebRTC-Projekts und der Codebasis. Dieser Link ist wahrscheinlich nicht mehr aktuell, weist aber auf Anweisungen hin, die zu diesem Zeitpunkt für uns funktionierten.

0
bpulito

Wenn Sie auf Android> = L zielen, können Sie ganz einfach eine native WebRTC-App erstellen, indem Sie einen (Chrome) Webview - der WebRTC unterstützt - in Ihre App einbetten.

Siehe Chrome Webview

0
Tim Panton

Versuchen Sie, webRTC mit der Enablex-API zu verwenden. Dies ist eine sehr einfache Möglichkeit, über das enablex-Framework eine Verbindung mit webRTC herzustellen. Beispiel für eine Videoanruf-App unter iOS - https://github.com/EnableX/Sample-iOS -App-1to1-RTC Beispiel für eine Videoanruf-App unter Android - https://github.com/EnableX/Beispiel-Android-App-1to1-RTC

0
jay

Für iOS fügen Sie dies einfach zu Ihrer CocoaPods-Poddatei hinzu

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

Prüfen Sie dies für welche Versionen verfügbar sind. Die Revision 6802.X bezieht sich auf this von der tatsächlichen WebRTC-Codebasis.

Android wird bald in Maven Central hinzugefügt. Ich werde dies bearbeiten, wenn dies passiert.

Wenn Sie WebRTC manuell erstellen möchten, besuchen Sie github.com/pristineio/webrtc-build-scripts. Dort finden Sie auch eine schrittweise Anleitung für beide Plattformen

0
thebehera

Um spät zu antworten .... Aber ich habe gerade ein Framework für das einfache Hinzufügen von WebRTC in iOS Project erstellt. __ Sie müssen das WebRTC-Framework nicht aus der Bibliothek erstellen zusammen mit einem Wrapper zum einfachen Hinzufügen von webRTC zu Ihrer App . https://github.com/Ankit-Aggarwal/SwiftyWebRTC

0
Ankit

Im Moment haben Sie zwei Möglichkeiten:

  • Entweder bauen Sie libWebRTC für Ihr Gerät. Sie müssen wissen, wie Sie mit Android NDK und nativem C-Code unter iOS arbeiten. Es ist nicht trivial, aber es ist durchaus machbar 
  • Verwenden Sie die Arbeit anderer, die dies für Sie getan haben. Z.B. AddLive (yip, ich arbeite dort) oder sogar OpenTok.
0
stoiczek