<!--
{
  "availability" : [
    "iOS: 13.0.0 -",
    "iPadOS: 13.0.0 -",
    "macCatalyst: 13.0.0 -",
    "macOS: 10.15.0 -",
    "tvOS: 14.0.0 -",
    "visionOS: 1.0.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "CoreHaptics",
  "identifier" : "/documentation/CoreHaptics/CHHapticPatternPlayer",
  "metadataVersion" : "0.1.0",
  "role" : "Protocol",
  "symbol" : {
    "kind" : "Protocol",
    "modules" : [
      "Core Haptics"
    ],
    "preciseIdentifier" : "c:objc(pl)CHHapticPatternPlayer"
  },
  "title" : "CHHapticPatternPlayer"
}
-->

# CHHapticPatternPlayer

A protocol that defines a standard pattern player capable of playing haptic patterns with fixed parameters.

```
protocol CHHapticPatternPlayer : NSObjectProtocol
```

## Overview

Create instances of a pattern player through a [`CHHapticEngine`](/documentation/CoreHaptics/CHHapticEngine) object by calling a factory method such as [`makePlayer(with:)`](/documentation/CoreHaptics/CHHapticEngine/makePlayer(with:)). When you ask a pattern player to play a haptic pattern, the player submits those commands to the haptic engine on your behalf.

Use the advanced pattern player, [`CHHapticAdvancedPatternPlayer`](/documentation/CoreHaptics/CHHapticAdvancedPatternPlayer), when your haptic pattern needs to change during playback, or when you’d like to sync your haptic with a custom audio track. The advanced player allows your app to dynamically change haptic characteristics such as intensity and sharpness through dynamic parameters and parameter curves, capabilities not found in the standard player.

## Topics

### Starting and Stopping Playback

[`start(atTime:)`](/documentation/CoreHaptics/CHHapticPatternPlayer/start(atTime:))

Starts playing the pattern at the specified time.

[`stop(atTime:)`](/documentation/CoreHaptics/CHHapticPatternPlayer/stop(atTime:))

Stops playing the pattern at the specified time.

[`cancel()`](/documentation/CoreHaptics/CHHapticPatternPlayer/cancel())

Stops the pattern player immediately and returns the specified error.

### Sending Parameters to a Haptic

[`sendParameters(_:atTime:)`](/documentation/CoreHaptics/CHHapticPatternPlayer/sendParameters(_:atTime:))

Sends an array of haptic parameters, starting at the specified time.

[`scheduleParameterCurve(_:atTime:)`](/documentation/CoreHaptics/CHHapticPatternPlayer/scheduleParameterCurve(_:atTime:))

Schedules a parameter curve to begin transitioning a parameter at a certain time.

### Silencing Haptic Playback

[`isMuted`](/documentation/CoreHaptics/CHHapticPatternPlayer/isMuted)

A Boolean value that indicates whether to silences all haptic and audio output from the player.



---

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)