Overview
The Native SDK uses delegation to respond to user action and video playback events. The lifecycle event delegate method provides events to signal changes in playback state.
iOS frameworks
Your iOS app is a combination of custom code, the Native SDK framework and the system frameworks. These frameworks use a model-view-controller design pattern along with delegation to provide functionality for your app.

Common lifecycle events
This diagram shows some of the common lifecycle events and how they interact with the components in the Brightcove Player SDK for iOS.

Lifecycle events
The default Lifecycle events are declared in the BCOVPlaybackSession.h file. Below is a list of the default lifecycle events from the Brightcove Player SDK for iOS that you can listen for and act upon.
Select any event below to see the associated engineering notes.
- kBCOVPlaybackSessionLifecycleEventReady
- kBCOVPlaybackSessionLifecycleEventFail
- kBCOVPlaybackSessionLifecycleEventPlay
- kBCOVPlaybackSessionLifecycleEventPause
- kBCOVPlaybackSessionLifecycleEventFailedToPlayToEndTime
- kBCOVPlaybackSessionLifecycleEventResumeBegin
- kBCOVPlaybackSessionLifecycleEventResumeComplete
- kBCOVPlaybackSessionLifecycleEventResumeFail
- kBCOVPlaybackSessionLifecycleEventEnd
- kBCOVPlaybackSessionLifecycleEventPlaybackStalled
- kBCOVPlaybackSessionLifecycleEventPlaybackRecovered
- kBCOVPlaybackSessionLifecycleEventPlaybackBufferEmpty
- kBCOVPlaybackSessionLifecycleEventPlaybackLikelyToKeepUp
- kBCOVPlaybackSessionLifecycleEventTerminate
- kBCOVPlaybackSessionLifecycleEventError
- kBCOVPlaybackSessionEventKeyError
- kBCOVPlaybackSessionEventKeyPreviousTime
- kBCOVPlaybackSessionEventKeyCurrentTime
- kBCOVPlaybackSessionEventKeyCuePoints
- kBCOVPlaybackSessionErrorDomain
- kBCOVPlaybackSessionErrorCodeLoadFailed
- kBCOVPlaybackSessionErrorCodeFailedToPlayToEnd
- kBCOVPlaybackSessionErrorCodeNoPlayableSource
You now have a basic understanding of the Brightcove Player SDK for iOS. Next, you can walk through the steps of building an app which uses the Player SDK.