---
title: "setCategory(_:mode:policy:options:)"
framework: avfaudio
role: symbol
role_heading: Instance Method
path: "avfaudio/avaudiosession/setcategory(_:mode:policy:options:)"
---

# setCategory(_:mode:policy:options:)

Sets the session category, mode, route-sharing policy, and options.

## Declaration

```swift
func setCategory(_ category: AVAudioSession.Category, mode: AVAudioSession.Mode, policy: AVAudioSession.RouteSharingPolicy, options: AVAudioSession.CategoryOptions = []) throws
```

## Parameters

- `category`: The category to apply to the audio session. See doc://com.apple.avfaudio/documentation/AVFAudio/AVAudioSession/Category-swift.struct for supported category values.
- `mode`: The audio session mode to apply to the audio session. For a list of values, see doc://com.apple.avfaudio/documentation/AVFAudio/AVAudioSession/Mode-swift.struct.
- `policy`: The route-sharing policy to apply to the audio session. For a list of values, see doc://com.apple.avfaudio/documentation/AVFAudio/AVAudioSession/RouteSharingPolicy-swift.enum.
- `options`: A mask of additional options for handling audio. For a list of constants, see doc://com.apple.avfaudio/documentation/AVFAudio/AVAudioSession/CategoryOptions-swift.struct.

## Discussion

Discussion You specify options only with a default routing policy. With a long-form route-sharing policy, you can use the playback category and the default, moviePlayback, and spokenAudio modes.

## See Also

### Configuring standard audio behaviors

- [setCategory(_:mode:options:)](avfaudio/avaudiosession/setcategory(_:mode:options:).md)
- [setCategory(_:options:)](avfaudio/avaudiosession/setcategory(_:options:).md)
- [setCategory(_:)](avfaudio/avaudiosession/setcategory(_:).md)
- [setMode(_:)](avfaudio/avaudiosession/setmode(_:).md)
