You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用obs-websocket-py设置OBS源可见性失败,求解决方案

问题分析与解决方案

你的核心问题是用错了API接口:SetInputSettings是用来修改输入源的配置参数(比如图片路径、音频设置),不是控制场景中源的可见性。要控制源在场景里的显示/隐藏,应该使用SetSceneItemEnabled接口——因为源的可见性是它在特定场景中的实例属性,而非输入源本身的属性。

另外你的代码还有两处细节问题:

  • input_settings里的拼写错误:visibile应为visible(但这个参数本就不属于SetInputSettings,所以改了也没用)
  • 函数参数source和visibility未实际使用,硬编码了源名称,灵活性不足

修正后的可用代码示例

from obswebsocket import obsws, requests
from obswebsocket.exceptions import ConnectionFailure, ServerError

# 配置信息,替换成你的OBS地址、端口、密码
IP = "localhost"
PORT = 4455
PASSWORD = "your_password_here"

SOCK = None
INITIALISED = False

def create_connection():
    global INITIALISED, SOCK
    try:
        SOCK = obsws(IP, PORT, PASSWORD)
        SOCK.connect()
        INITIALISED = True
        print("连接OBS成功")
    except ConnectionFailure as e:
        print(f"连接失败: {e}")
        raise

def set_source_visibility(scene_name, source_name, is_visible):
    global SOCK
    if not INITIALISED:
        create_connection()
    
    try:
        # 使用SetSceneItemEnabled接口控制场景中源的可见性
        response = SOCK.call(requests.SetSceneItemEnabled(
            sceneName=scene_name,
            sceneItemName=source_name,
            sceneItemEnabled=is_visible
        ))
        # 检查响应是否成功
        if response.status:
            print(f"已{'显示' if is_visible else '隐藏'}场景[{scene_name}]中的源[{source_name}]")
        else:
            print(f"操作失败: {response.error}")
    except ServerError as e:
        print(f"OBS返回错误: {e}")
    except Exception as e:
        print(f"未知错误: {e}")

# 调用示例:隐藏"主场景"中的"Art 8 - Image"源
set_source_visibility("主场景", "Art 8 - Image", False)
# 调用示例:显示该源
# set_source_visibility("主场景", "Art 8 - Image", True)

关键说明

  1. 接口选择:SetSceneItemEnabled是专门用于控制场景内源可见性的接口,需要传入三个必填参数:
    • sceneName:目标场景的名称(比如OBS里的"主场景")
    • sceneItemName:要控制的源名称
    • sceneItemEnabled:布尔值,True为显示,False为隐藏
  2. 错误捕获:添加了异常捕获逻辑,能帮你定位连接或操作失败的原因(之前无提示是因为没处理异常)
  3. 参数复用:修正了原代码中参数未使用的问题,让函数更通用

内容的提问来源于stack exchange,提问作者Istalri Skolir

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.27 04:31:18