# How to programmatically detect audio tracks on iOS

This article describes how you can use the AudioTrack API, a sub-API of the MediaTrack API, to detect audio tracks. Implementing this functionality is a common use-case for developers who want to build their own UI to visualize the available audio languages.

## Usage

Listen for the [`ADD_TRACK`](https://docs-preview.optiview.dolby.com/pr-863/theoplayer/v11/api-reference/ios/Structs/AudioTrackListEventTypes) event on [`player.audioTracks`](https://docs-preview.optiview.dolby.com/pr-863/theoplayer/v11/api-reference/ios/Classes/THEOplayer#/s:13THEOplayerSDK0A0C11audioTracksAA14AudioTrackList_pvp) to detect every [`MediaTrack`](https://docs-preview.optiview.dolby.com/pr-863/theoplayer/v11/api-reference/ios/Protocols/MediaTrack) that is added to the player.

```swift
self.player.audioTracks.addEventListener(type: AudioTrackListEventTypes.ADD_TRACK, listener: { addTrackEvent in
    let audioTrack = addTrackEvent.track
})
```

## Related articles

* [How to programmatically enable or disable audio tracks](https://docs-preview.optiview.dolby.com/pr-863/theoplayer/how-to-guides/ios/media-tracks/enable-disable-audio-tracks.md)
* [How to programmatically detect audio track changes](https://docs-preview.optiview.dolby.com/pr-863/theoplayer/how-to-guides/ios/media-tracks/detect-audio-track-changes.md)
* [How to programmatically detect video track qualities](https://docs-preview.optiview.dolby.com/pr-863/theoplayer/how-to-guides/ios/media-tracks/detect-video-track-qualities.md)
* [How to build a chromeless UI](https://docs-preview.optiview.dolby.com/pr-863/theoplayer/how-to-guides/ios/ui/build-chromeless-ui.md)
