RenderingVideo 文档

Audio 元素

音频 clip 字段、裁剪、循环、淡入淡出与运行时行为

Audio 元素

1. 结构

interface AudioClip extends BaseClip {
  type: "audio";
  src: string | { $ref: string };
  source?: MediaSource;
  volume?: number;
  loop?: boolean;
  playbackRate?: number;
  fadeIn?: number;
  fadeOut?: number;
  pan?: number;
  detune?: number;
  gainEnvelope?: AudioEnvelopePoint[];
  ducking?: AudioDucking;
}

2. 支持的参数

src

  • 类型:string | { $ref: string }
  • 必填:是

source.start

  • 类型:number
  • 必填:否
  • 单位:秒

source.end

  • 类型:number
  • 必填:否
  • 单位:秒

volume

  • 类型:number
  • 必填:否
  • 默认值:1

loop

  • 类型:boolean
  • 必填:否
  • 默认值:false

playbackRate

  • 类型:number
  • 必填:否
  • 默认值:1

fadeIn

  • 类型:number
  • 必填:否
  • 单位:秒

fadeOut

  • 类型:number
  • 必填:否
  • 单位:秒

pan

  • 类型:number
  • 必填:否
  • 范围:-11

detune

  • 类型:number
  • 必填:否
  • 单位:音分

gainEnvelope

  • 类型:{ time: number; volume: number; easing?: EasingFunction }[]
  • 必填:否
  • time 应按升序排列

ducking

  • 类型:{ targets: string[]; amount?: number; attack?: number; release?: number }
  • 必填:否
  • 用于在当前音频播放时压低目标音频轨道

3. 当前真实行为

  • source.start 已生效
  • source.end 已生效
  • fadeIn / fadeOut 已生效
  • loop 已生效
  • playbackRatedetunepangainEnvelope 可用于控制播放速度、音高、声像和音量自动化
  • transition 对音频不生效

4. 示例

{
  "type": "audio",
  "start": 0,
  "duration": 10,
  "src": { "$ref": "bgm-main" },
  "volume": 0.6,
  "fadeIn": 1.2,
  "fadeOut": 1.5,
  "loop": true
}