Theseus 模组文档
API 参考 / 事件系统

SoundPlayEvent


宿主成功播放一个音效之后投递的纯通知。只有真正走宿主音效播放路径(AudioEngine#playSound,且注册项类型为 SOUND)时投递;播放失败不投递。回放期的幽灵击打走静默路径(playSoundQuiet),不会投递本事件。

方法速览

方法用途
soundId()音效 id(宿主注册表中的键)
path()音效文件路径,可能为 null
category()音效类别,可能为 null

soundId()

java
public String soundId();

行为:返回宿主注册表中该音效的键,不会为 null(未注册的 id 不会播放成功)。

path()

java
public String path();

行为:返回音效文件路径,可能为 null。

category()

java
public SoundCategory category();

行为:返回映射后的 API 音效类别,可能为 null。

示例

java
ctx.eventBus().subscribe(SoundPlayEvent.class, event -> {
    if ("ui_click".equals(event.soundId())) {
        flashButtonIndicator();
    }
});

完整签名

java
public final class SoundPlayEvent extends Event {
    public SoundPlayEvent(String soundId, String path, SoundCategory category);
    public String soundId();
    public String path();
    public SoundCategory category();
}

行为核验:音效已经开始播放,事件无法拦截播放;不要把本事件当作播放拦截点。

线程:投递在调用播放的线程(游戏线程)。

稳定性:2.0 起冻结,2.x 内只增不破。