fix(generate): #1754 预览卡片黑边+占比过大/配音时长兜底调速/标题位置优化 #1754

Merged
auto-approve-bot merged 1 commits from feat/1754-preview-blackborder-duration-title into develop 2026-09-07 13:52:24 +08:00
Owner

#1754 前端三连修

P0-前端1:预览卡片黑边 + 占比过大

  • .xx-canvas-grid grid-template-columns: minmax(200px, 220px)minmax(160px, 180px)
  • .xx-canvas-grid-card background: #000transparent
  • video objectFit: containcover(填满卡片不留黑边)
  • 播放器容器 compact 模式 background → transparent

P0-前端2:预览视频时长与配音时长不匹配(前端兜底)

  • useSegmentScheduler PlaybackSegment 新增 playbackRate 字段
  • switchToSegment/play 中设置 video.playbackRate
  • FrontendPreviewPlayer 内部用 Audio 元素测量 voiceDuration
  • speedFactor = rawClipsDuration / voiceDuration(偏差>5% 时启用)
  • buildPlaybackSegments1/speedFactor 缩放 endTime 并写入 playbackRate
  • 后端 #1752 已按配音时长分配 clips,此处为前端安全兜底

P1-前端3:最终确认步骤标题位置优化

  • TITLE_MARGIN_TOP 120→180(ASS 坐标 9:16 下 6.25%→9.4%)
  • TITLE_MARGIN_BOTTOM 60→100(3.1%→5.2%)
  • ⚠️ 后端 ass_subtitle_builder.py 需同步更新以保持预览=成片

验证

  • tsc --noEmit
  • eslint --max-warnings 0
  • vitest 722 passed
  • build
## #1754 前端三连修 ### P0-前端1:预览卡片黑边 + 占比过大 - `.xx-canvas-grid` grid-template-columns: `minmax(200px, 220px)` → `minmax(160px, 180px)` - `.xx-canvas-grid-card` `background: #000` → `transparent` - video `objectFit: contain` → `cover`(填满卡片不留黑边) - 播放器容器 compact 模式 `background → transparent` ### P0-前端2:预览视频时长与配音时长不匹配(前端兜底) - `useSegmentScheduler` `PlaybackSegment` 新增 `playbackRate` 字段 - `switchToSegment`/`play` 中设置 `video.playbackRate` - `FrontendPreviewPlayer` 内部用 `Audio` 元素测量 `voiceDuration` - `speedFactor = rawClipsDuration / voiceDuration`(偏差>5% 时启用) - `buildPlaybackSegments` 按 `1/speedFactor` 缩放 `endTime` 并写入 `playbackRate` - 后端 #1752 已按配音时长分配 clips,此处为前端安全兜底 ### P1-前端3:最终确认步骤标题位置优化 - `TITLE_MARGIN_TOP` 120→180(ASS 坐标 9:16 下 6.25%→9.4%) - `TITLE_MARGIN_BOTTOM` 60→100(3.1%→5.2%) - ⚠️ 后端 `ass_subtitle_builder.py` 需同步更新以保持预览=成片 ### 验证 - tsc --noEmit ✅ - eslint --max-warnings 0 ✅ - vitest 722 passed ✅ - build ✅
xiaoxia added 1 commit 2026-09-07 13:45:42 +08:00
fix(generate): #1754 预览卡片黑边+占比过大/配音时长兜底调速/标题位置优化
CI/CD Pipeline / Check push changed paths (pull_request) Has been skipped
CI/CD Pipeline / Dedup Check - skip PR tests when covered by push pipeline (pull_request) Successful in 2s
CI/CD Pipeline / Check if frontend-only change (pull_request) Successful in 2s
CI/CD Pipeline / Unit Tests (pull_request) Has been skipped
CI/CD Pipeline / Integration Tests (pull_request) Has been skipped
CI/CD Pipeline / PR Build API Image (pull_request) Has been skipped
CI/CD Pipeline / PR Build Worker Image (pull_request) Has been skipped
CI/CD Pipeline / Build Staging Web Image (pull_request) Has been skipped
CI/CD Pipeline / Build Staging API Image (pull_request) Has been skipped
CI/CD Pipeline / Build Staging Worker Image (pull_request) Has been skipped
CI/CD Pipeline / Retag skipped Staging API Image (pull_request) Has been skipped
CI/CD Pipeline / Retag skipped Staging Web Image (pull_request) Has been skipped
CI/CD Pipeline / Retag skipped Staging Worker Image (pull_request) Has been skipped
CI/CD Pipeline / Deploy Staging (Watchtower auto-deploy) (pull_request) Has been skipped
CI/CD Pipeline / Staging E2E Tests (pull_request) Has been skipped
CI/CD Pipeline / Staging API Integration Tests (pull_request) Has been skipped
CI/CD Pipeline / ACR Image Cleanup (pull_request) Has been skipped
CI/CD Pipeline / Frontend Unit Tests (pull_request) Successful in 1m9s
CI/CD Pipeline / Frontend Lint (pull_request) Successful in 1m24s
PR Automation / Auto Approve on CI Green (pull_request) Successful in 1m29s
Preview Deploy / Deploy Preview Environment (pull_request) Successful in 1m31s
CI/CD Pipeline / Validate - Python (mypy + alembic) (pull_request) Successful in 1m36s
CI/CD Pipeline / Validate - Style (pull_request) Successful in 1m48s
CI/CD Pipeline / PR Build Web Image (pull_request) Successful in 2m6s
CI/CD Pipeline / Validate - Security (pull_request) Successful in 5m52s
CI/CD Pipeline / Build Production API Image (pull_request) Has been skipped
CI/CD Pipeline / Build Production Web Image (pull_request) Has been skipped
CI/CD Pipeline / Build Production Worker Image (pull_request) Has been skipped
CI/CD Pipeline / Deploy Production (pull_request) Has been skipped
CI/CD Pipeline / CI Gate (pull_request) Successful in 3s
CI/CD Pipeline / Production Browser E2E (pull_request) Has been skipped
CI/CD Pipeline / Canary Release to Production (pull_request) Has been skipped
AI Code Review / AI Code Review (pull_request) Successful in 6m19s
PR Automation / Auto Merge on CI Green + Approved (pull_request) Successful in 5m11s
ACR Cleanup / ACR Image Cleanup (pull_request_target) Successful in 10s
Preview Cleanup / Cleanup Preview Environment (pull_request) Successful in 24s
03a0ab66dd
P0-前端1 黑边+卡片占比:
- .xx-canvas-grid grid-template-columns: minmax(200px,220px) → minmax(160px,180px)
- .xx-canvas-grid-card background: #000 → transparent
- video objectFit: contain → cover(填满卡片不留黑边)
- 播放器容器 compact 模式 background → transparent

