属于 **#47**。依赖 **#47-A / #47-B**。**工程量最大。** ## 范围 - `src-tauri` 播放循环、`crates/opentake-media` 连续解码 + 预览降档、cpal 音频输出、A/V 时钟同步、精确 seek。 ## 验收 - [ ] 点播放:画面逐帧推进 + 音频同步播放;暂停/继续/seek 正确。 - [ ] A/V 漂移在阈值内;掉帧时优先保音频。 - [ ] 到片尾自动停;区间/循环播放(可选)。 - [ ] `cargo fmt --all` + clippy 通过。 认领:**@appergb**。
Activity
appergb commentedon Jun 22, 2026
架构已定(子 Agent 设计工作流)
HYBRID:即时止血(PR #62 已合并)→ 正式引擎 = 专用渲染线程 + 每片段常驻 ffmpeg 流式解码→有界环形缓冲 + 复用 GPU 缓冲 + JPEG + 回环 MJPEG
<img>+ cpal 音频主时钟;暂停/scrub 仍用现有 composite_frame(零回归)。我认领(本人,时间线车道)
opentake-media/decode/stream.rs(单片段单 ffmpeg 连续 rawvideo→ring,seek=kill+respawn)render_to_rgba_reused(不动 composite_frame)src-tauri/src/playback.rs(独占 Rc/Compositor/TextureCache + 传输指令通道 + ring-reading resolver + playback_start/stop)可认领(队友)
docs: bilingual README overhaul with competitive edge positioning (#88)
feat(preview): real-time timeline playback with audio (appergb#53)
fix(playback): rewind-on-replay + unified play/pause toggle + no blac…
fix(timeline): multi-clip drop, save/autosave, preview int-frame, aud…
perf(preview): stop-the-bleed for playback stutter + memory spike (ap…
fix(preview/editing): pause no longer jumps back, scrub no longer stu…
Merge pull request #165 from appergb/feat/53-streaming-decode-composite
Merge pull request #170 from appergb/feat/53-cpal-mjpeg
Merge pull request #189 from appergb/feat/rust-engine-default
appergb commentedon Jul 4, 2026
全链路完成:PR #170(流式解码→wgpu 合成→MJPEG 传输 + cpal 主时钟,含 #63/#64/#160 立体声/#162)+ PR #189(默认开启 + 运行时回退安全网)。架构与真机验收清单:docs/architecture/PLAYBACK-ENGINE.md。真机视觉验收为后续第一优先事项,见 docs/architecture/HANDOFF-2026-07.md §3.1;流式音频分块解码在 #160 跟踪。
feat(preview): MJPEG loopback stream server for single-surface playba…
fix(preview): hold the played frame on pause until the exact stop-fra…