webrtc实现局域网网页视频聊天

  由于项目有视频聊天的需求,在网上了解到谷歌开源的webrtc可以实现p2p的视频通信,参考了很多网上的资料,最终还是硬着头皮去webrtc官网,找到基于webrtc官网的demo,demo本身是基于本机的,源代码是模拟了两个pc来通信,要实现局域网两台设备建立webrtc连接,前提是双方拿到对方的sdp和icecandidate,彼此交换对方的这两个信息,就可以视频聊天了。webrtc使用了大量的异步函数,所以在需要获取同步等待结果返回的时候,需要在调用webrtc异步函数的时候,声明自己的方法也为异步的,使用关键字async,然后在需要等待webrtc异步函数返回的地方才能使用await.比如一下,被叫方接收到对方的sdp后,需要返回自己的sdp给对方,但是webrtc的createAnswer本身是异步的,不声明async就无法使用await来获取被叫的sdp,也就是answer,

    //接收对方视频
	pc1.addEventListener('track', gotRemoteStream);

 

//sdp信息
 sdp: 'v=0\r\n' +
      'o=- 8052014341169179559 2 IN IP4 127.0.0.1\r\n' +
      's=-\r\n' +
      't=0 0\r\n' +
      'a=group:BUNDLE 0 1\r\n' +
      'a=msid-semantic: WMS 1eb10fb2-e3c8-4e4e-9870-1104ec8c18c5\r\n' +
      'm=video 9 UDP/TLS/RTP/SAVPF 96 97 98 99 100 101 127 125 104\r\n' +
      'c=IN IP4 0.0.0.0\r\n' +
      'a=rtcp:9 IN IP4 0.0.0.0\r\n' +
      'a=ice-ufrag:j8uE\r\n' +
      'a=ice-pwd:rAhd4UW0wBS+D82R2gXsBAi1\r\n' +
      'a=ice-options:trickle\r\n' +
      'a=fingerprint:sha-256 15:BC:51:0E:B8:68:D4:78:61:BB:C1:34:34:D2:83:CB:0F:C3:BF:81:DC:BE:2F:00:28:39:DA:D5:BA:65:9
1:68\r\n' +
      'a=setup:actpass\r\n' +
      'a=mid:0\r\n' +
      'a=extmap:2 urn:ietf:params:rtp-hdrext:toffset\r\n' +
      'a=extmap:3 http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time\r\n' +
      'a=extmap:4 urn:3gpp:video-orientation\r\n&
  • 1
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
Android Studio开发WebRTC实现局域网视频可以通过以下步骤实现: 1. 配置WebRTC库:在Android Studio中创建一个新的Android项目,然后将WebRTC库添加到项目中。您可以使用Google提供的WebRTC库,或者使用第三方库,如janus-gateway、OpenWebRTC等。 2. 创建局域网连接:在应用程序的代码中,您需要首先创建一个局域网连接。可以使用WiFi Direct、蓝牙或者其他的网络通信技术来实现局域网连接。 3. 建立音视频通信:一旦局域网连接建立完毕,您可以使用WebRTC库提供的API来建立音视频通信。首先,您需要初始化WebRTC库并创建一个本地音视频流。然后,您需要创建一个远程音视频流,并将其与本地音视频流进行连接。 4. 建立呼叫信令通道:要建立音视频通信,您需要建立一个呼叫信令通道,用于传递通信的描述符、ICE候选者等信息。您可以使用WebRTC库提供的信令通道API,也可以通过自己的服务器或者其他通信方式来实现呼叫信令通道。 5. 进行音视频传输:一旦呼叫信令通道建立成功,您可以使用WebRTC库提供的API来进行音视频传输。您需要将本地音视频流发送给远程端,并接收远程音视频流并进行播放。 通过以上步骤,您就可以在Android Studio中开发出实现局域网视频通信的应用程序。但需要注意的是,由于该应用程序是在局域网中运行而不涉及外网,所以在局域网内的设备之间才能进行音视频通信。
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值