The Bitmovin Player provides an extensive Event Framework. Listening to an event from the `Player` can be implemented in two different ways. Either using the _Swift-only_ Combine API, or by using the listener approach. Both ways cover listening to the events of all other top-level entities, such as `PlayerView` and `Source`.

## Combine API

Use the _Swift-only_ Combine API to listen to `Player.events`:



### Additional usage

In your SwiftUI views:



## Listener Approach

Use the `PlayerListener` to listen to a `PlayerEvent`: