G HUB 等软件允许用户在不绑定热键的情况下切换流媒体/录制。
我想在用 C# 编写的程序中执行相同的操作。我查看了前端 API 文档,但我仍然不确定如何在 C# 中实现此类任务。有什么想法可以在不使用 websocket 的情况下做到这一点吗?我不想在obs中安装外部插件
在这里稍微修改一下旧帖子,但为未来的案例提供答案。
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。