ctx.sound 控制扩展触发的音频。为音频指定稳定的 id 后,可以用同一个 id 暂停、恢复或停止它。

API

方法返回值说明
play(uri, options?)void | Promise<void>播放音频
stop(idOrUri)void | Promise<void>停止音频
pause(idOrUri)void | Promise<void>暂停音频
resume(idOrUri)void | Promise<void>恢复音频
常用 play() 选项包括 idchannelloopvolumefadeDuration

案例:播放并暂停音乐室试听曲

输入: 素材 audio/bgm/summer-night.ogg 已包含在项目中,播放 id 使用 music-preview
await ctx.sound.play("audio/bgm/summer-night.ogg", {
  id: "music-preview",
  loop: true,
  volume: 0.8,
});

await ctx.sound.pause("music-preview");
输出: 首次调用完成后音乐开始循环播放;第二次调用完成后,播放位置保留但声音暂停。两个 API 的解析值都是 undefined。随后调用 ctx.sound.resume("music-preview") 会从暂停位置继续。
同一功能内尽量固定使用一个播放 id,不要依赖较长、可能变化的素材 URI 来停止音频。