WebRTC在一个独立的移动应用程序上

Tar*_*ras 23 webrtc

我知道这WebRTC是专为浏览器设计的,但是可以直接在移动应用程序上使用WebRTC库吗?

谢谢!

Moi*_*edo 22

从5月14日开始,是一个使用WebRTC得很好的android项目.

我将整个Android项目翻译Objective-C为iOS并让WebRTC在iOS上运行,但我在iPhone 4和4s上遇到了麻烦.只适用于iPhone 5和5s.

我认为问题在于性能.当我使用webrtc库进行视频通话时,它占用了iPhone 5上大约140%的CPU,我猜这是很多资源而且iPhone 4s无法处理它.


编辑

在与视频连接挣扎之后(10秒后总是断开连接)我终于让WebRTC在iPhone 4上运行了,你所要做的就是在创建本地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]];
Run Code Online (Sandbox Code Playgroud)

请注意,这会发送一个非常小的视频,但它的工作原理!


Ari*_*rin 12

您可以将WebRTC与本机应用程序一起使用,但这需要一些工作. WebRTC Native应用程序解剖

如果你看图像,你可以在底部看到一个红色矩形.这是WebRTC的原生C++库.用于音频和视频的WebRTC类和WebRTC对象也可以作为WebRTC项目的一部分找到.您需要添加的API是您的应用程序能够设置调用的API(VOIP接口),信令堆栈和NAT遍历实用程序(核心协议 - 对于SIP,这可能类似于PJSIP和PJNATH)和从信号堆栈到webrtc的适配器,告诉它何时打开视频和音频通道以及何时停止它们等.

另见:http://bloggeek.me/porting-webrtc-mobile/


jve*_*ema 6

我们(免责声明:我在那里工作)已经建立了一套库,用于在IceLink中执行@ Frozen Mountain .适用于iOS,Android,.NET等的完整WebRTC实现


Sch*_*eir 6

截至今天,WebRTC 正式在 Android/iOS 上原生可用。

https://webrtc.github.io/webrtc-org/native-code/android/

https://webrtc.github.io/webrtc-org/native-code/ios/

尽管在幕后,它只是围绕 C++ API 的 Java/Objective C 包装器。

您仍然可以在不通过 JavaScript 的情况下使用它们。

Java 包装器 API:https : //code.google.com/p/webrtc/source/browse/trunk/talk/#talk%2Fapp%2Fwebrtc%2Fjava%2Fsrc%2Forg%2Fwebrtc

目标 C 包装器 API:https : //code.google.com/p/webrtc/source/browse/trunk/talk/#talk%2Fapp%2Fwebrtc%2Fobjc%2Fpublic%253Fstate%253Dclosed


小智 5

让我总结一下答案,在Android上,Firefox实际上有WebRTC支持我相信,另一方面有很多公司提供完整的堆栈来构建WebRTC产品.如果你只是在WebRTC之后并构建其他东西(寻址等)你自己,你可能需要自己构建几个包装器.(免责声明我为sinch工作)

[http://sinch.com]
[http://twilio.com]
[http://tokbox.com]
[http://nexmo.com]
[http://plivo.com] (I think)
Run Code Online (Sandbox Code Playgroud)

还有更多,但这些是主要的

我们都有不同的利弊.如果你有兴趣发送电子邮件,我可以谈论sinch.