startRecording

View as Markdown

startRecording

Starts the recording of the room. You can use the returned RoomSessionRecording object to control the recording (e.g., pause, resume, stop).

Parameters

params
object

Object containing the parameters of the method.

listen
object

Object of event listeners. See RoomSessionRecording Events for a list of valid events.

Returns

Promise<RoomSessionRecording>

A promise that resolves to a RoomSessionRecording object.

Example

In this example, we wait for a room to start and then start a recording in that room. We then stop the recording after 5 seconds. This example assumes that there is a RoomSession already active and that members are joining the room.

1import { SignalWire } from "@signalwire/realtime-api";
2
3// Initialize the SignalWire client
4const client = await SignalWire({ project: "ProjectID Here", token: "Token Here" });
5
6// Access video client from the main client
7const videoClient = client.video;
8
9// Setup listener for when a room starts
10await videoClient.listen({
11 onRoomStarted: async (roomSession) => {
12 console.log("Room started", roomSession.displayName);
13
14 let roomRecording = roomSession.startRecording({
15 listen: {
16 onStarted: () => {
17 console.log("Recording started");
18 },
19 onUpdated: (recording) => {
20 console.log("Recording updated", recording.state);
21 },
22 onEnded: (recording) => {
23 console.log(`Recording ended.
24 Recording State: ${recording.state}.
25 Recording Id: ${recording.id}`);
26 },
27 }
28 })
29 setTimeout( () => {
30 roomRecording.stop();
31 }, 5000);
32
33 // Setup listener for when a member joins
34 await roomSession.listen({
35 onMemberJoined: async (member) => {
36 console.log("Member joined", member.name);
37
38 },
39 onMemberLeft: (member) => {
40 console.log("Member left", member.name);
41 },
42 });
43 },
44 onRoomEnded: async (roomSession) => {
45 console.log("Room ended", roomSession.displayName);
46 }
47});