将 TURN 服务器添加到 android webRtc native
Add TURN server to android webRtc native
我正在开发 WebRtc 本机 android 应用程序。我也在编译 io.pristine 库。只有当两个设备都连接到 wifi 时,我才能在两个设备之间建立通话。如果其中一台设备连接到蜂窝网络,则无法建立呼叫。我在那里阅读了任何可能的论坛,看起来我需要 TURN 服务器。我已经 运行 我自己的 TURN 服务器,但不知道如何强制应用程序使用此服务器。欢迎任何帮助。谢谢!!
创建PeerConnection时需要设置TURN服务器。
它将是这样的:
// Set ICE servers
List<PeerConnection.IceServer> iceServers = new ArrayList<>();
iceServers.add(new org.webrtc.PeerConnection.IceServer("stun:xxx.xxx.xxx.xxx"));
iceServers.add(new org.webrtc.PeerConnection.IceServer("turn:xxx.xxx.xxx.xxx:3478", "username", "credential"));
// Create peer connection
final PeerConnectionFactory.Options options = new PeerConnectionFactory.Options();
PeerConnectionFactory factory = new PeerConnectionFactory(new PeerConnectionFactory.Options());
MediaConstraints constraints = new MediaConstraints();
PeerConnection peerConnection = factory.createPeerConnection(iceServers, constraints, new YourPeerConnectionObserver());
我没有运行这个代码,但你应该明白了。
WebRTC 弃用旧 API 创建 ICE 服务器。 ()
要创建 ICE 服务器,您需要使用 IceServer 构建器模式。
PeerConnection.IceServer stun = PeerConnection.IceServer.builder("stun:stun.l.google.com:19302").createIceServer();
PeerConnection.IceServer turn = PeerConnection.IceServer.builder("turn:numb.viagenie.ca").setUsername("webrtc@live.com").setPassword("muazkh").createIceServer();
我正在开发 WebRtc 本机 android 应用程序。我也在编译 io.pristine 库。只有当两个设备都连接到 wifi 时,我才能在两个设备之间建立通话。如果其中一台设备连接到蜂窝网络,则无法建立呼叫。我在那里阅读了任何可能的论坛,看起来我需要 TURN 服务器。我已经 运行 我自己的 TURN 服务器,但不知道如何强制应用程序使用此服务器。欢迎任何帮助。谢谢!!
创建PeerConnection时需要设置TURN服务器。
它将是这样的:
// Set ICE servers
List<PeerConnection.IceServer> iceServers = new ArrayList<>();
iceServers.add(new org.webrtc.PeerConnection.IceServer("stun:xxx.xxx.xxx.xxx"));
iceServers.add(new org.webrtc.PeerConnection.IceServer("turn:xxx.xxx.xxx.xxx:3478", "username", "credential"));
// Create peer connection
final PeerConnectionFactory.Options options = new PeerConnectionFactory.Options();
PeerConnectionFactory factory = new PeerConnectionFactory(new PeerConnectionFactory.Options());
MediaConstraints constraints = new MediaConstraints();
PeerConnection peerConnection = factory.createPeerConnection(iceServers, constraints, new YourPeerConnectionObserver());
我没有运行这个代码,但你应该明白了。
WebRTC 弃用旧 API 创建 ICE 服务器。 (
要创建 ICE 服务器,您需要使用 IceServer 构建器模式。
PeerConnection.IceServer stun = PeerConnection.IceServer.builder("stun:stun.l.google.com:19302").createIceServer();
PeerConnection.IceServer turn = PeerConnection.IceServer.builder("turn:numb.viagenie.ca").setUsername("webrtc@live.com").setPassword("muazkh").createIceServer();