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: #007bff;
      --secondary-color: #6c757d;
      --background-color: #f8f9fa;
      --surface-color: #ffffff;
      --text-color: #212529;
      --border-color: #dee2e6;
      --success-color: #28a745;
      --error-color: #dc3545;
      --info-color: #17a2b8;
    }

    body {
      margin: 0;
      font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
      background-color: var(--background-color);
      color: var(--text-color);
      display: flex;
      height: 100vh;
      overflow: hidden;
    }

    .app-container {
      display: flex;
      flex-direction: row;
      width: 100%;
      height: 100%;
    }

    /* 视频区域 */
    .video-area {
      flex-grow: 1;
      display: flex;
      flex-direction: column;
      justify-content: center;
      align-items: center;
      padding: 20px;
      background-color: #000;
      position: relative;
    }

    .video-container {
      width: 100%;
      height: 100%;
      display: flex;
      justify-content: center;
      align-items: center;
      gap: 20px;
      position: relative;
    }

    video {
      border-radius: 12px;
      background-color: #2c2c2c;
      box-shadow: 0 10px 20px rgba(0,0,0,0.2);
      max-width: 100%;
      max-height: 100%;
      object-fit: cover; /* 保持视频比例并填充 */
    }

    #localVideo {
      border: 2px solid var(--primary-color);
    }
    
    #remoteVideo {
       border: 2px solid var(--secondary-color);
    }

    /* 控制条 */
    .controls {
      position: absolute;
      bottom: 20px;
      left: 50%;
      transform: translateX(-50%);
      background-color: rgba(255, 255, 255, 0.1);
      backdrop-filter: blur(10px);
      padding: 10px 20px;
      border-radius: 50px;
      display: flex;
      gap: 15px;
      z-index: 10;
    }

    .control-btn {
      background: none;
      border: none;
      color: white;
      font-size: 24px;
      cursor: pointer;
      padding: 10px;
      border-radius: 50%;
      transition: background-color 0.2s;
    }
    .control-btn:hover {
      background-color: rgba(255, 255, 255, 0.2);
    }
    .control-btn.active {
       color: var(--primary-color);
    }
     .control-btn.danger {
       color: var(--error-color);
    }

    /* 侧边栏:聊天、文件、分享 */
    .sidebar {
      width: 350px;
      flex-shrink: 0;
      background-color: var(--surface-color);
      border-left: 1px solid var(--border-color);
      display: flex;
      flex-direction: column;
      height: 100%;
    }

    .tab-container {
        display: flex;
        border-bottom: 1px solid var(--border-color);
    }
    .tab-btn {
        flex: 1;
        padding: 15px;
        background: none;
        border: none;
        border-bottom: 3px solid transparent;
        font-size: 16px;
        cursor: pointer;
 .........完整代码请登录后点击上方下载按钮下载查看

网友评论0