仅当用户在 twilio 中输入录制按钮时才录制房间中的视频通话

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

我想做的是录制一个用户和另一个用户之间正在进行的视频通话。一旦用户单击录制按钮,视频录制就会开始。但是,我遇到以下问题

Unable to fetch record↵Invalid RecordingSid parameter

我使用rails作为api,使用reactjs作为前端。在 Rails 方面,我做了以下工作

def record
    @client = client_authenticate()
    puts params["room_sid"]
    # RM5XXXXXXX
    recording = @client.video.recordings(params["room_sid"]).fetch
    puts recording.track_name
end

前端侧

const Controls = ({ handleLeaveRoom, handleMute, handleRecord, mute }) => (
  <Wrapper>
    <Icon icon={mute ? faMicrophoneSlash : faMicrophone} size="2x" onClick={handleMute} />
    <HangCall icon={faPhone} size="2x" onClick={handleLeaveRoom} />
    <Icon icon={faDesktop} size="2x" />
    <Icon icon={faCloud} size="2x" onClick={handleRecord} />
  </Wrapper>
);

const handleRecord = async () => {
    try {
      const response = await fetch(`${API_BASE}/twilio/record`, {
        method: "POST",
        body: JSON.stringify({ room_sid: room.activeRoom.sid }),
        headers: {
          "Content-Type": "application/json"
        }
      });
      console.log("requested");
      const jsonResponse = await response.json();
      console.log("jsonResponse", jsonResponse);
    } catch (e) {
      console.error("e", e);
    }
  }

简而言之,我想在用户按下云端录制按钮时录制正在进行的视频通话,但遇到了上述问题。我发送我们加入房间时收到的 sid。

javascript reactjs twilio twilio-api
2个回答
1
投票

这里是 Twilio 开发者布道者。

我在文档中找不到任何内容表明您可以在视频中途开始录制。据我所知,您需要 通过 REST API 创建房间并将

recordParticipantsOnConnect
参数设置为
true
,一旦参与者加入,就会记录他们。

在 Rails 端的代码中,您尝试使用房间 SID 请求尚不存在的录音,该房间 SID 是房间的标识符,不适用于录音。这就是该请求失败的原因。

没有 API 端点可以中途开始录制。


0
投票

我认为现在可以通过录制规则 API 实现这一点:https://www.twilio.com/docs/video/api/recording-rules

我对此进行了实验,发现当我这样做时录音就会开始:

curl -XPOST 'https://video.twilio.com/v1/Rooms/RMxxx/RecordingRules' --data-urlencode Rules='[{"type": "include", "all": true}]' -u 'xxx:xxx'

当我执行相同的命令并将

include
替换为
exclude
时停止。

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