用途:为 @remotion/sfx 包添加一个新的音效。
前置条件:音效必须先加入 remotion.media 包;其后可用 bun run build 部署。主非 worktree 分支上应有 .env。真实来源是该仓库的 generate.ts,音效必须先存在其中。音效要求:WAV 格式、CC0(Creative Commons 0)许可、归一化峰值 -3dB。
步骤:
- 先加入 remotion.media 仓库:将 WAV 文件放到仓库根目录,在 generate.ts 的 soundEffects 数组添加条目(fileName 与 attribution 字段),运行 bun generate.ts 复制到 files/ 并重新生成 variants.json,然后部署。
- 在 packages/sfx/src/index.ts 添加导出,变量名用 camelCase,避免 JavaScript 保留字(如用 uiSwitch 而非 switch),形如 export const mySound = 'https://remotion.media/my-sound.wav';。
- 在 packages/docs/docs/sfx/<name>.mdx 创建文档页,参照已有页面(如 whip.mdx):包含带 image、title(camelCase 导出名)、crumb: '@remotion/sfx' 的 frontmatter,带下一个发布版本的 <AvailableFrom> 标签,<PlayButton> 导入与用法、描述、使用 @remotion/media 的 <Audio> 组件示例代码、含 URL 代码块的 Value 部分、Duration 部分(macOS 用 afinfo 获取时长/格式)、Attribution 部分(来源链接与许可)、Convert 部分(完整链接句)以及 See also 部分。
- 注册到侧边栏与目录:packages/docs/sidebars.ts 在 @remotion/sfx 分类项添加 'sfx/<name>';packages/docs/docs/sfx/table-of-contents.tsx 添加带 <PlayButton size={32}> 的 <TOCItem>。
- 重新生成 SFX 波形:bun packages/docs/generate-sfx-waveforms.ts,它用 ffmpeg 将每个已导出音效采样为约 2000 个波形样本并更新 packages/docs/components/sfx-demos/sfx-waveforms.ts。
- 更新技能规则文件:将新 URL 加入 packages/skills/skills/remotion-markup/sfx.md 列表。
- 构建:cd packages/sfx && bun run make。
命名约定:my-sound.wav 对应 mySound;switch.wav 对应 uiSwitch(保留字);page-turn.wav 对应 pageTurn。版本:使用 packages/core/src/version.ts 中的当前版本;文档 <AvailableFrom> 的补丁版本加 1。