HMSAudioTrackSetting.fromMap constructor

HMSAudioTrackSetting.fromMap(
  1. Map map
)

Implementation

factory HMSAudioTrackSetting.fromMap(Map map) {
  List<HMSAudioNode> nodeList = [];
  List? node = map["audio_source"] ?? null;
  HMSAudioMixerSource? audioMixerSource;
  if (node != null) {
    for (String i in node) {
      if (i == "mic_node") {
        nodeList.add(HMSMicNode());
      } else {
        nodeList.add(HMSAudioFilePlayerNode(i));
      }
    }
    audioMixerSource = HMSAudioMixerSource(node: nodeList);
  }
  HMSAudioMixerSource(node: nodeList);
  HMSAudioMode? audioMode;
  if ((map.containsKey("audio_mode")) && (map["audio_mode"] != null)) {
    audioMode = HMSAudioModeValues.getAudioModeFromName(map["audio_mode"]);
  }

  HMSAndroidPhoneCallState phoneCallState =
      HMSAndroidPhoneCallState.DISABLE_MUTE_ON_VOIP_PHONE_CALL_RING;
  if (map.containsKey("phone_call_state")) {
    if (map["phone_call_state"] != "DISABLE_MUTE_ON_VOIP_PHONE_CALL_RING") {
      phoneCallState =
          HMSAndroidPhoneCallState.ENABLE_MUTE_ON_PHONE_CALL_RING;
    }
  }

  bool isNoiseCancellationEnabled = false;
  if (map.containsKey("enable_noise_cancellation")) {
    isNoiseCancellationEnabled = map["enable_noise_cancellation"];
  }

  return HMSAudioTrackSetting(
      useHardwareAcousticEchoCanceler:
          map['user_hardware_acoustic_echo_canceler'] ?? null,
      audioSource: audioMixerSource,
      trackInitialState: map.containsKey("track_initial_state")
          ? HMSTrackInitStateValue.getHMSTrackInitStateFromName(
              map['track_initial_state'])
          : HMSTrackInitState.UNMUTED,
      audioMode: audioMode,
      phoneCallState: phoneCallState,
      enableNoiseCancellation: isNoiseCancellationEnabled);
}