Mediabunny在浏览器中离线添加图片文字音频时间轴动画导出mp4视频代码
代码语言:html
所属分类:多媒体
代码描述:Mediabunny在浏览器中离线添加图片文字音频时间轴动画导出mp4视频代码
代码标签: Mediabunny 浏览器 离线 添加 图片 文字 音频 时间轴 动画 导出 mp4 视频 代码
下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开
<!DOCTYPE html>
<html lang="zh">
<head>
<meta charset="UTF-8" />
<title>可视化拖拽动画设计器(独立文本轨修复版 | Mediabunny)</title>
<meta name="viewport" content="width=device-width, initial-scale=1" />
<style>
:root{
--bg:#0b1220; --panel:#111827; --muted:#94a3b8; --text:#e5e7eb;
--accent:#06b6d4; --ok:#22c55e; --danger:#ef4444; --warn:#f59e0b;
--border:rgba(148,163,184,.2); --clip-v:rgba(59,130,246,.22);
--clip-t:rgba(245,158,11,.22); --clip-a:rgba(34,197,94,.22);
}
*{box-sizing:border-box}
body{margin:0;background:linear-gradient(135deg,#0b1220,#0e1528 60%, #0b1220);color:var(--text);font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial}
.container{max-width:1200px;margin:20px auto;padding:0 16px 80px}
header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}
h1{font-size:18px;margin:0;color:#d1e9ff}
.badge{padding:4px 8px;background:rgba(148,163,184,.12);border:1px solid rgba(148,163,184,.2);border-radius:999px;font-size:12px;color:#cbd5e1}
.panel{background:rgba(17,24,39,.8);border:1px solid var(--border);border-radius:14px;padding:14px;margin-bottom:12px;backdrop-filter:blur(8px)}
.row{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.grow{flex:1}
input[type="number"], input[type="text"], select{
background:#0b1220;color:var(--text);border:1px solid rgba(148,163,184,.3);border-radius:10px;padding:8px 10px;outline:none;min-width:0
}
input[type="file"]{color:var(--text)}
input[type="color"]{border:none;background:transparent}
button{
background:#0b1220;color:var(--text);border:1px solid rgba(148,163,184,.35);
padding:8px 12px;border-radius:10px;cursor:pointer;transition:.15s;display:inline-flex;align-items:center;gap:6px
}
button:hover{border-color:var(--accent);box-shadow:0 0 0 2px rgba(6,182,212,.18) inset}
button.primary{background:linear-gradient(135deg,#06b6d4,#3b82f6);border:none}
button.success{background:linear-gradient(135deg,#22c55e,#16a3a4);border:none}
button.danger{background:linear-gradient(135deg,#ef4444,#f43f5e);border:none}
button.warn{background:linear-gradient(135deg,#f59e0b,#f97316);border:none}
button:disabled{opacity:.6;cursor:not-allowed}
.hint{font-size:12px;color:var(--muted)}
progress{width:100%;height:14px;accent-color:var(--accent)}
canvas{background:#000;border-radius:12px;border:1px solid var(--border);max-width:100%}
.timeline-wrap{border:1px solid var(--border);border-radius:12px;overflow:hidden;background:rgba(0,0,0,.25)}
.timeline-toolbar{display:flex;align-items:center;gap:10px;padding:8px;border-bottom:1px solid var(--border)}
.ruler{position:relative;height:24px;background:rgba(255,255,255,.04)}
.tracks{position:relative;overflow:auto;max-height:360px}
.track-row{display:flex;align-items:stretch;border-bottom:1px solid rgba(148,163,184,.14)}
.track-label{width:120px;min-width:120px;border-right:1px solid rgba(148,163,184,.14);padding:6px;font-size:12px;color:#cbd5e1}
.track-scroll{position:relative; flex:1; min-height:60px; background:
repeating-linear-gradient(to right, rgba(255,255,255,.03) 0, rgba(255,255,255,.03) 1px, transparent 1px, transparent 10px),
repeating-linear-gradient(to right, rgba(255,255,255,.06) 0, rgba(255,255,255,.06) 1px, transparent 1px, transparent 100px);
}
.clip{position:absolute;height:40px;border:1px solid var(--border);border-radius:8px;backdrop-filter:blur(1px);
display:flex;align-items:center;padding:2px 8px;gap:6px;cursor:grab;user-select:none;overflow:hidden}
.clip-visual{background:var(--clip-v)}
.clip-text{background:var(--clip-t);height:30px;top:15px}
.clip-audio{background:var(--clip-a)}
.clip .name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:12px;color:#e5e7eb}
.clip.selected{outline:2px solid #93c5fd}
.handle{position:absolute;top:0;width:8px;height:100%;cursor:ew-resize;background:rgba(255,255,255,.15)}
.handle.left{left:-2px;border-radius:6px 0 0 6px}
.handle.right{right:-2px;border-radius:0 6px 6px 0}
.playhead{position:absolute;top:0;width:2px;background:#ef4444;height:100%}
</style>
</head>
<body>
<div class="container">
<header>
<h1>🎨 可视化拖拽动画设计器(独立文本轨修复版)</h1>
<div class="row" style="gap:8px">
<span class="badge">图片/文本/声音</span>
<span class="badge">入场/出场动画</span>
<span class="badge">MP4 导出</span>
</div>
</header>
<div class="panel">
<div class="row">
<div class="grow">
<strong>预览画布</strong>
<div class="hint">预览包含图片+文本动画(音频不预览,导出时会混音)。</div>
</div>
<div class="row">
<label>宽</label><input id="wInput" type="number" min="256" step="2" value="1280" style="width:100px" />
<label>高</label><input id="hInput" type="number" min="256" step="2" value="720" style="width:100px" />
<label>FPS</label><input id="fpsInput" type="number" min="1" max="60" step="1" value="30" style="width:100px" />
<label>图片适配</la.........完整代码请登录后点击上方下载按钮下载查看
















网友评论0