Skip to content

Desuq Cafe

文档菜单

此翻译可能落后于最新的英文版本。 查看英文版

音频

本指南涵盖基本音频控制(静音/音量)、高级音频控制(平衡、同步偏移、音频监听、多轨路由、特殊输入),以及用于语音活动检测的实时音量表。

音频控制

函数说明
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 = 完全右

同步偏移:

  • 范围:-95020000 毫秒
  • 负值表示音频提前播放(用于补偿处理延迟)

监听类型(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 域的完整事件目录,请参阅事件参考