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