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 内只增不破。