P0-前端2 配音时长兜底:
- useSegmentScheduler PlaybackSegment 新增 playbackRate 字段
- switchToSegment/play 中设置 video.playbackRate
- FrontendPreviewPlayer 内部用 Audio 测量 voiceDuration
- speedFactor = rawClipsDuration / voiceDuration(偏差>5%时启用)
- buildPlaybackSegments 按 1/speedFactor 缩放 endTime 并写入 playbackRate
- 后端已按配音时长分配 clips(#1752),此处为前端安全兜底

P1-前端3 标题位置优化:
- TITLE_MARGIN_TOP 120→180(ASS 坐标 9:16 下 6.25%→9.4%)
- TITLE_MARGIN_BOTTOM 60→100(3.1%→5.2%)
- 注:后端 ass_subtitle_builder.py 需同步更新以保持预览=成片
auto-approve-bot approved these changes 2026-09-07 13:47:12 +08:00
auto-approve-bot left a comment
Collaborator

CI全绿,自动审批通过。

CI全绿,自动审批通过。
auto-approve-bot approved these changes 2026-09-07 13:47:12 +08:00
auto-approve-bot left a comment
Collaborator

CI全绿,自动审批通过。

CI全绿,自动审批通过。

🚀 预览环境已部署

项目 详情
PR号 #1754
预览链接 https://pr-1754.preview.xiaoxiajianji.com
API环境 staging

💡 预览环境使用 staging API 数据,请勿在预览环境中操作重要数据。

🔄 每次提交新代码后预览环境会自动更新。

🗑️ PR 关闭或合并后,预览环境会自动清理。

🚀 **预览环境已部署** | 项目 | 详情 | |------|------| | PR号 | #1754 | | 预览链接 | [https://pr-1754.preview.xiaoxiajianji.com](https://pr-1754.preview.xiaoxiajianji.com) | | API环境 | staging | > 💡 预览环境使用 staging API 数据,请勿在预览环境中操作重要数据。 > > 🔄 每次提交新代码后预览环境会自动更新。 > > 🗑️ PR 关闭或合并后,预览环境会自动清理。
auto-approve-bot merged commit d8da69970b into develop 2026-09-07 13:52:24 +08:00
auto-approve-bot deleted branch feat/1754-preview-blackborder-duration-title 2026-09-07 13:52:24 +08:00

🗑️ 预览环境已清理

PR #1754 已关闭或合并,对应的预览环境已被清理。

如有需要,可以重新打开 PR 来重新生成预览环境。

🗑️ **预览环境已清理** PR #1754 已关闭或合并,对应的预览环境已被清理。 > 如有需要,可以重新打开 PR 来重新生成预览环境。
Sign in to join this conversation.