Sample Code

Adopting Custom Interactive Overlays, Channel Flipping, and Parental Controls in tvOS Video Playback

This sample demonstrates support for custom interactive overlays, and parental controls, using AVPlayerViewController.



VideoPlaybackViewController hosts instances of AVPlayerViewController. This class has all of the new API calls.

CustomInteractiveVideoOverlay.xib and CustomInteractiveOverlayViewController.swift describe the custom overlay and its behavior. In this example, the overlay is purely for show: It displays several “up next” items, but does not perform any action if they are selected.

Configure the Sample Code Project

To test channel flipping, you will need to replace the assets in the sample with live streams, as channel-flipping is only supported for navigation from a live stream.

By default, this sample demonstrates automatic support for parental restrictions. To demonstrate, you will need to activate parental restrictions: • Navigate to Settings > General > Restrictions • Turns on “Restrictions” and set a passcode (for demonstration purposes, “1111” is fine; do not lose this passcode!) • Scroll down to the “Allowed Content” section, select “Movies” and/or “TV Shows,” and set a restriction level, e.g. “PG” or “PG-13” if you are in the United States. The first demo video has a rating of “PG” and the second has a rating of “PG-13”; you can find/edit these ratings in MainViewController.swift. This sample also demonstrates explicit support for parental restrictions, by directly calling playerItem.requestPlaybackRestrictionsAuthorization(_ completion). You can test this by changing the value of checkParentalControlsExplicitly to true.

See Also

Media Playback

Adopting Picture in Picture in a Standard Player

Add picture-in-picture controls to your player using a player view controller.

Adopting Picture in Picture in a Custom Player

Add picture-in-picture controls to your custom player using a picture-in-picture controller.

Working with Interstitial Content (tvOS)

Present additional content such as legal text, content warnings, or advertisements alongside your main media content.

Adding Information to the Info Panel (tvOS)

Add metadata information and navigation markers to the Info panel in Apple TV.


An object that displays the video content from a player object along with system-supplied playback controls.


A macOS-only object that displays the video content from a player object along with system-supplied playback controls.


A controller that responds to user-initiated playback of video in a floating, resizable window on iPad.


An object that displays controls for picking playback routes.


A time range in an audiovisual presentation as interstitial content, such as advertisements or legal notices.


A set of markers for navigating playback of an audiovisual presentation.