Peer.js 是一个浏览器端 Peer-to-Peer 库,能够容易地搭建 WebRTC 应用软件。在本文中,我们将要应用 Peer.js 来创建一个简单的视频聊天应用程序流程。
流程 1:设定自然环境
最先,我们应该在工程中引进 Peer.js 库。我们可以用 npm 或是 CDN 来引进它。在这儿,我们将要应用 CDN。
<script src="<https://cdn.jsdelivr.net/npm/peerjs@1.3.2/dist/peerjs.min.js>"></script>
流程 2:建立 Peer 案例
Peer.js 容许我们可以通过建立 Peer 案例来连接到另一个 Peer。我们可以用 Peer 案例来上传和获取数据。在咱们的应用程序中,我们将要建立2个 Peer 案例 - 一个用以上传视频流,另一个用以接受视频采集。
const peer = new Peer(); // 建立 Peer 案例
流程 3:获得当地媒体流
在我们能上传视频流以前,我们应该获得当地媒体流。我们可以用 navigator.mediaDevices.getUserMedia() 方式来获得当地媒体流。
navigator.mediaDevices.getUserMedia({ video: true, audio: true }) // 获得当地媒体流
.then(stream => {
// 将当地媒体流导入到 video 原素中
const video = document.getElementById('local-video');
video.srcObject = stream;
// 将当地媒体流发给远程控制 Peer
const call = peer.call('remote-peer-id', stream);
call.on('stream', remoteStream => {
// 将远程控制媒体流导入到 video 原素中
const remoteVideo = document.getElementById('remote-video');
remoteVideo.srcObject = remoteStream;
});
})
.catch(error => {
console.error('Error accessing media devices.', error);
});
在后面的编码中,我们先获得当地媒体流,然后将导入到一个 video 原素中。下面,使用 Peer.call() 方式将当地媒体流发给远程控制 Peer。当远程控制 Peer 接受到媒体流时,大家可将其加上到另一个 video 原素中。
流程 4:接受远程控制媒体流
还需要编写代码来接受远程控制媒体流。我们可以用 Peer.on() 方式来监视 incoming-call 事情。在我们接到 incoming-call 情况时,我们可以用 call.answer() 方式来接受远程控制媒体流。
peer.on('call', call => {
navigator.mediaDevices.getUserMedia({ video: true, audio: true }) // 获得当地媒体流
.then(stream => {
// 将当地媒体流导入到 video 原素中
const video = document.getElementById('local-video');
video.srcObject = stream;
// 接受远程控制媒体流
call.answer(stream);
call.on('stream', remoteStream => {
// 将远程控制媒体流导入到 video 原素中
const remoteVideo = document.getElementById('remote-video');
remoteVideo.srcObject = remoteStream;
});
})
.catch(error => {
console.error('Error accessing media devices.', error);
});
});
在后面的编码中,我们先应用 Peer.on() 方式监视 incoming-call 事情。在我们接到 incoming-call 情况时,大家获得当地媒体流,然后用 call.answer() 方式来接受远程控制媒体流。
流程 5:联接到另一个 Peer
最终,我们应该联接到另一个 Peer。我们可以用 Peer.connect() 方式来连接到另一个 Peer。在咱们的应用程序中,我们将要使用一个文本框来键入远程控制 Peer 的 ID。
<input type="text" id="remote-peer-id" />
<button id="connect-button">联接</button>
const connectButton = document.getElementById('connect-button');
connectButton.addEventListener('click', () => {
const remotePeerId = document.getElementById('remote-peer-id').value;
const conn = peer.connect(remotePeerId);
conn.on('open', () => {
console.log('Connected to remote peer.');
});
});
在后面的编码中,我们先获得文本框中搜索的远程控制 Peer 的 ID,然后用 Peer.connect() 方式传送到远程控制 Peer。当联接创建时,大家能收到一个 open 事情。
结果
Peer.js 能够轻松地搭建 WebRTC 应用软件。在本文中,己经学了怎么使用 Peer.js 创建一个简单的视频聊天应用程序流程。如果你想进一步了解 Peer.js 和 WebRTC,请参阅下列网络资源:
- Peer.js 官方文档
- WebRTC 官方文档
- WebRTC 实例教程
- WebRTC 新手入门手册
我的分享对大家有所帮助!
代办报建
本公司承接江浙沪报建代办施工许可证。
联系人:张经理,18321657689(微信同号)。
14条评论
安福相册 https://www.z11.cn
楼上的真不讲道理!http://test.cqyiyou.net/test/
论坛的帖子越来越有深度了!http://kn2.ouzhou5.icu
感觉不错!http://3e8p07.onejhac.com
看在楼主的面子上,认真回帖!http://iao9.pnd2.com
楼主看起来很有学问!http://8hhc.xaqrpj.com.cn
很给力!http://2ln.haoliji.cn
勤奋灌水,天天向上!http://9zgx.xxfqjyh.com
看了这么多帖子,第一次看到这么有深度了!http://www.539932.com/
这篇文章真是让人受益匪浅!http://qm2gjx.xiguitongzhibo.com
终于看完了,很不错!http://www.guangcexing.net/voddetail/qxNCJvJZxn.html
帖子好乱!http://www.guangcexing.net/tv/ScytuCdRpPK.html
今天怎么了,什么人都出来了!https://www.clashis.com/
顶!顶!顶!https://www.sougoui.com/
发表评论