feat: BGM背景音乐管理 - 配置API + 预设库API #395

Merged
xiaoxia merged 2 commits from feat/bgm-management into develop 2026-07-17 09:35:21 +08:00
Owner

功能

BGM 背景音乐完整后端能力。

计划 BGM 配置 API

  • GET /api/v1/edit-plans/{plan_id}/bgm — 获取 BGM 配置
  • PUT /api/v1/edit-plans/{plan_id}/bgm — 更新 BGM 配置(部分更新)

支持字段:

  • enabled / source / asset_id / preset_id / audio_url
  • volume / fade_in / fade_out / loop_enabled
  • sidechain_enabled / sidechain_ratio / sidechain_attack / sidechain_release / sidechain_threshold

校验规则:启用 BGM 时必须指定素材来源(asset_id / preset_id / audio_url 三选一)

BGM 预设库 API

  • GET /api/v1/edit-plans/bgm/presets — 预设 BGM 列表
  • 支持:按风格筛选 / 关键词搜索 / 分页
  • 6 种风格:轻快、治愈、科技、电商、情感、电影
  • 10 首免费可商用预设音乐

测试

42 passed(原28 + 新增14),零回归

BGM配置 9 个:默认空/更新音量/启用预设/无来源400/素材启用/不存在404/部分更新保留/人声闪避
预设库 5 个:全部列表/风格筛选/关键词搜索/分页/字段完整性

## 功能 BGM 背景音乐完整后端能力。 ## 计划 BGM 配置 API - `GET /api/v1/edit-plans/{plan_id}/bgm` — 获取 BGM 配置 - `PUT /api/v1/edit-plans/{plan_id}/bgm` — 更新 BGM 配置(部分更新) 支持字段: - enabled / source / asset_id / preset_id / audio_url - volume / fade_in / fade_out / loop_enabled - sidechain_enabled / sidechain_ratio / sidechain_attack / sidechain_release / sidechain_threshold 校验规则:启用 BGM 时必须指定素材来源(asset_id / preset_id / audio_url 三选一) ## BGM 预设库 API - `GET /api/v1/edit-plans/bgm/presets` — 预设 BGM 列表 - 支持:按风格筛选 / 关键词搜索 / 分页 - 6 种风格:轻快、治愈、科技、电商、情感、电影 - 10 首免费可商用预设音乐 ## 测试 42 passed(原28 + 新增14),零回归 BGM配置 9 个:默认空/更新音量/启用预设/无来源400/素材启用/不存在404/部分更新保留/人声闪避 预设库 5 个:全部列表/风格筛选/关键词搜索/分页/字段完整性
xiaoxia force-pushed feat/bgm-management from c4d4174d70 to 6ffca5f0e9 2026-07-16 13:47:48 +08:00 Compare
xiaoxia force-pushed feat/bgm-management from 55c53777b4 to 6ffca5f0e9 2026-07-16 13:56:37 +08:00 Compare
xiaoxia force-pushed feat/bgm-management from 8c23f5d89d to e39d275f15 2026-07-17 07:49:52 +08:00 Compare
xiaoxia added 2 commits 2026-07-17 09:23:56 +08:00
- GET /{plan_id}/bgm — 获取BGM配置
- PUT /{plan_id}/bgm — 更新BGM配置(部分更新,支持12个字段)
  - 启用校验:开启BGM必须指定来源
  - 字段:enabled/source/asset_id/preset_id/audio_url/
          volume/fade_in/fade_out/loop_enabled/
          sidechain_enabled/sidechain_ratio/sidechain_*
- GET /bgm/presets — 预设BGM列表
  - 按风格筛选(upbeat/relax/tech/commerce/emotional/cinematic)
  - 关键词搜索
  - 分页
- 14个单元测试全覆盖
style: auto-format with black + isort (runner env)
CI Build & Deploy Pipeline / Build Staging API Image (pull_request) Has been skipped
CI Build & Deploy Pipeline / Build Staging Web Image (pull_request) Has been skipped
CI Build & Deploy Pipeline / Build Staging Worker Image (pull_request) Has been skipped
CI Build & Deploy Pipeline / Build Production API Image (pull_request) Has been skipped
CI Build & Deploy Pipeline / Build Production Web Image (pull_request) Has been skipped
CI Build & Deploy Pipeline / Build Production Worker Image (pull_request) Has been skipped
CI Build & Deploy Pipeline / Deploy Staging (Watchtower auto-deploy) (pull_request) Has been skipped
CI Build & Deploy Pipeline / Staging E2E Tests (pull_request) Has been skipped
CI Build & Deploy Pipeline / Staging API Integration Tests (pull_request) Has been skipped
CI Build & Deploy Pipeline / Deploy Production (pull_request) Has been skipped
CI Build & Deploy Pipeline / Production Browser E2E (pull_request) Has been skipped
CI/CD Pipeline / Check if frontend-only change (pull_request) Successful in 20s
AI Code Review / AI Code Review (pull_request) Failing after 36s
CI/CD Pipeline / Frontend Lint (pull_request) Successful in 58s
CI/CD Pipeline / Validate Code Quality And Tests (pull_request) Successful in 2m34s
CI/CD Pipeline / Unit Tests (pull_request) Successful in 2m41s
CI/CD Pipeline / Integration Tests (pull_request) Successful in 1m37s
4a432043af
xiaoxia force-pushed feat/bgm-management from e39d275f15 to 4a432043af 2026-07-17 09:23:56 +08:00 Compare
auto-approve-bot approved these changes 2026-07-17 09:30:35 +08:00
auto-approve-bot left a comment
Collaborator

CI全绿,自动审批通过。

CI全绿,自动审批通过。
xiaoxia merged commit 47e7018f2a into develop 2026-07-17 09:35:21 +08:00
xiaoxia deleted branch feat/bgm-management 2026-07-17 09:35:21 +08:00
Sign in to join this conversation.