<!--
{
  "availability" : [
    "tvOS: -",
    "visionOS: -"
  ],
  "documentType" : "symbol",
  "framework" : "AVKit",
  "identifier" : "/documentation/AVKit/AVInterfaceMediaSelectionControllable",
  "metadataVersion" : "0.1.0",
  "role" : "Protocol",
  "symbol" : {
    "kind" : "Protocol",
    "modules" : [
      "AVKit"
    ],
    "preciseIdentifier" : "c:objc(pl)AVInterfaceMediaSelectionControllable"
  },
  "title" : "AVInterfaceMediaSelectionControllable"
}
-->

# AVInterfaceMediaSelectionControllable

Provides audio and subtitle selection capabilities for media content.

```
@protocol AVInterfaceMediaSelectionControllable <NSObject>
```

## Topics

### Instance Properties

[`@property (nonatomic, copy, readonly) NSArray<AVInterfaceMediaSelectionOptionSource *> * audioOptions;`](/documentation/AVKit/AVInterfaceMediaSelectionControllable/audioOptions)

Array of available audio track options for selection. This includes all audio streams provided by the media source such as different languages, audio descriptions, director’s commentary, and alternative audio mixes.
Options are ordered by preference with the primary language or default audio track typically appearing first. May be empty for content without selectable audio options. Must be key-value observable.

[`@property (nonatomic, strong, readwrite, nullable) AVInterfaceMediaSelectionOptionSource * currentAudioOption;`](/documentation/AVKit/AVInterfaceMediaSelectionControllable/currentAudioOption)

Currently selected audio track for playback. Setting this property changes the active audio stream.
This includes language variants, audio descriptions, director’s commentary, and other audio content. Must be key-value observable.

[`@property (nonatomic, strong, readwrite, nullable) AVInterfaceMediaSelectionOptionSource * currentLegibleOption;`](/documentation/AVKit/AVInterfaceMediaSelectionControllable/currentLegibleOption)

Currently selected subtitle or caption track. Setting this property controls text overlay presentation.
This includes subtitles in different languages, closed captions, and forced narrative text. Set to nil to disable text display. Must be key-value observable.

[`@property (nonatomic, copy, readonly) NSArray<AVInterfaceMediaSelectionOptionSource *> * legibleOptions;`](/documentation/AVKit/AVInterfaceMediaSelectionControllable/legibleOptions)

Array of available subtitle and caption track options for selection. This includes text overlays in different languages, closed captions for accessibility, forced narrative subtitles, and sign language interpretation tracks.
May be empty for content without text tracks. Must be key-value observable.

## Relationships

### Inherits From

[`NSObjectProtocol`](/documentation/ObjectiveC/NSObjectProtocol)

### Inherited By

[`AVInterfaceControllable`](/documentation/AVKit/AVInterfaceControllable)

---

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)