Articles of webrtc

蜂窝数据上的WebRTC连接失败

我正在尝试使用WebRTC使用这些项目创建一个Android应用程序: AndroidRTC 哪个使用此存储库: io.prinstine.libjingle 当两个客户端通过wifi连接到网络时,此项目运行良好,但当其中一个客户端通过蜂窝数据连接时,它不起作用。 我试图find源代码,看看发现了什么,我find了这个静态类: public static class Options { // Keep in sync with webrtc/base/network.h! static final int ADAPTER_TYPE_UNKNOWN = 0; static final int ADAPTER_TYPE_ETHERNET = 1 << 0; static final int ADAPTER_TYPE_WIFI = 1 << 1; static final int ADAPTER_TYPE_CELLULAR = 1 << 2; static final int ADAPTER_TYPE_VPN = 1 << 3; […]

使用多个PeerConnection的WebRTC会议质量

使用Peer to Peer呼叫非常简单,并在用户之间提供清晰的音频。 在一些解决方法中,我们使用多个PeerConnections创建了WebRTC源会议。 也许这不是最好的方式,但它是可能的,而且对于小团体来说足够了,比如3-4个连接。 在我们的例子中,每个连接都没问题,但是对于某些特定设备,我们的音频质量非常糟糕。 对于此示例,Nexus 6p和Nexus 5与Android 6.0。 也许这个非常具体的问题,但它只适用于这些设备和Android 6.0。 所以在将一些设备更新到Android 7.0后解决问题,但它仍然有线。 我们检查了连接统计信息,并且每件事都看起 网络没有丢失,没有特定的比特率,等等。只有一个区别,我们捕获的是它的抖动缓冲区值。 在其他设备上,我们有几个PeerConnection,我们收到大约120个预期和130个实际。 与此值的差异在2 – 5左右。但是在设备有问题的情况下,预期的抖动为20且实际为240.在所有方面使用Opus编解码器,并从SDP设置采样比特率。 我还是不知道主要原因,还有计算Jitter Buffer,这只是猜测。 是的,也许还有其他方法可以召开会议? 或者使用多个PeerConnection的奇怪行为是什么。 因为会议质量还不好,我们找不到很长时间的解决方案。 而且,解决上述问题的正确方法是什么? 我认为不仅在这种情况下我遇到了会议质量问题或设备特定问题。 谢谢。

android中的PeerConnection实例总是为空?

我必须在android应用程序中实现WebRTC,因为我使用的是libjingle库,ver-11139。 在这里我总是得到pc(PeerConnection class instance)总是为null。 我检查过的值 factory(PeerConnectionFactory) iceServers(LinkedList mediaConstraints Peer.this(PCObserver interface)) 但他们都不是空的。 那么为什么我总是得到结果null。 我在这里做错了吗??? pc = factory.createPeerConnection(iceServers, mediaConstraints, Peer.this); 编辑: public CallManager(TagoveApplication context, CustomSocket server, CallType callType) { this.server = server; this.context = context; initializeFactoryFieldTrials(); //initialize peer conn factory field trials PeerConnectionFactory.initializeAndroidGlobals(context, true, true, true); //PeerConnectionFactory.initializeAndroidGlobals(context, true, true, true, VideoRendererGui.getEGLContext()); factory = new PeerConnectionFactory(); iceServers.add(new PeerConnection.IceServer(“turn:xxx.xxx.xxx.xxx:xxxx?transport=udp”, […]

编译Web RTC时出错

我正在开发Web RTC中的video聊天应用程序。 我正在阅读Web RTC的文档 。 我已按照获取代码中提到的所有步骤进行操作 export GYP_DEFINES =“OS = android” fetch –nohooks webrtc_android gclient同步 我在我的根目录中有web rtc的所有src代码。 根据文档说我们必须编译源代码以在我们的应用程序中使用。 这里我使用以下命令编译源时出错。 $ gn gen out/Default –args=’target_os=”android” target_cpu=”arm”‘ ERROR at //build/config/android/internal_rules.gni:636:3: Can’t load input file. import(“//third_party/ijar/ijar.gni”) ^———————————– Unable to load: /Users/c86/webrtc-checkout/src/third_party/ijar/ijar.gni I also checked in the secondary tree for: /Users/c86/webrtc-checkout/src/build/secondary/third_party/ijar/ijar.gni See //build/config/android/rules.gni:8:1: whence it was imported. import(“//build/config/android/internal_rules.gni”) ^————————————————- […]

WebRTC切换回前置摄像头,其中gum不在Android / Chrome上流式传输

在三星Galaxy S2 Android 6.0.1 + Chrome v55上 ,当我在页面加载时获取用户媒体时,获取的video轨道显示为live 。 当我从我的相机中选择后置摄像头时,我再次触发我的gUM有限制使用那个精确面向后面的cameraId ,video轨道ended ,我有一个黑色矩形而不是一个流。 var constraints = { video: { deviceId: { exact: defaultVideoDeviceId } }, audio: true }; gUM包装 function gUM(constraints, callback) { console.debug(“WebRTC constraints”, constraints); // Stopping streaming before starting the new one if (window.streams.local) { window.streams.local.getTracks().forEach(function(track) { track.stop(); }); } navigator.mediaDevices.getUserMedia(constraints) .then(stream => { […]

DataChannel.state()始终返回CONNECTING webRTC Android

我有一个Android应用程序作为运行在Node.js服务器上的WebRTC服务器的客户端运行。 应用程序的当前状态是我可以进行video通话,但无法在DataChannel上发送消息。 这是我的Android应用程序的完整代码。 Home.java public class Home extends Activity { public List iceServers; private GLSurfaceView videoView; public static SocketIO socket; ArrayList userIDs = new ArrayList(); private static final String FIELD_TRIAL_VP9 = “WebRTC-SupportVP9/Enabled/”; String RoomId = “”; String sreverURL = “http://xx.xx.xx.xx:xxxx/”; private EditText roomid; private VideoRenderer.Callbacks remote_view; private VideoRenderer.Callbacks local_view; protected PeerConnectionFactory factory; PeerConnectionFactory.Options options = […]

应用程序流程为Android点对点连接?

我正在webrtc上的android中创建一个应用程序,用于video通话和聊天的点对点连接。 我已经从WEBRTC网站下载了演示代码并成功运行了该代码(只能看到video,没有语音交换),我在所有怀疑的地方打印了所有响应,发现在对话框中输入房间URL后返回响应有很多细节,比如媒体// iceserver // stun //转// pcconfig等。这里我很困惑,就像我需要从移动设备发送到服务器来拨打电话以及我应该对其他同行做出什么回应从服务器进行连接。 在android我使用libjingle_peerconnection.jar。 我也读过关于人行横道和英特尔xdk但我认为它在phonegap上,我需要它完全在android上。 我想深入了解网络,但没有find正确的道路。 在APP调用和浏览器之间建立连接是否需要额外的东西? 您也可以向我推荐有用的主题。

如何在Native android应用程序中使用WebRTC + Pubnub Api进行video聊天客户端

我正在开发一个具有p2pvideo聊天function的Android应用程序,就像Skype一样。 在研究谷歌时,我有一些图书馆,但没有得到任何东西为Android原生。 我决定使用PubNub api与WebRTC一起使用。 如何使用库创建video聊天原生android客户端? 我find了一个本机video聊天客户端代码, https://github.com/pchab/AndroidRTC 这个演示应用程序需要IP:PORT的URL,所以我对服务器的方式有一个疑惑? 谁能帮我?

AppRTC服务器返回html而不是Json

我正在将WebRTC本地实现到Android中。 我能够编译和运行这里描述的代码http://www.webrtc.org/native-code/android ,但我遇到了一个问题,apprtc.appspot.com显然没有按照假设返回一个通道令牌: 01-05 20:01:51.230 15488-15488/org.appspot.apprtc E/AppRTCDemoActivity﹕ Fatal error: Missing channelToken in HTML: WebRTC Reference App window.mod_pagespeed_start = Number(new Date()); Please click here if you are not redirected within a few seconds. Waiting for someone to join this room: https://apprtc.appspot.com/room/42272483?r=fh var params={errorMessages:[],isLoopback:false,roomId:’42272483′,roomLink:’https://apprtc.appspot.com/room/42272483?r=fh’,mediaConstraints:{“audio”:true,”video”:true},offerConstraints:{“optional”:[],”mandatory”:{}},peerConnectionConfig:{“iceServers”:[]},peerConnectionConstraints:{“optional”:[{“googImprovedWifiBwe”:true}]},turnRequestUrl:’https://computeengineondemand.appspot.com/turn?username=280585048&key=4080218913′,turnTransports:”,audioSendBitrate:”,audioSendCodec:”,audioRecvBitrate:”,audioRecvCodec:”,isStereoscopic:”,opusMaxPbr:”,opusFec:”,opusStereo:”,videoSendBitrate:”,videoSendInitialBitrate:”,videoSendCodec:”,videoRecvBitrate:”,videoRecvCodec:”,wssUrl:’wss://apprtc-ws.webrtc.org:443/ws’,wssPostUrl:’https://apprtc-ws.webrtc.org:443′};initialize(); (function(i,s,o,g,r,a,m){i[‘GoogleAnalyticsObject’]=r;i[r]=i[r]||function(){(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.cr 在这里检查AppRTCClient.java的源代码时,请访问https://code.google.com/p/webrtc/source/browse/trunk/talk/examples/android/src/org/appspot/apprtc/AppRTCClient.java?r= 5847我在第234ff行发现了一个有趣的评论,这正是应用程序失败的function: // Fetches |url| and fishes the signaling parameters out […]

用于在iOS上读取实时摄像头流的getUserMedia()的替代方案?

我们正在使用QuaggaJS构建移动条形码扫描仪,直接从设备的相机流中读取条形码。 适用于桌面/ Android,但在iOS上根本不起作用。 从最初的研究中,我发现iOS根本不支持WebRTC / getUserMedia通过Safari或iOS Chrome(下面的相关链接),这是QuaggaJS用来读取相机流的。 我也看到过关于在iOS上捕获静态图像的问题,但提供的答案仅用于捕获静态图像,而不是用于实时读取流。 我的问题 – 有没有其他方法从iOS相机中获取流? 也许QuaggaJS以外的替代库不使用getUserMedia ? 我不是很精通Javascript,所以我不确定是否有可能的方法来访问getUserMedia以外的相机流。 这里的“不”是可以接受的答案; 我只是在寻找更有经验的人来提供指导。 附录/相关链接: 用于iOS Safari手机浏览器的navigator.getUserMedia替代API? https://www.quora.com/Why-is-navigator-getUserMedia-not-supported-in-Safari https://bloggeek.me/webrtc-apple-or-microsoft/ HTML5:getUserMedia iOS问题?