AVPlayerViewController displays the video content of an
AVPlayer object along with system-supplied playback controls.
- iOS 8.0+
- tvOS 9.0+
AVPlayerViewController makes it easy for you to add media playback capabilities to your application matching the styling and features of the native system players. Since
AVPlayerViewController is a system framework class, your playback applications automatically adopt the new aesthetics and features of future operating system updates without any additional work from you.
AirPlay lets users play your video content on an Apple TV and stream audio content to third-party AirPlay speakers and receivers.
AVPlayerViewController automatically supports AirPlay, but you need to perform some project and audio session configuration before it can be enabled in your application. See Configuring Audio Settings for iOS and tvOS in Media Playback Programming Guide for more on how to perform this configuration.
See AirPlay Overview for more information about the features and capabilities of AirPlay.
Adopting Picture in Picture Playback
Starting in iOS 9, you can use
AVPlayerViewController to provide Picture in Picture (PiP) playback on supported iPad models. PiP playback lets users minimize your video player to a small floating window so they can perform other activities in the primary application or even in another application. This brings a new level of multitasking capabilities to the iPad allowing users to continue playback while performing other activities on their devices. To learn more about how to support PiP playback in your iPad applications, see AVKit for iOS in Media Playback Programming Guide.
Using AVPlayerViewController in tvOS
AVPlayerViewController in tvOS brings advanced Siri Remote control features to your application. This lets users easily play and navigate your content and access supporting features such as subtitles and alternate audio tracks.
AVPlayerViewController also provides support for using Siri Remote voice commands such as “Skip ahead 15 seconds” and “What did she say?” to control playback of your content.
AVKit for tvOS extends the features of
AVPlayerItem to provide additional ways of navigating and presenting content.
External Metadata. If you use the
externalMetadataproperty to associate additional metadata with the
AVPlayerItemobject presented in the player view controller, the
AVPlayerViewControllerUI can display that information.
Navigation Marker Groups. A group of navigation markers allows the user to jump between significant events in a media presentation. The most common form of navigation marker group is a chapter list, but you can also create additional or alternative means of navigation—for example, to allow the user to quickly jump between key moments in a recorded sporting event. The player view controller lets the user choose between multiple marker groups for navigating through the media content it presents.
AVNavigationMarkersGroupclass to create and describe navigation markers, then use the
navigationMarkerGroupsproperty to associate marker groups with the
AVPlayerItemobject presented in the player view controller.
Interstitial Content. Some content might be unrelated to the main content presented in your player view controller, or have different presentation requirements. For example, you might not allow the user to skip over advertisements when scrubbing through the playback timeline, or require that the user not skip mandatory legal notices.
AVInterstitialTimeRangeclass to describe interstitial content, and the
interstitialTimeRangesproperty to associate those time ranges with the
AVPlayerItemobject presented in the player view controller. Then, you can use the player view controller’s
delegateobject to be notified when interstitial content plays, and change playback options such as the
Content Proposals. When presenting serialized content, such as a TV show, you often want to propose additional content for the user to watch when the current episode ends. Starting with tvOS 10, it’s easy to add this functionality to your app using AVKit content proposals.
AVContentProposalclass to describe the proposed content, and set it as the
nextContentProposalproperty of the
AVPlayerItemobject presented in the player view controller. You can implement the methods of the player view controller’s
delegateobject to prepare to present a content proposal and perform actions in response to a user accepting, rejecting, or deferring the proposal.