handleCallInterruptionCallbacks method

Future<void> handleCallInterruptionCallbacks(
  1. void onInterruptionStart()?,
  2. void onInterruptionEnd()?, {
  3. AndroidInterruptionSource androidInterruptionSource = AndroidInterruptionSource.audioFocusAndTelephony,
  4. AndroidAudioAttributesUsageType? androidAudioAttributesUsageType,
  5. AndroidAudioAttributesContentType? androidAudioAttributesContentType,
})

Implementation

Future<void> handleCallInterruptionCallbacks(
  void Function()? onInterruptionStart,
  void Function()? onInterruptionEnd, {
  AndroidInterruptionSource androidInterruptionSource =
      AndroidInterruptionSource.audioFocusAndTelephony,
  AndroidAudioAttributesUsageType? androidAudioAttributesUsageType,
  AndroidAudioAttributesContentType? androidAudioAttributesContentType,
}) async {
  if (!Platform.isAndroid && !Platform.isIOS) {
    throw UnimplementedError(
        'handleCallInterruptionCallbacks is only supported on Android and iOS');
  }

  await WebRTC.invokeMethod(
    'handleCallInterruptionCallbacks',
    <String, dynamic>{
      if (Platform.isAndroid)
        'androidInterruptionSource': androidInterruptionSource.name,
      if (Platform.isAndroid && androidAudioAttributesUsageType != null)
        'androidAudioAttributesUsageType':
            androidAudioAttributesUsageType.name,
      if (Platform.isAndroid && androidAudioAttributesContentType != null)
        'androidAudioAttributesContentType':
            androidAudioAttributesContentType.name,
    },
  );

  final mediaDeviceNative = mediaDevices as MediaDeviceNative;
  mediaDeviceNative.onInterruptionStart = onInterruptionStart;
  mediaDeviceNative.onInterruptionEnd = onInterruptionEnd;
}