音频
本指南涵盖基本音频控制(静音/音量)、高级音频控制(平衡、同步偏移、音频监听、多轨路由、特殊输入),以及用于语音活动检测的实时音量表。
音频控制
| 函数 | 说明 |
|---|---|
SetInputMute(Name, Muted) | 静音/取消静音一个输入 |
ToggleInputMute(Name) | 切换静音状态 |
GetInputMute(Name) | 获取当前静音状态 |
SetInputVolume(Name, VolumeDb) | 以分贝为单位设置音量 |
SetInputVolumeMultiplier(Name, VolumeMul) | 以倍数设置音量(0.0 到 1.0 及以上) |
GetInputVolume(Name) | 获取当前音量 |
AdjustInputVolume(Name, DeltaDb) | 相对调整音量 |
GetInputList() | 从 OBS 刷新输入列表 |
GetCachedInputs() | 获取本地缓存的输入列表 |
高级音频控制
| 函数 | 说明 |
|---|---|
GetInputAudioBalance(Name) | 获取立体声平衡(异步) |
SetInputAudioBalance(Name, Balance) | 设置立体声平衡(0.0=左,0.5=中,1.0=右) |
GetInputAudioSyncOffset(Name) | 获取同步偏移,单位毫秒(异步) |
SetInputAudioSyncOffset(Name, OffsetMs) | 设置同步偏移(-950 到 20000 毫秒) |
GetInputAudioMonitorType(Name) | 获取监听类型(异步) |
SetInputAudioMonitorType(Name, Type) | 设置监听类型 |
GetInputAudioTracks(Name) | 获取音轨路由状态(异步) |
SetInputAudioTracks(Name, Tracks) | 设置全部音轨状态(1-6) |
SetInputAudioTrack(Name, Track, Enabled) | 设置单条音轨状态 |
GetSpecialInputs() | 获取默认音频设备 |
GetCachedSpecialInputs() | 获取缓存的特殊输入 |
RefreshAllAdvancedAudioInfo() | 为已缓存的输入获取全部高级音频信息 |
音频平衡:
0.0= 完全左0.5= 居中(默认)1.0= 完全右
同步偏移:
- 范围:
-950到20000毫秒 - 负值表示音频提前播放(用于补偿处理延迟)
监听类型(EOBSMonitorType):
| 值 | 说明 |
|---|---|
None | 不监听(默认) |
MonitorOnly | 在 OBS 中可听,但不输出到推流/录制 |
MonitorAndOutput | 在 OBS 中可听,且同时输出到推流/录制 |
音轨:
- 第 1 至 6 条音轨可独立启用/禁用。
- 用于多轨录制(分离游戏/麦克风/Discord 音频)。
- 在 OBS 设置 → 输出 → 录制 中配置输出音轨。
音量表与语音活动检测
实时逐输入音频电平。这是一个高频事件,默认关闭,请仅在需要时启用。
| 函数/事件 | 说明 |
|---|---|
SetVolumeMetersEnabled(bEnable) | 订阅 InputVolumeMeters 事件(逐输入、多声道电平) |
OnInputVolumeMeters | 每个输入触发一个 FOBSInputVolumeMeter,提供线性倍数及推导的分贝值,以及便捷的最响声道峰值 |
GetClient()->GetAudio()->GetLastVolumeMeters() | 轮询最新的音量表帧,而非绑定事件 |
SetInputActiveStateEventsEnabled(bEnable) + OnInputActiveStateChanged | 输入的视频活动状态发生变化 |
如需基于这些音量表的现成说话/静默检测,请参阅语音活动检测。
注意: OBS 对已静音的输入报告空电平。
音频/输入事件
OnInputMuteStateChanged(InputName, bMuted):输入静音状态变化OnInputVolumeChanged(InputName, VolumeDb, VolumeMul):音量变化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):可用输入类型已获取
如需查看所有 OBS 域的完整事件目录,请参阅事件参考。