setParticipantMedia function
Future<HeadlessActionResult>
setParticipantMedia(
- ModerationParameters parameters, {
- String id = '',
- String name = '',
- required String kind,
Implementation
Future<HeadlessActionResult> setParticipantMedia(
ModerationParameters parameters, {
String id = '',
String name = '',
required String kind,
}) async {
final permissions = getModerationPermissions(parameters);
if (!permissions.canControlMedia) {
return const HeadlessActionResult.failure(
'You are not allowed to control media for other participants.');
}
final participant = _findParticipant(parameters, id: id, name: name);
if (participant == null) {
return const HeadlessActionResult.failure(
'That participant is not in the room.');
}
if (participant.islevel == '2') {
return const HeadlessActionResult.failure(
'A host’s media cannot be turned off.');
}
if (parameters.socket == null || parameters.roomName.isEmpty) {
return const HeadlessActionResult.failure(
'The room connection is not ready.');
}
try {
parameters.socket!.emit('controlMedia', {
'participantId': participant.id,
'participantName': participant.name,
'type': kind,
'roomName': parameters.roomName,
});
return const HeadlessActionResult.success();
} catch (error) {
return HeadlessActionResult.failure('The media control failed: $error');
}
}