PeerJS demo
时间: 2023-07-23 18:58:07 浏览: 109
以下是一个简单的PeerJS的示例代码,用于在网页中进行P2P视频通信:
```html
<!DOCTYPE html>
<html>
<head>
<title>PeerJS Video Chat Demo</title>
</head>
<body>
<video id="localVideo" autoplay></video>
<video id="remoteVideo" autoplay></video>
<script src="https://cdn.peerjs.com/0.6.1/peer.js"></script>
<script>
var peer = new Peer(); // 使用默认的随机ID
// 当连接建立时
peer.on('open', function(id) {
console.log('My peer ID is: ' + id);
// 将本地视频流显示在video标签中
navigator.mediaDevices.getUserMedia({ video: true, audio: true })
.then(function(stream) {
var localVideo = document.getElementById('localVideo');
localVideo.srcObject = stream;
})
.catch(function(error) {
console.error('Error accessing media devices: ', error);
});
});
// 当有其他用户连接时
peer.on('connection', function(connection) {
console.log('New connection received');
// 接受连接请求
connection.on('open', function() {
console.log('Connection opened');
// 将远程视频流显示在video标签中
connection.on('stream', function(remoteStream) {
var remoteVideo = document.getElementById('remoteVideo');
remoteVideo.srcObject = remoteStream;
});
// 发送本地视频流给对方
navigator.mediaDevices.getUserMedia({ video: true, audio: true })
.then(function(stream) {
connection.send(stream);
})
.catch(function(error) {
console.error('Error accessing media devices: ', error);
});
});
});
</script>
</body>
</html>
```
这段代码创建了一个PeerJS对象,当连接建立时,获取本地视频流并在一个video标签中播放。当有其他用户连接时,接受连接请求并将远程视频流显示在另一个video标签中,同时将本地视频流发送给对方。
你可以在两个不同的浏览器窗口或设备上打开这个网页,它们之间会建立P2P视频通信。注意,由于涉及到获取本地摄像头和麦克风权限,这段代码需要在HTTPS环境下运行,或者在localhost上运行。
阅读全文