如何用C#向OBS发送录音命令?

问题描述 投票:0回答:1

G HUB 等软件允许用户在不绑定热键的情况下切换流媒体/录制。

enter image description here

我想在用 C# 编写的程序中执行相同的操作。我查看了前端 API 文档,但我仍然不确定如何在 C# 中实现此类任务。有什么想法可以在不使用 websocket 的情况下做到这一点吗?我不想在obs中安装外部插件

c# frontend obs
1个回答
0
投票

在这里稍微修改一下旧帖子,但为未来的案例提供答案。

OBS 现在在其最后几个版本中内置了 websocket,因此可以根据问题要求进行交互,而无需安装插件。因此,向其发送录制命令的最简单方法是设置 websocket 服务器并将 C# 应用程序连接到它。

您可以自己编写 C# 代码来处理请求,但我建议使用库。我推荐 obs-websocket-dotnet,因为它简化了管理连接和发送/接收事件。

首先,您需要确保已在 OBS 中启用 Websocket,您可以在此处找到相关说明。您还需要安装 obs-websocket-dotnet,第一个链接上有相关说明。

要连接到 OBS,您需要执行以下操作:

private void connectToOBS()
{
    OBSWebSocket client = new OBSWebSocket();
    client.ConnectAsync("ws://" + ip + ":" + port, password)
    // IP being the computer OBS is running on, port being OBS's port and
    // password being OBS's websocket password. If running on the same
    // machine then use localhost for the IP
}

要开始录制,您可以使用:

private void startOBSRecording()
{
    client.StartRecord()
}

值得将您的应用程序设置为侦听

onConnect
onDisconnect
事件,这样您的应用程序无论出于何种原因断开连接,都可以自动重新连接到 OBS。

© www.soinside.com 2019 - 2024. All rights reserved.