<!--
{
  "availability" : [
    "iOS: 15.0.0 -",
    "iPadOS: 15.0.0 -",
    "macCatalyst: 15.0.0 -",
    "macOS: 12.0.0 -",
    "tvOS: 15.0.0 -",
    "visionOS: 1.0.0 -",
    "watchOS: 8.0.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "AVFoundation",
  "identifier" : "/documentation/AVFoundation/AVPlayerInterstitialEventMonitor",
  "metadataVersion" : "0.1.0",
  "role" : "Class",
  "symbol" : {
    "kind" : "Class",
    "modules" : [
      "AVFoundation"
    ],
    "preciseIdentifier" : "c:objc(cs)AVPlayerInterstitialEventMonitor"
  },
  "title" : "AVPlayerInterstitialEventMonitor"
}
-->

# AVPlayerInterstitialEventMonitor

An object that monitors the scheduling and progress of interstitial events.

```
class AVPlayerInterstitialEventMonitor
```

## Overview

This object monitors interstitial events that exist within the content of the primary items, such as events defined by an HLS media playlist, and also events managed by an [`AVPlayerInterstitialEventController`](/documentation/AVFoundation/AVPlayerInterstitialEventController) object. You can access the schedule of interstitial events through the [`events`](/documentation/AVFoundation/AVPlayerInterstitialEventMonitor/events) property.

When it’s time to present an interstitial event, the system suspends playback of the primary item and changes its player’s [`timeControlStatus`](/documentation/AVFoundation/AVPlayer/timeControlStatus-swift.property) to [`AVPlayer.TimeControlStatus.waitingToPlayAtSpecifiedRate`](/documentation/AVFoundation/AVPlayer/TimeControlStatus-swift.enum/waitingToPlayAtSpecifiedRate) with a [`reasonForWaitingToPlay`](/documentation/AVFoundation/AVPlayer/reasonForWaitingToPlay) value of [`interstitialEvent`](/documentation/AVFoundation/AVPlayer/WaitingReason/interstitialEvent). When the system suspends primary playback, it creates player items based on the event’s [`templateItems`](/documentation/AVFoundation/AVPlayerInterstitialEvent/templateItems) to play interstitial content. The interstitial player temporarily assumes the primary player’s output configuration, such as routing its visual output to player layers that reference the primary player. After the interstitial player finishes playback, or its current item otherwise becomes `nil`, playback of primary content resumes.

## Topics

### Creating a monitor

[`init(primaryPlayer:)`](/documentation/AVFoundation/AVPlayerInterstitialEventMonitor/init(primaryPlayer:))

Creates an observer with a player item.

[`interstitialEventMonitorWithPrimaryPlayer:`](/documentation/AVFoundation/AVPlayerInterstitialEventMonitor/interstitialEventMonitorWithPrimaryPlayer:)

A convenience initializer that creates an observer with a player item.

### Monitoring the current event

[`currentEvent`](/documentation/AVFoundation/AVPlayerInterstitialEventMonitor/currentEvent)

The current interstitial event.

[`currentEventDidChangeNotification`](/documentation/AVFoundation/AVPlayerInterstitialEventMonitor/currentEventDidChangeNotification)

A notification the system posts when the monitor’s current interstitial event changes.

### Monitoring the event schedule

[`events`](/documentation/AVFoundation/AVPlayerInterstitialEventMonitor/events)

The schedule of interstitial events.

[`eventsDidChangeNotification`](/documentation/AVFoundation/AVPlayerInterstitialEventMonitor/eventsDidChangeNotification)

A notification the system posts when the monitor’s schedule of interstitial events changes.

[`interstitialEventWasUnscheduledNotification`](/documentation/AVFoundation/AVPlayerInterstitialEventMonitor/interstitialEventWasUnscheduledNotification)

A notification that is posted whenever an AVPlayerInterstitialEvent with loaded assets was unscheduled prior to playing.

[`interstitialEventWasUnscheduledEventKey`](/documentation/AVFoundation/AVPlayerInterstitialEventMonitor/interstitialEventWasUnscheduledEventKey)

The dictionary key for the AVPlayerInterstitialEvent that was unscheduled in the payload of the AVPlayerInterstitialEventMonitorInterstitialEventWasUnscheduledNotification.

[`interstitialEventWasUnscheduledErrorKey`](/documentation/AVFoundation/AVPlayerInterstitialEventMonitor/interstitialEventWasUnscheduledErrorKey)

The dictionary key to indicate whether the event that was unscheduled was due to an error.

[`interstitialEventDidFinishNotification`](/documentation/AVFoundation/AVPlayerInterstitialEventMonitor/interstitialEventDidFinishNotification)

A notification that is posted whenever an AVPlayerInterstitialEvent finished playing.

[`interstitialEventDidFinishEventKey`](/documentation/AVFoundation/AVPlayerInterstitialEventMonitor/interstitialEventDidFinishEventKey)

The dictionary key for the AVPlayerInterstitialEvent that finished playing in the payload of the AVPlayerInterstitialEventMonitorInterstitialEventDidFinishNotification.

[`interstitialEventDidFinishPlayoutTimeKey`](/documentation/AVFoundation/AVPlayerInterstitialEventMonitor/interstitialEventDidFinishPlayoutTimeKey)

The dictionary key for the playout time of the event that finished playing in the payload of the AVPlayerInterstitialEventMonitorInterstitialEventDidFinishNotification.

[`interstitialEventDidFinishDidPlayEntireEventKey`](/documentation/AVFoundation/AVPlayerInterstitialEventMonitor/interstitialEventDidFinishDidPlayEntireEventKey)

The dictionary key to indicate whether the event that finished playing was fully played out in the payload of the AVPlayerInterstitialEventMonitorInterstitialEventDidFinishNotification.

### Monitoring the asset list response

[`assetListResponseStatusDidChangeNotification`](/documentation/AVFoundation/AVPlayerInterstitialEventMonitor/assetListResponseStatusDidChangeNotification)

A notification the system posts when the status of an interstitial event’s asset list response changes.

[`AVPlayerInterstitialEventAssetListResponseStatus`](/documentation/AVFoundation/AVPlayerInterstitialEventAssetListResponseStatus)

Constants that describe the status of the asset list response for an interstitial event.

### Monitoring skipping

[`currentEventSkippableStateDidChangeNotification`](/documentation/AVFoundation/AVPlayerInterstitialEventMonitor/currentEventSkippableStateDidChangeNotification)

A notification that’s posted whenever the currentEventSkippableState of an AVPlayerInterstitialEventMonitor changes.

[`currentEventSkippableStateDidChangeEventKey`](/documentation/AVFoundation/AVPlayerInterstitialEventMonitor/currentEventSkippableStateDidChangeEventKey)

The dictionary key for the AVPlayerInterstitial event that had its skippable event state changed in the payload of the AVPlayerInterstitialEventMonitorCurrentEventSkippableStateDidChangeNotification.

[`currentEventSkippableStateDidChangeStateKey`](/documentation/AVFoundation/AVPlayerInterstitialEventMonitor/currentEventSkippableStateDidChangeStateKey)

The dictionary key for the skippable event state in the payload of the AVPlayerInterstitialEventMonitorCurrentEventSkippableStateDidChangeNotification.

[`currentEventSkippableStateDidChangeSkipControlLabelKey`](/documentation/AVFoundation/AVPlayerInterstitialEventMonitor/currentEventSkippableStateDidChangeSkipControlLabelKey)

The dictionary key for the skip label of the event in the payload of the AVPlayerInterstitialEventMonitorCurrentEventSkippableStateDidChangeNotification.

[`currentEventSkippedNotification`](/documentation/AVFoundation/AVPlayerInterstitialEventMonitor/currentEventSkippedNotification)

A notification that’s posted whenever an event was skipped via skip control.

[`currentEventSkippedEventKey`](/documentation/AVFoundation/AVPlayerInterstitialEventMonitor/currentEventSkippedEventKey)

The dictionary key for the AVPlayerInterstitialEvent that was skipped in the payload of the AVPlayerInterstitialEventMonitorCurrentEventSkippedNotification.

[`currentEventSkipControlLabel`](/documentation/AVFoundation/AVPlayerInterstitialEventMonitor/currentEventSkipControlLabel)

The skip control label for the currentEvent.

[`currentEventSkippableState`](/documentation/AVFoundation/AVPlayerInterstitialEventMonitor/currentEventSkippableState)

The skippable event state for the currentEvent.

### Accessing the players

[`primaryPlayer`](/documentation/AVFoundation/AVPlayerInterstitialEventMonitor/primaryPlayer)

An object that plays primary content.

[`interstitialPlayer`](/documentation/AVFoundation/AVPlayerInterstitialEventMonitor/interstitialPlayer)

An object that plays interstitial content.



---

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)