事件
订阅这些事件以响应 OBS 的状态变化。它们以 BlueprintAssignable 多播委托的形式暴露在 UInhyeongOBSSubsystem 上(并镜像至 UInhyeongOBSComponent)。
原生对应项: 下方每个 Blueprint 事件都有一个带有
Native后缀的原生 C++ 对应项,支持 lambda 绑定(例如OnConnectedNative、OnCurrentSceneChangedNative、OnReplayBufferSavedNative)。完整列表及签名请参阅 原生委托。OBS->OnConnectedNative.AddLambda([]() { /* ... */ });
仅限处理器级别: 少数事件不会镜像至 Subsystem,必须在其处理器上进行绑定。最典型的是截图事件(
OnScreenshotCaptured/OnScreenshotSaved),它们通过GetScreenshots()进行绑定(Subsystem 也会重新广播这两个事件);另有若干读取结果事件(OnStreamServiceSettingsReceived、OnTransitionOverrideReceived、OnInputSettingsReceived、媒体事件等)源自其各自的处理器。请参阅 Handlers API。
配置
| 事件 | 参数 | 含义 |
|---|---|---|
OnCurrentSceneCollectionChanging | (SceneCollectionName) | 即将切换场景集合。 |
OnCurrentSceneCollectionChanged | (SceneCollectionName) | 场景集合已切换。 |
OnSceneCollectionListChanged | () | 场景集合列表已修改。 |
OnCurrentProfileChanging | (ProfileName) | 即将切换配置文件。 |
OnCurrentProfileChanged | (ProfileName) | 配置文件已切换。 |
OnProfileListChanged | () | 配置文件列表已修改。 |
OnStreamServiceSettingsReceived | (Settings) | 推流服务设置已获取(处理器级别)。 |
连接
| 事件 | 参数 | 含义 |
|---|---|---|
OnConnected | () | 已成功连接并向 OBS 完成身份验证。 |
OnDisconnected | (Reason) | 已与 OBS 断开连接。 |
OnConnectionError | (Error) | 连接失败。 |
重连
| 事件 | 参数 | 含义 |
|---|---|---|
OnReconnecting | (AttemptNumber) | 正在发起一次重连尝试。 |
OnReconnectFailed | () | 所有重连尝试均已耗尽。 |
场景
| 事件 | 参数 | 含义 |
|---|---|---|
OnCurrentSceneChanged | (SceneName, SceneUuid) | 当前直播场景已切换。 |
OnSceneListUpdated | () | 场景列表已刷新。 |
OnSceneCreated | (SceneName, SceneUuid, bIsGroup) | 新场景已创建。 |
OnSceneRemoved | (SceneName, SceneUuid, bIsGroup) | 场景已删除。 |
OnSceneNameChanged | (SceneUuid, OldSceneName, NewSceneName) | 场景已重命名。 |
OnTransitionOverrideReceived | (SceneName, Override) | 场景转场覆盖数据已获取(处理器级别)。 |
场景项目
| 事件 | 参数 | 含义 |
|---|---|---|
OnSceneItemTransformChanged | (SceneName, SceneItemId, Transform) | 场景项目变换已更改(高频事件;需手动启用)。 |
OnSceneItemCreated | (SceneName, SourceName, SceneItemId, SceneItemIndex) | 项目已添加至场景。 |
OnSceneItemRemoved | (SceneName, SourceName, SceneItemId) | 项目已从场景中移除。 |
OnSceneItemEnableStateChanged | (SceneName, SceneItemId, bEnabled) | 项目可见性已切换。 |
OnSceneItemLockStateChanged | (SceneName, SceneItemId, bLocked) | 项目锁定状态已切换。 |
OnSceneItemListReindexed | (SceneName) | 场景中的项目已重新排序(层级顺序已变更)。 |
输出
| 事件 | 参数 | 含义 |
|---|---|---|
OnStreamStateChanged | (bActive, State) | 推流状态已变更。 |
OnRecordStateChanged | (bActive, State) | 录制状态已变更。 |
OnVirtualCamStateChanged | (bActive, State) | 虚拟摄像头状态已变更。 |
OnReplayBufferStateChanged | (bActive, State) | Replay Buffer 状态已变更。 |
OnReplayBufferSaved | (FilePath) | 回放已保存至文件。 |
OnRecordFileChanged | (NewOutputPath) | 录制开始写入新文件(分段)。 |
OnRecordDirectoryReceived | (RecordDirectory) | 录制目录已获取。 |
OnOutputListReceived | (Outputs) | 输出列表已获取。 |
OnOutputStatusReceived | (Status) | 输出状态已获取。 |
音频 / 输入
| 事件 | 参数 | 含义 |
|---|---|---|
OnInputMuteStateChanged | (InputName, bMuted) | 输入静音状态已变更。 |
OnInputVolumeChanged | (InputName, VolumeDb, VolumeMul) | 音量已变更。 |
OnInputVolumeMeters | (Meters) | 高频的逐输入音频电平(通过 SetVolumeMetersEnabled 手动启用)。 |
OnInputActiveStateChanged | (InputName, bVideoActive) | 输入的视频激活状态已变更(通过 SetInputActiveStateEventsEnabled 手动启用)。 |
OnMicActivityChanged | (InputName, bActive) | 已监视输入的说话↔静默转换(已防抖)。 |
OnInputAudioBalanceChanged | (InputName, InputUuid, Balance) | 立体声平衡已变更。 |
OnInputAudioSyncOffsetChanged | (InputName, InputUuid, SyncOffsetMs) | 同步偏移已变更。 |
OnInputAudioTracksChanged | (InputName, InputUuid, AudioTracks) | 音轨路由已变更。 |
OnInputAudioMonitorTypeChanged | (InputName, InputUuid, MonitorType) | 监听类型已变更。 |
OnSpecialInputsReceived | (SpecialInputs) | 默认音频设备已获取。 |
OnInputSettingsChanged | (InputName, InputUuid) | 输入设置已修改(仅通知)。 |
OnInputSettingsReceived | (InputName, InputKind, Settings) | 输入设置数据已获取,包含完整数据(处理器级别)。 |
OnInputListUpdated | () | 输入列表已刷新。 |
OnInputCreated | (InputName, InputUuid, InputKind, UnversionedInputKind) | 新输入已创建。 |
OnInputRemoved | (InputName, InputUuid) | 输入已移除。 |
OnInputNameChanged | (InputUuid, OldInputName, NewInputName) | 输入已重命名。 |
OnInputKindListReceived | (InputKinds) | 可用输入类型列表已获取。 |
Studio Mode
| 事件 | 参数 | 含义 |
|---|---|---|
OnStudioModeStateChanged | (bEnabled) | Studio Mode 已启用/禁用。 |
OnCurrentPreviewSceneChanged | (SceneName, SceneUuid) | 预览场景已切换。 |
转场
| 事件 | 参数 | 含义 |
|---|---|---|
OnCurrentTransitionChanged | (TransitionName) | 当前转场已切换。 |
OnTransitionDurationChanged | (DurationMs) | 转场时长已变更。 |
OnTransitionStarted | (TransitionName) | 场景转场已开始。 |
OnTransitionEnded | (TransitionName) | 场景转场已完成。 |
OnTransitionVideoEnded | (TransitionName) | 转场视频已结束(适用于 Stinger 转场)。 |
OnTransitionListUpdated | () | 转场列表已刷新。 |
滤镜
| 事件 | 参数 | 含义 |
|---|---|---|
OnSourceFilterCreated | (SourceName, FilterName, FilterKind, FilterIndex, bEnabled) | 滤镜已添加至来源。 |
OnSourceFilterRemoved | (SourceName, FilterName) | 滤镜已从来源中移除。 |
OnSourceFilterNameChanged | (SourceName, OldName, NewName) | 滤镜已重命名。 |
OnSourceFilterSettingsChanged | (SourceName, FilterName) | 滤镜设置已修改。 |
OnSourceFilterEnableStateChanged | (SourceName, FilterName, bEnabled) | 滤镜已启用/禁用。 |
OnSourceFilterListReindexed | (SourceName) | 来源上的滤镜顺序已变更。 |
截图
处理器级别:通过
GetScreenshots()进行绑定。Subsystem 也会重新广播这两个事件。
| 事件 | 参数 | 含义 |
|---|---|---|
OnScreenshotCaptured | (Result) | 截图已捕获至内存(包含 base64 数据)。 |
OnScreenshotSaved | (SourceName, FilePath) | 截图已保存至 OBS 机器上的文件。 |
媒体
处理器级别:通过
GetMediaInputs()进行绑定。
| 事件 | 参数 | 含义 |
|---|---|---|
OnMediaInputPlaybackStarted | (InputName) | 媒体已开始播放。 |
OnMediaInputPlaybackEnded | (InputName) | 媒体已播放完毕。 |
OnMediaInputActionTriggered | (InputName, Action) | 媒体动作已被触发。 |
OnMediaInputStatusReceived | (Status) | 媒体状态已获取。 |
相关内容
- Subsystem API:用于获取数据和更改这些事件所报告状态的方法。
- 原生委托:带
Native后缀的 C++ 对应项,用于 lambda 绑定。 - Handlers API:处理器级别的事件及
GetXxx()访问器。