Chapter 15. Video

Video playback is performed using classes such as AVPlayer provided by the AV Foundation framework (import AVFoundation). An AVPlayer is not a view; rather, an AVPlayer’s content is made visible through a CALayer subclass, AVPlayerLayer, which can be added to your app’s interface.

An AV Foundation video playback interface can be wrapped in a simple view controller, AVPlayerViewController (introduced in iOS 8): you provide an AVPlayer, and the AVPlayerViewController automatically hosts an associated AVPlayerLayer in its own main view, providing standard playback transport controls so that the user can start and stop play, seek to a different frame, and so forth. AVPlayerViewController is provided by the AVKit framework; you’ll need to import AVKit.


AVPlayerViewController effectively supersedes the Media Player framework’s MPMoviePlayerController and MPMoviePlayerViewController, which are deprecated in iOS 9 and are not discussed in this edition.

A simple interface for letting the user trim video (UIVideoEditorController) is also supplied. Sophisticated video editing can be performed through the AV Foundation framework, as I’ll demonstrate later in this chapter.

If an AVPlayer produces sound, you may need to concern yourself with your application’s audio session; see Chapter 14. AVPlayer deals gracefully with the app being sent into the background: it will pause when your app is backgrounded and resume when your app returns to the foreground.

A movie file can be ...

Get Programming iOS 9 now with O’Reilly online learning.

O’Reilly members experience live online training, plus books, videos, and digital content from 200+ publishers.