1010async def main ():
1111 room = livekit .Room ()
1212
13- audio_stream = None
14- video_stream = None
15-
1613 @room .on ("participant_connected" )
1714 def on_participant_connected (participant : livekit .RemoteParticipant ):
1815 logging .info (
@@ -23,6 +20,18 @@ def on_participant_disconnected(participant: livekit.RemoteParticipant):
2320 logging .info ("participant disconnected: %s %s" ,
2421 participant .sid , participant .identity )
2522
23+ @room .on ("local_track_published" )
24+ def on_local_track_published (publication : livekit .LocalTrackPublication , track : livekit .LocalAudioTrack | livekit .LocalVideoTrack ):
25+ logging .info ("local track published: %s" , publication .sid )
26+
27+ @room .on ("active_speakers_changed" )
28+ def on_active_speakers_changed (speakers : list [livekit .Participant ]):
29+ logging .info ("active speakers changed: %s" , speakers )
30+
31+ @room .on ("local_track_unpublished" )
32+ def on_local_track_unpublished (publication : livekit .LocalTrackPublication ):
33+ logging .info ("local track unpublished: %s" , publication .sid )
34+
2635 @room .on ("track_published" )
2736 def on_track_published (publication : livekit .LocalTrackPublication , participant : livekit .RemoteParticipant ):
2837 logging .info ("track published: %s from participant %s (%s)" ,
@@ -32,6 +41,10 @@ def on_track_published(publication: livekit.LocalTrackPublication, participant:
3241 def on_track_unpublished (publication : livekit .LocalTrackPublication , participant : livekit .RemoteParticipant ):
3342 logging .info ("track unpublished: %s" , publication .sid )
3443
44+ # Keep a reference to the streams, otherwise they will be disposed
45+ audio_stream = None
46+ video_stream = None
47+
3548 @room .on ("track_subscribed" )
3649 def on_track_subscribed (track : livekit .Track , publication : livekit .RemoteTrackPublication , participant : livekit .RemoteParticipant ):
3750 logging .info ("track subscribed: %s" , publication .sid )
@@ -61,6 +74,35 @@ def on_track_unsubscribed(track: livekit.Track, publication: livekit.RemoteTrack
6174 def on_data_received (data : bytes , kind : livekit .DataPacketKind , participant : livekit .Participant ):
6275 logging .info ("received data from %s: %s" , participant .identity , data )
6376
77+ @room .on ("connection_quality_changed" )
78+ def on_connection_quality_changed (participant : livekit .Participant , quality : livekit .ConnectionQuality ):
79+ logging .info ("connection quality changed for %s" , participant .identity )
80+
81+ @room .on ("track_subscription_failed" )
82+ def on_track_subscription_failed (participant : livekit .RemoteParticipant , track_sid : str , error : str ):
83+ logging .info ("track subscription failed: %s %s" ,
84+ participant .identity , error )
85+
86+ @room .on ("connection_state_changed" )
87+ def on_connection_state_changed (state : livekit .ConnectionState ):
88+ logging .info ("connection state changed: %s" , state )
89+
90+ @room .on ("connected" )
91+ def on_connected ():
92+ logging .info ("connected" )
93+
94+ @room .on ("disconnected" )
95+ def on_disconnected ():
96+ logging .info ("disconnected" )
97+
98+ @room .on ("reconnecting" )
99+ def on_reconnecting ():
100+ logging .info ("reconnecting" )
101+
102+ @room .on ("reconnected" )
103+ def on_reconnected ():
104+ logging .info ("reconnected" )
105+
64106 try :
65107 logging .info ("connecting to %s" , URL )
66108 await room .connect (URL , TOKEN )
0 commit comments