SuperAPI AI 工具集

blecsd-audio

通用与其它

查看项目

更新于 10-15 23:44

技能介绍

@blecsd/audio 为 blECSd 终端应用提供音频管理。它采用适配器模式:blECSd 只负责状态(音量、静音、活动声音),实际音频播放由用户自己提供实现,且需遵循 blECSd 的函数式编程规则。

安装与依赖:pnpm add @blecsd/audio,对等依赖 blecsd >= 0.7.0;导入方式为 import { createAudioManager, AudioChannel } from '@blecsd/audio'。

主要能力:createAudioManager() 返回 AudioManager,可获取状态、设置/清除适配器,执行 play、playSound、playMusic、stop、stopAll,设置与读取各声道音量,mute/unmute/toggleMute/isMuted,并通过 onEvent/onEvents 把事件总线上的事件绑定为自动播放的音效触发器。AudioChannel 提供 Music(0) 与 SFX(1) 两个声道,各有独立音量与静音。SoundTrigger 支持 event、soundId、options 以及可选的 when 条件过滤。

使用方式:先创建管理器,调用 audio.setAdapter() 传入实现 play、stop、stopAll、setVolume、setMuted 的适配器,再用 playSound('click', AudioChannel.SFX) 或 playMusic('theme', 0.8),也可用 play({ id, channel, volume, loop }) 指定完整参数。事件触发用 onEvent(bus, trigger) 或 onEvents(bus, triggers),返回取消订阅函数,需在清理时调用。音量范围为 0-1。

限制:适配器必须由用户提供,blECSd 本身不内置音频后端;未设置适配器时所有播放调用均为空操作。适配器具体实现(如 play-sound、speaker、SoX 等)由用户自行选择,文档中未提供统一的后端方案,也未提及收费、平台或具体播放效果。