unmuteMicrophone static method

Future<void> unmuteMicrophone({
  1. required BuildContext context,
  2. required RoomParticipantStore participantStore,
})

Implementation

static Future<void> unmuteMicrophone({
  required BuildContext context,
  required RoomParticipantStore participantStore,
}) async {
  final deviceStore = DeviceStore.shared;

  final hasPermission = await _checkAndRequestPermission(
    context: context,
    permissionType: PermissionType.microphone,
    deniedMessage: RoomLocalizations.of(context)!.roomkit_err_n1105_mic_no_permission,
  );

  if (!hasPermission) return;

  final deviceResult = await deviceStore.openLocalMicrophone();
  if (!deviceResult.isSuccess && context.mounted) {
    if (deviceResult.errorCode == RoomError.openMicrophoneNeedPermissionFromAdmin.code) {
      Toast.warning(
        context,
        ErrorLocalized.convertToErrorMessage(deviceResult.errorCode, deviceResult.errorMessage),
        useRootOverlay: true,
      );
    } else {
      Toast.error(
        context,
        ErrorLocalized.convertToErrorMessage(deviceResult.errorCode, deviceResult.errorMessage),
        useRootOverlay: true,
      );
    }
    return;
  }

  final result = await participantStore.unmuteMicrophone();
  if (!result.isSuccess && context.mounted) {
    if (result.errorCode == RoomError.openMicrophoneNeedPermissionFromAdmin.code) {
      Toast.warning(
        context,
        ErrorLocalized.convertToErrorMessage(result.errorCode, result.errorMessage),
        useRootOverlay: true,
      );
    } else {
      Toast.error(
        context,
        ErrorLocalized.convertToErrorMessage(result.errorCode, result.errorMessage),
        useRootOverlay: true,
      );
    }
  }
}