Skip to main content
Version: 1.1.x

Media Events - Flutter

VideoSDK provides multiple types of events which can be listened to know the about the participant's media status in the meeting.

Here are the events which specifically relate to the stream.

Events.streamEnabled

  • This event is triggered whenever a participant's video, audio or screen share stream is enabled.
  • This event can be subscribed from the Participant object.

Events.streamDisabled

  • This event is triggered whenever a participant's video, audio or screen share stream is disabled.
  • This event can be subscribed from the Participant object.

Events.streamPause

  • This event is triggered whenever a participant's video, audio or screen share stream is paused.
  • This event can be subscribed from the Participant object.

Events.streamResumed

  • This event is triggered whenever a participant's video, audio or screen share stream is resumed.
  • This event can be subscribed from the Participant object.

Example

Here is the usage of all the events mentioned in this page.

import 'package:flutter/material.dart';
import 'package:videosdk/videosdk.dart';

class ParticipantTile extends StatefulWidget {
final Participant participant;
...
}

class _ParticipantTileState extends State<ParticipantTile> {
@override
void initState() {
...

setupParticipantEventListener();
}

@override
Widget build(BuildContext context) {
return YourParticipantTileWidget();
}

void setupParticipantEventListener() {
widget.participant.on(Events.streamEnabled, (Stream stream){
if(stream.kind == "video"){
// Participant turned on video
}else if(stream.kind == "audio"){
// Participant turned on audio
}else if(stream.kind == "share"){
// Participant started screenshare
}
});

widget.participant.on(Events.streamDisabled, (Stream stream){
if(stream.kind == "video"){
// Participant turned off video
}else if(stream.kind == "audio"){
// Participant turned off audio
}else if(stream.kind == "share"){
// Participant stopped screenshare
}
});

widget.participant.on(Events.streamPaused, (Stream stream){
if(stream.kind == "video"){
// Participant video pause
}else if(stream.kind == "audio"){
// Participant audio pause
}else if(stream.kind == "share"){
// Participant screenshare paused
}
});

widget.participant.on(Events.streamResumed, (Stream stream){
if(stream.kind == "video"){
// Participant video resume
}else if(stream.kind == "audio"){
// Participant audio resume
}else if(stream.kind == "share"){
// Participant screenshare resumed
}
});
}
}

API Reference

The API references for all the methods and events utilized in this guide are provided below.

Got a Question? Ask us on discord