|
1 |
| -import { Video } from '@signalwire/realtime-api' |
| 1 | +import { Video, SignalWire } from '@signalwire/realtime-api' |
2 | 2 |
|
3 | 3 | async function run() {
|
4 | 4 | try {
|
5 |
| - const video = new Video.Client({ |
6 |
| - // @ts-expect-error |
| 5 | + const client = await SignalWire({ |
7 | 6 | host: process.env.HOST || 'relay.swire.io',
|
8 | 7 | project: process.env.PROJECT as string,
|
9 | 8 | token: process.env.TOKEN as string,
|
10 | 9 | debug: {
|
11 |
| - logWsTraffic: true, |
| 10 | + // logWsTraffic: true, |
12 | 11 | },
|
13 | 12 | })
|
14 | 13 |
|
15 |
| - const roomSessionHandler = (room: Video.RoomSession) => { |
16 |
| - console.log('Room started --->', room.id, room.name, room.members) |
17 |
| - room.on('room.subscribed', (room) => { |
18 |
| - console.log('Room Subscribed --->', room.id, room.members) |
19 |
| - }) |
| 14 | + const unsubVideo = await client.video.listen({ |
| 15 | + onRoomStarted(room) { |
| 16 | + console.log('🟢 onRoomStarted 🟢', room.id, room.name) |
| 17 | + roomSessionHandler(room) |
| 18 | + }, |
| 19 | + onRoomEnded(room) { |
| 20 | + console.log('🔴 onRoomEnded 🔴', room.id, room.name) |
| 21 | + }, |
| 22 | + }) |
20 | 23 |
|
21 |
| - room.on('member.updated', () => { |
22 |
| - console.log('Member updated --->') |
23 |
| - }) |
| 24 | + const roomSessionHandler = async (room: Video.RoomSession) => { |
| 25 | + const unsubRoom = await room.listen({ |
| 26 | + onRoomSubscribed: (room) => { |
| 27 | + console.log('onRoomSubscribed', room.id, room.name) |
| 28 | + }, |
| 29 | + onRoomStarted: (room) => { |
| 30 | + console.log('onRoomStarted', room.id, room.name) |
| 31 | + }, |
| 32 | + onRoomUpdated: (room) => { |
| 33 | + console.log('onRoomUpdated', room.id, room.name) |
| 34 | + }, |
| 35 | + onRoomEnded: (room) => { |
| 36 | + console.log('onRoomEnded', room.id, room.name) |
| 37 | + }, |
| 38 | + onMemberJoined: async (member) => { |
| 39 | + console.log('onMemberJoined --->', member.id, member.name) |
24 | 40 |
|
25 |
| - room.on('member.joined', (member) => { |
26 |
| - console.log('Member joined --->', member.id, member.name) |
27 |
| - }) |
| 41 | + const play = await room |
| 42 | + .play({ |
| 43 | + url: 'https://cdn.signalwire.com/default-music/welcome.mp3', |
| 44 | + listen: { |
| 45 | + onStarted: (playback) => { |
| 46 | + console.log('onStarted', playback.id, playback.url) |
| 47 | + }, |
| 48 | + onUpdated: (playback) => { |
| 49 | + console.log('onUpdated', playback.id, playback.url) |
| 50 | + }, |
| 51 | + onEnded: (playback) => { |
| 52 | + console.log('onEnded', playback.id, playback.url) |
| 53 | + }, |
| 54 | + }, |
| 55 | + }) |
| 56 | + .onStarted() |
| 57 | + console.log('play', play.id) |
| 58 | + |
| 59 | + setTimeout(async () => { |
| 60 | + await play.pause() |
28 | 61 |
|
29 |
| - room.on('member.left', (member) => { |
30 |
| - console.log('Member left --->', member.id, member.name) |
| 62 | + setTimeout(async () => { |
| 63 | + await play.stop() |
| 64 | + }, 5000) |
| 65 | + }, 10000) |
| 66 | + }, |
| 67 | + onMemberUpdated: (member) => { |
| 68 | + console.log('onMemberUpdated', member.id, member.name) |
| 69 | + }, |
| 70 | + onMemberTalking: (member) => { |
| 71 | + console.log('onMemberTalking', member.id, member.name) |
| 72 | + }, |
| 73 | + onMemberLeft: (member) => { |
| 74 | + console.log('onMemberLeft', member.id, member.name) |
| 75 | + }, |
| 76 | + onPlaybackStarted: (playback) => { |
| 77 | + console.log('onPlaybackStarted', playback.id, playback.url) |
| 78 | + }, |
| 79 | + onPlaybackUpdated: (playback) => { |
| 80 | + console.log('onPlaybackUpdated', playback.id, playback.url) |
| 81 | + }, |
| 82 | + onPlaybackEnded: (playback) => { |
| 83 | + console.log('onPlaybackEnded', playback.id, playback.url) |
| 84 | + }, |
31 | 85 | })
|
32 | 86 | }
|
33 |
| - video.on('room.started', roomSessionHandler) |
34 |
| - |
35 |
| - video.on('room.ended', (room) => { |
36 |
| - console.log('🔴 ROOOM ENDED 🔴', `${room}`, room.name) |
37 |
| - }) |
38 | 87 |
|
39 |
| - video._session.on('session.connected', () => { |
| 88 | + // @ts-expect-error |
| 89 | + client.video._client.session.on('session.connected', () => { |
40 | 90 | console.log('SESSION CONNECTED!')
|
41 | 91 | })
|
42 | 92 |
|
43 | 93 | console.log('Client Running..')
|
44 | 94 |
|
45 |
| - const { roomSessions } = await video.getRoomSessions() |
| 95 | + const { roomSessions } = await client.video.getRoomSessions() |
46 | 96 |
|
47 |
| - roomSessions.forEach(async (room: any) => { |
| 97 | + roomSessions.forEach(async (room: Video.RoomSession) => { |
48 | 98 | console.log('>> Room Session: ', room.id, room.displayName)
|
49 | 99 | roomSessionHandler(room)
|
50 | 100 |
|
51 | 101 | const r = await room.getMembers()
|
52 | 102 | console.log('Members:', r)
|
53 | 103 | // await room.removeAllMembers()
|
54 | 104 |
|
55 |
| - const { roomSession } = await video.getRoomSessionById(room.id) |
| 105 | + const { roomSession } = await client.video.getRoomSessionById(room.id) |
56 | 106 | console.log('Room Session By ID:', roomSession.displayName)
|
57 | 107 | })
|
58 | 108 | } catch (error) {
|
|
0 commit comments