MediaBunny通过canvas来实现自定义视频播放器代码

代码语言:html

所属分类:多媒体

代码描述:MediaBunny通过canvas来实现自定义视频播放器代码,dom中不再出现video标签,对于防止视频被下载的用户可以选择这个播放器。

代码标签: MediaBunny canvas 自定义 视频 播放器 代码

下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开

<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width,initial-scale=1,viewport-fit=cover">
<title>MediaBunny · ESModule 视频播放器</title>
<link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.0/css/all.min.css" rel="stylesheet">
<style>
:root{
  --bg:#0f1221; --panel:#14182d; --panel2:#11162c; --text:#f3f6ff; --muted:#aab0d9;
  --border:#233055; --accent:#7c7bff; --accent2:#00d4ff; --danger:#ef4444; --radius:16px;
}
*{box-sizing:border-box}
html,body{height:100%}
body{
  margin:0; color:var(--text);
  font-family:ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"PingFang SC","Microsoft YaHei","Helvetica Neue",Arial,"Noto Sans CJK SC",sans-serif;
  background:
    radial-gradient(1000px 500px at 8% -10%, rgba(124,123,255,.18), transparent 60%),
    radial-gradient(800px 400px at 100% 0%, rgba(0,212,255,.16), transparent 50%),
    linear-gradient(180deg, #0c1022, #0a0f1e);
}
.wrapper{max-width:1200px; margin:0 auto; padding:18px}
.header{display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:16px}
.brand{display:flex; align-items:center; gap:10px; font-weight:900; font-size:18px; background:linear-gradient(135deg, rgba(124,123,255,.16), rgba(0,212,255,.14)); border:1px solid rgba(255,255,255,.12); padding:10px 12px; border-radius:12px; backdrop-filter: blur(6px)}
.brand .dot{width:10px; height:10px; border-radius:50%; background:linear-gradient(135deg,var(--accent),var(--accent2))}
.toolbar{display:flex; align-items:center; gap:8px; flex-wrap:wrap}
.tag{font-size:12px; color:#cfd5ff; border:1px solid rgba(255,255,255,.14); padding:6px 10px; border-radius:999px; background:rgba(255,255,255,.04); text-decoration:none}
.btn{appearance:none; border:1px solid var(--border); color:var(--text); background:linear-gradient(180deg,#1a2040,#121736); padding:10px 14px; border-radius:12px; cursor:pointer; font-weight:800}
.btn:hover{border-color:#2a2f5a; background:#151b39}
.btn.primary{background:linear-gradient(135deg,var(--accent),#9d98ff); border-color:#7d80ff; color:#0f1230}
.card{background:linear-gradient(180deg,var(--panel),var(--panel2)); border:1px solid var(--border); border-radius:var(--radius); box-shadow: 0 10px 40px rgba(0,0,0,.35); padding:14px}
.card h3{margin:0 0 10px; display:flex; align-items:center; gap:8px}
.help{color:var(--muted); font-size:12px}
.file-name{font-weight:900}
hr{border:0; height:1px; background:linear-gradient(90deg, transparent, #2a2f5a, transparent); margin:12px 0; display:none}
.alert{padding:10px 12px; border:1px solid #7c1d1d; border-radius:12px; background:#1a0f15; color:#ffd6d6; display:none}
.warn{padding:10px 12px; border:1px solid #66520b; border-radius:12px; background:#171307; color:#fde68a; display:none}

/* Player */
#player{ position:relative; display:none; border-radius:12px; overflow:hidden; border:1px solid var(--border); background:#0b0f24 }
#player canvas{ display:block; width:100%; height:auto; background:#000 }
#controls{
  position:absolute; inset:auto 0 0 0; padding:10px 12px;
  background: linear-gradient(180deg, transparent, rgba(0,0,0,.45));
  display:flex; align-items:center; gap:10px; transition: opacity .3s ease;
}
.time{ font-variant-numeric:tabular-nums }
.icon-btn{
  appearance:none; border:0; background:rgba(255,255,255,.08); color:#fff; width:36px; height:36px; border-radius:10px; display:grid; place-items:center; cursor:pointer
}
.icon-btn:hover{ background:rgba(255,255,255,.14) }
.progress-wrap{ flex:1; display:flex; align-items:center; gap:10px }
#progress-bar-container{
  position:relative; flex:1; height:8px; border-radius:999px; background:rgba(255,255,255,.18); cursor:pointer
}
#progress-bar{
  position:absolute; left:0; top:0; bottom:0; width:0%;
  background:linear-gradient(90deg,var(--accent),var(--accent2)); border-radius:999px
}
.volume{
  display:flex; align-items:center; gap:8px; min-width:160px
}
#volume-bar-container{ position:relative; width:120px; height:8px; border-radius:999px; background:rgba(255,255,255,.18); cursor:pointer; display:block }
#volume-bar{ position:absolute; left:0; top:0; bottom:0; width:70%; background:.........完整代码请登录后点击上方下载按钮下载查看

网友评论0