setRoomMediaPolicy function
Future<HeadlessActionResult>
setRoomMediaPolicy(
- MediasfuParameters parameters, {
- String? audio,
- String? video,
- String? chat,
Implementation
Future<HeadlessActionResult> setRoomMediaPolicy(
MediasfuParameters parameters, {
String? audio,
String? video,
String? screenshare,
String? chat,
}) async {
if (parameters.islevel != '2') {
return const HeadlessActionResult.failure(
'Only the host can change room settings.');
}
if (parameters.socket == null) {
return const HeadlessActionResult.failure(
'The room connection is not ready yet.');
}
for (final value in <String?>[audio, video, screenshare, chat]) {
if (value != null && !_policyValues.contains(value)) {
return HeadlessActionResult.failure(
'Unsupported room policy value: $value');
}
}
try {
await modifySettings(ModifySettingsOptions(
showAlert: parameters.showAlert,
roomName: parameters.roomName,
audioSet: audio ?? parameters.audioSetting,
videoSet: video ?? parameters.videoSetting,
screenshareSet: screenshare ?? parameters.screenshareSetting,
chatSet: chat ?? parameters.chatSetting,
socket: parameters.socket,
updateAudioSetting: parameters.updateAudioSetting,
updateVideoSetting: parameters.updateVideoSetting,
updateScreenshareSetting: parameters.updateScreenshareSetting,
updateChatSetting: parameters.updateChatSetting,
updateIsSettingsModalVisible: parameters.updateIsSettingsModalVisible,
));
return const HeadlessActionResult.success();
} catch (error) {
return HeadlessActionResult.failure(
'The room settings could not be updated: $error');
}
}