webrtc实现p2p点对点文字聊天音视频通话大文件传输示例代码
代码语言:html
所属分类:其他
代码描述:webrtc实现p2p点对点文字聊天音视频通话大文件传输示例代码,通过分享链接或者扫码二维码就能将2人建立p2p的专属通道,可进行音视频聊天、文字聊天、视频通话、大文件传输。
代码标签: webrtc p2p 点对点 文字 聊天 音视频 通话 大文件 传输 示例 代码
下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>WebRTC 多功能通信室</title>
<!-- Scaledrone 信令服务 -->
<script type='text/javascript' src='https://cdn.scaledrone.com/scaledrone.min.js'></script>
<script type="text/javascript" src="//repo.bfw.wiki/bfwrepo/js/qrcode.js"></script>
<style>
:root {
--primary-color: #2962ff;
--secondary-color: #5f6b7c;
--background-color: #0b1020;
--surface-color: #11162a;
--text-color: #e9edf5;
--muted-color: #9aa3b2;
--border-color: rgba(255,255,255,0.08);
--success-color: #22c55e;
--error-color: #f43f5e;
--info-color: #38bdf8;
--shadow-1: 0 10px 30px rgba(0,0,0,0.35);
--radius: 14px;
}
* { box-sizing: border-box; }
html, body { height: 100%; }
body {
margin: 0;
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "PingFang SC", "Microsoft Yahei", sans-serif;
background: radial-gradient(1200px 700px at 30% 10%, #1b244a 0%, #0b1020 60%);
color: var(--text-color);
display: flex;
height: 100vh;
overflow: hidden;
}
.app-container {
display: flex;
flex-direction: row;
width: 100%;
height: 100%;
gap: 16px;
padding: 16px;
}
/* 视频区域 */
.video-area {
flex-grow: 1;
display: flex;
flex-direction: column;
justify-content: center;
align-items: stretch;
padding: 16px;
background: linear-gradient(180deg, rgba(255,255,255,0.02), rgba(255,255,255,0.01));
border: 1px solid var(--border-color);
border-radius: var(--radius);
box-shadow: var(--shadow-1);
position: relative;
overflow: hidden;
}
.video-area::before {
content: "";
position: absolute;
inset: -20%;
background: radial-gradient(600px 300px at 85% 85%, rgba(41,98,255,0.12), transparent 60%),
radial-gradient(600px 300px at 20% 20%, rgba(56,189,248,0.12), transparent 60%);
pointer-events: none;
}
.video-header {
display: flex;
align-items: center;
justify-content: space-between;
padding: 8px 4px 14px;
color: var(--muted-color);
font-size: 13px;
}
.video-container {
position: relative;
min-height: 280px;
}
video {
border-radius: 12px;
background-color: #000;
box-shadow: 0 10px 28px rgba(0,0,0,0.35);
width: 100%;
height: 100%;
object-fit: cover;
border: 1px solid rgba(255,255,255,0.06);
}
#localVideo {
position: absolute;
right:0;
top:0;
width:168px;
height: 100px;
outline: 1px solid rgba(41,98,255,0.35); }
#remoteVideo { outline: 1px solid rgba(154,163,178,0.25); }
/* 控制条 */
.controls {
position: absolute;
bottom: 14px;
left: 50%;
transform: translateX(-50%);
background: rgba(17, 22, 42, 0.6);
backdrop-filter: blur(10px);
padding: 10px 14px;
border-radius: 50px;
display: flex;
gap: 12px;
z-index: 10;
border: 1px solid rgba(255,255,255,0.08);
box-shadow: 0 8px 24px rgba(0,0,0,0.3);
}
.control-btn {
background: linear-gradient(180deg, rgba(255,255,255,0.08), rgba(255,255,255,0.02));
border: 1px solid rgba(255,255,255,0.12);
color: #fff;
font-size: 20px;
cursor: pointer;
padding: 10px;
border-radius: 50%;
transition: all 0.2s ease;
width: 44px; height: 44px; display: grid; place-items:center;
}
.control-btn:hover {
transform: translateY(-1px);
backgro.........完整代码请登录后点击上方下载按钮下载查看
















网友评论0