# Player on iOS

The Player API is the top-level API. This API exposes:

* basic functions to manipulate video playback, such as start and pause;
* properties to check states and values, such as the playhead position;
* events to track changes.

## Events

As a developer, you can programmatically attach event listeners to different APIs. Event listeners are often used to implement a custom UI, or to implement a custom analytics integration.

The THEOplayer API exposes many events across different interfaces, as can be seen in the graphic below. Furthermore, most events exist in all SDKs (Web, iOS-based, Android-based and Roku).

![THEOplayer API Interfaces and Events](/docs/assets/images/analytics-events-185d6ab52b556af08d8300b545ae5876.png "THEOplayer API Interfaces and Events")

Our APIs are continuously evolving, and so is our list of events. Refer to [the `PlayerEventTypes` API reference](https://optiview.dolby.com/docs/theoplayer/v11/api-reference/ios/Structs/PlayerEventTypes) to go through the latest set of player events, and to [the iOS SDK API reference](https://optiview.dolby.com/docs/theoplayer/v11/api-reference/ios) for the events of the other interfaces.

## Related articles

* [How do you know when a stream or an advertisement is playing?](https://optiview.dolby.com/docs/theoplayer/how-to-guides/ios/player/detect-stream-or-ad-playing.md)
* [How to measure the time-to-first-frame](https://optiview.dolby.com/docs/theoplayer/how-to-guides/ios/player/measure-time-to-first-frame.md)
* [How to track the first play(ing) event](https://optiview.dolby.com/docs/theoplayer/how-to-guides/ios/player/track-first-playing-event.md)
* [How to track player states](https://optiview.dolby.com/docs/theoplayer/how-to-guides/ios/player/track-player-states.md)
