<!--
{
  "availability" : [
    "iOS: 17.0.0 -",
    "iPadOS: 17.0.0 -",
    "macCatalyst: 17.0.0 -",
    "macOS: 14.0.0 -",
    "tvOS: 17.0.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "AVFoundation",
  "identifier" : "/documentation/AVFoundation/AVCaptureDevice/performEffect(for:)",
  "metadataVersion" : "0.1.0",
  "role" : "Instance Method",
  "symbol" : {
    "kind" : "Instance Method",
    "modules" : [
      "AVFoundation"
    ],
    "preciseIdentifier" : "c:objc(cs)AVCaptureDevice(im)performEffectForReaction:"
  },
  "title" : "performEffect(for:)"
}
-->

# performEffect(for:)

Performs the specified reaction type on the video stream.

```
func performEffect(for reactionType: AVCaptureReactionType)
```

## Parameters

`reactionType`

A reaction type to perform. Specifying a type that doesn’t exists within the set of [`availableReactionTypes`](/documentation/AVFoundation/AVCaptureDevice/availableReactionTypes) for the device results in an exception.

## Discussion

The entries in the [`reactionEffectsInProgress`](/documentation/AVFoundation/AVCaptureDevice/reactionEffectsInProgress) property may not reflect one-to-one with calls to this method. Depending on reaction style or resource limits, the system may coalesce overlapping reactions of the same type by extending an existing reaction rather than overlaying a new one.

> Note:
> Calling this method has no effect when the value of ``doc://com.apple.avfoundation/documentation/AVFoundation/AVCaptureDevice/canPerformReactionEffects`` is <doc://com.apple.documentation/documentation/Swift/false>. In this case, VoIP apps should transmit and display reactions outside of the video feed.

---

Copyright &copy; 2026 Apple Inc. All rights reserved. | [Terms of Use](https://www.apple.com/legal/internet-services/terms/site.html) | [Privacy Policy](https://www.apple.com/privacy/privacy-policy)