---
title: CMHeadphoneMotionManager
framework: coremotion
role: symbol
role_heading: Class
path: coremotion/cmheadphonemotionmanager
---

# CMHeadphoneMotionManager

An object that starts and manages headphone motion services.

## Declaration

```swift
class CMHeadphoneMotionManager
```

## Mentioned in

Getting processed device-motion data

## Overview

Overview This class delivers headphone motion updates to your app. Use an instance of the manager to determine if the device supports motion, and to start and stop updates. Adopt the CMHeadphoneMotionManagerDelegate protocol to receive and respond to motion updates. Before using this class, check isDeviceMotionAvailable to make sure the feature is available. important: In iOS and macOS, include the NSMotionUsageDescription key in your app’s Info.plist file. If this key is absent, the system crashes your app when you start device-motion updates. Identify the coordinate axes To interpret attitude data, you need to know the orientation of the device’s coordinate axes. The following illustration shows the positive x-axis, positive y-axis, and positive z-axis for motion-capable Apple headphones.

## Topics

### Checking Availability

- [isDeviceMotionAvailable](coremotion/cmheadphonemotionmanager/isdevicemotionavailable.md)
- [isDeviceMotionActive](coremotion/cmheadphonemotionmanager/isdevicemotionactive.md)
- [isConnectionStatusActive](coremotion/cmheadphonemotionmanager/isconnectionstatusactive.md)
- [authorizationStatus()](coremotion/cmheadphonemotionmanager/authorizationstatus().md)

### Starting and Stopping Updates

- [startDeviceMotionUpdates()](coremotion/cmheadphonemotionmanager/startdevicemotionupdates().md)
- [startDeviceMotionUpdates(to:withHandler:)](coremotion/cmheadphonemotionmanager/startdevicemotionupdates(to:withhandler:).md)
- [startConnectionStatusUpdates()](coremotion/cmheadphonemotionmanager/startconnectionstatusupdates().md)
- [stopDeviceMotionUpdates()](coremotion/cmheadphonemotionmanager/stopdevicemotionupdates().md)
- [stopConnectionStatusUpdates()](coremotion/cmheadphonemotionmanager/stopconnectionstatusupdates().md)

### Getting the Delegate

- [delegate](coremotion/cmheadphonemotionmanager/delegate.md)
- [CMHeadphoneMotionManagerDelegate](coremotion/cmheadphonemotionmanagerdelegate.md)

### Getting Device-Motion Information

- [deviceMotion](coremotion/cmheadphonemotionmanager/devicemotion.md)

## Relationships

### Inherits From

- [NSObject](objectivec/nsobject-swift.class.md)

### Conforms To

- [CVarArg](swift/cvararg.md)
- [CustomDebugStringConvertible](swift/customdebugstringconvertible.md)
- [CustomStringConvertible](swift/customstringconvertible.md)
- [Equatable](swift/equatable.md)
- [Hashable](swift/hashable.md)
- [NSObjectProtocol](objectivec/nsobjectprotocol.md)

## See Also

### Device motion

- [Getting processed device-motion data](coremotion/getting-processed-device-motion-data.md)
- [CMDeviceMotion](coremotion/cmdevicemotion.md)
- [CMAttitude](coremotion/cmattitude.md)
- [CMAttitudeReferenceFrame](coremotion/cmattitudereferenceframe.md)
