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

record video call in a room only when user enters record button in twilio

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

Unable to fetch record↵Invalid RecordingSid parameter

我正在为 api 使用 rails,为前端使用 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。

这里是 Twilio 开发人员布道者。

我在文档中找不到任何内容表明您可以在视频中途开始录制。据我所知,您需要 create the room via the REST API and set the recordParticipantsOnConnect parameter to true,这将在参与者加入后对其进行记录。

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

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