Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/clojure/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
独立移动应用程序上的WebRTC_Webrtc - Fatal编程技术网

独立移动应用程序上的WebRTC

独立移动应用程序上的WebRTC,webrtc,Webrtc,我知道WebRTC是为浏览器设计的,但是可以直接在移动应用程序上使用WebRTC库吗 谢谢 还没有,它只在Firefox的nightly和Chrome两个桌面版本中受支持。看 编辑:对不起,我以为你要的是移动浏览器。对于本机应用程序,这似乎是一个明确的否定:( 但似乎有一些移动浏览器支持我不知道“直接在移动应用程序上使用WebRTC库”是什么意思。 但有些事我已经做了。 使用JNI+NDK构建WebRTC NS/AEC/AECM/AGC/VAD模块,并在android上使用共享库。 或者您可以为

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


谢谢

还没有,它只在Firefox的nightly和Chrome两个桌面版本中受支持。看

编辑:对不起,我以为你要的是移动浏览器。对于本机应用程序,这似乎是一个明确的否定:(


但似乎有一些移动浏览器支持

我不知道“直接在移动应用程序上使用WebRTC库”是什么意思。 但有些事我已经做了。 使用JNI+NDK构建WebRTC NS/AEC/AECM/AGC/VAD模块,并在android上使用共享库。
或者您可以为android和iOS构建整个WebRTC VoE和ViE。

可以在移动应用程序中使用第三方API,如OpenTok(仅限iOS,截至2014年1月android测试版)和Addlive(iOS和android)

我们(免责声明:我在那里工作)已经构建了一组库,用于在iOS、Android、.NET等平台上实现@Frozed Mountain.完整的WebRTC。

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

如果您查看图像,您可以看到底部的红色矩形。这是WebRTC的本地C++库。WEBRTC类和WEBRTC对象的音频和视频也可以被发现为WebRTC项目的一部分。您需要添加的是API,以便您的应用程序能够建立呼叫(VoIP接口)。,一个信令堆栈和NAT遍历实用程序(核心协议-对于SIP,这可能类似于PJSIP和PJNATH),以及一个从信令堆栈到webrtc的适配器,告诉它何时打开视频和音频通道以及何时停止这些通道等


另请参见:

您可能希望查看的一个资源是本文:


我遇到的一个问题是理解所有的
WebRTC/Libjingle
库文件。目前,我可以运行示例应用程序,但我希望有一个“Hello World”示例。

现在您有两个选项:

  • 或者你将为你的设备构建libWebRTC。你需要知道如何在iOS上使用Android NDK和本机C代码。这不是小事,但完全可行
  • 使用为你做这件事的其他人的作品。例如,已经提到的AddLive(yip,我在那里工作)甚至OpenTok
从2014年3月起,这确实是一种方法:

如果您有兴趣使用本机客户端,则可以使用。如果您不介意使用移动浏览器,则当前支持以下浏览器:

  • Google Chrome 28(自29日起默认启用)
  • Mozilla Firefox 24
  • 歌剧手机12

截至5月14日,android项目使用了
WebRTC
,运行良好

我将整个android项目翻译成了iOS版的
Objective-C
,并让WebRTC也在iOS版上运行,但我在iPhone4和4s上遇到了问题。只在iPhone5和5s上运行

我认为问题在于性能。当我使用webrtc库进行视频通话时,iPhone 5占用了大约140%的CPU,我想这需要大量资源,iPhone 4s无法处理


编辑

在与视频连接(10秒后总是断开连接)斗争之后,我终于让WebRTC在iPhone 4s上工作,您所要做的就是在创建本地视频源捕获对象时设置正确的约束:

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

请注意,这发送了一个非常小的视频,但它是有效的!

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

还有一些,但这些是主要的


我们都有各自的优点和缺点。如果您有兴趣发送电子邮件,我可以谈谈sinch。

对于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,其中还包括两种平台的分步指南

从今天起,WebRTC正式在Android/iOS上本机提供

虽然在引擎盖下,它只是一个围绕C++ API的java/Objo C包装器。 您仍然可以使用它们,而无需使用JavaScript

Java包装器API:

目标C包装器API:

SightCall有一个与WebRTC兼容的Android SDK,允许Android本机应用程序在浏览器中连接到WebRTC。
您可以获得SDK

我的团队在这方面做了很多工作。如果您正在寻找Cordova插件,我们一直在玩一个名为的开源项目。我们在iOS上运行它,但它有点不可靠,视频窗口的纵横比是固定的,在大多数设备上看起来不自然,但它确实有效

我们还使用libjingle创建了一个Android演示。libjingle现在是WebRTC项目和代码库的一部分。链接现在可能已经过时,但指向当时对我们有用的说明。

回答得太晚了。。 但我只是为在iOS项目中轻松添加WebRTC创建了一个框架。 您不需要从库中构建WebRTC框架。 此框架将为您提供内置框架以及包装器,以便将webRTC轻松添加到您的应用程序中。

如果你的目标是android>=L,你可以通过在你的应用程序中嵌入一个支持webRTC的(chrome)webview,非常轻松地构建一个原生webRTC应用程序


请参见

谢谢您的回答。但是WebRTC pro
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