getRecordings

View as Markdown

getRecordings

Obtains a list of recordings for the current room session.

Returns

Promise<{ recordings: RoomSessionRecording }>

A promise that resolves to an object containing the list of RoomSessionRecording objects.

Example

In this example, we wait for a room to start and then start a recording in that room. After 5 seconds, we then use getRecordings to get the list of recording objects. We then loop through the list of recordings and print out the state and id of each recording. Afterwards, we stop the recording. 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 the 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 })
30 setTimeout( async () => {
31 // Get the roomSession recordings
32 let rooomRecordings = await roomSession.getRecordings();
33 rooomRecordings.recordings.forEach(recording => {
34 console.log("Active Recording", recording.id, recording.state);
35 });
36
37 // Stop recording after 5 seconds
38 roomRecording.stop();
39 }, 5000);
40
41 // Setup listener for when a member joins
42 await roomSession.listen({
43 onMemberJoined: async (member) => {
44 console.log("Member joined", member.name);
45
46 },
47 onMemberLeft: (member) => {
48 console.log("Member left", member.name);
49 },
50 });
51 },
52 onRoomEnded: async (roomSession) => {
53 console.log("Room ended", roomSession.displayName);
54 }
55});