211 multitasking essentials for media-based apps on ipad ... · getting started with multitasking...
TRANSCRIPT
![Page 1: 211 Multitasking Essentials for Media-Based Apps on iPad ... · Getting Started with Multitasking on iPad in iOS 9 Presidio Tuesday 4:30PM Multitasking Essentials for Media-Based](https://reader033.vdocument.in/reader033/viewer/2022051322/60055a7836f4bc792f05017d/html5/thumbnails/1.jpg)
© 2015 Apple Inc. All rights reserved. Redistribution or public display not permitted without written permission from Apple.
#WWDC15
Multitasking Essentials forMedia-Based Apps on iPad in iOS 9Adopting Picture in Picture and Mastering Shared Resources
Stefan Hafeneger Picture in Picture ArchitectJonathan Bennett Media Systems Product Lead
App Frameworks
Session 211
![Page 2: 211 Multitasking Essentials for Media-Based Apps on iPad ... · Getting Started with Multitasking on iPad in iOS 9 Presidio Tuesday 4:30PM Multitasking Essentials for Media-Based](https://reader033.vdocument.in/reader033/viewer/2022051322/60055a7836f4bc792f05017d/html5/thumbnails/2.jpg)
Multitasking Sessions
Getting Started with Multitasking on iPad in iOS 9 Presidio Tuesday 4:30PM
Multitasking Essentials for Media-Based Apps on iPad in iOS 9 Pacific Heights Wednesday 2:30PM
Optimizing Your App for Multitasking on iPad in iOS 9 Presidio Wednesday 3:30PM
![Page 3: 211 Multitasking Essentials for Media-Based Apps on iPad ... · Getting Started with Multitasking on iPad in iOS 9 Presidio Tuesday 4:30PM Multitasking Essentials for Media-Based](https://reader033.vdocument.in/reader033/viewer/2022051322/60055a7836f4bc792f05017d/html5/thumbnails/3.jpg)
Multitasking Sessions
Getting Started with Multitasking on iPad in iOS 9 Presidio Tuesday 4:30PM
Multitasking Essentials for Media-Based Apps on iPad in iOS 9 Pacific Heights Wednesday 2:30PM
Optimizing Your App for Multitasking on iPad in iOS 9 Presidio Wednesday 3:30PM
Multitasking Essentials for Media-Based Apps on iPad in iOS 9
![Page 4: 211 Multitasking Essentials for Media-Based Apps on iPad ... · Getting Started with Multitasking on iPad in iOS 9 Presidio Tuesday 4:30PM Multitasking Essentials for Media-Based](https://reader033.vdocument.in/reader033/viewer/2022051322/60055a7836f4bc792f05017d/html5/thumbnails/4.jpg)
What You Will Learn
Adopt Picture in Picture in video playback applicationsMaster shared resources in multitasking environment
![Page 5: 211 Multitasking Essentials for Media-Based Apps on iPad ... · Getting Started with Multitasking on iPad in iOS 9 Presidio Tuesday 4:30PM Multitasking Essentials for Media-Based](https://reader033.vdocument.in/reader033/viewer/2022051322/60055a7836f4bc792f05017d/html5/thumbnails/5.jpg)
![Page 6: 211 Multitasking Essentials for Media-Based Apps on iPad ... · Getting Started with Multitasking on iPad in iOS 9 Presidio Tuesday 4:30PM Multitasking Essentials for Media-Based](https://reader033.vdocument.in/reader033/viewer/2022051322/60055a7836f4bc792f05017d/html5/thumbnails/6.jpg)
Picture in Picture
![Page 7: 211 Multitasking Essentials for Media-Based Apps on iPad ... · Getting Started with Multitasking on iPad in iOS 9 Presidio Tuesday 4:30PM Multitasking Essentials for Media-Based](https://reader033.vdocument.in/reader033/viewer/2022051322/60055a7836f4bc792f05017d/html5/thumbnails/7.jpg)
![Page 8: 211 Multitasking Essentials for Media-Based Apps on iPad ... · Getting Started with Multitasking on iPad in iOS 9 Presidio Tuesday 4:30PM Multitasking Essentials for Media-Based](https://reader033.vdocument.in/reader033/viewer/2022051322/60055a7836f4bc792f05017d/html5/thumbnails/8.jpg)
![Page 9: 211 Multitasking Essentials for Media-Based Apps on iPad ... · Getting Started with Multitasking on iPad in iOS 9 Presidio Tuesday 4:30PM Multitasking Essentials for Media-Based](https://reader033.vdocument.in/reader033/viewer/2022051322/60055a7836f4bc792f05017d/html5/thumbnails/9.jpg)
![Page 10: 211 Multitasking Essentials for Media-Based Apps on iPad ... · Getting Started with Multitasking on iPad in iOS 9 Presidio Tuesday 4:30PM Multitasking Essentials for Media-Based](https://reader033.vdocument.in/reader033/viewer/2022051322/60055a7836f4bc792f05017d/html5/thumbnails/10.jpg)
![Page 11: 211 Multitasking Essentials for Media-Based Apps on iPad ... · Getting Started with Multitasking on iPad in iOS 9 Presidio Tuesday 4:30PM Multitasking Essentials for Media-Based](https://reader033.vdocument.in/reader033/viewer/2022051322/60055a7836f4bc792f05017d/html5/thumbnails/11.jpg)
Picture in Picture = PiP
![Page 12: 211 Multitasking Essentials for Media-Based Apps on iPad ... · Getting Started with Multitasking on iPad in iOS 9 Presidio Tuesday 4:30PM Multitasking Essentials for Media-Based](https://reader033.vdocument.in/reader033/viewer/2022051322/60055a7836f4bc792f05017d/html5/thumbnails/12.jpg)
Picture in PictureSupported hardware
iPad Air 2iPad AiriPad mini 3iPad mini 2
![Page 13: 211 Multitasking Essentials for Media-Based Apps on iPad ... · Getting Started with Multitasking on iPad in iOS 9 Presidio Tuesday 4:30PM Multitasking Essentials for Media-Based](https://reader033.vdocument.in/reader033/viewer/2022051322/60055a7836f4bc792f05017d/html5/thumbnails/13.jpg)
Should my app adopt Picture in Picture?
![Page 14: 211 Multitasking Essentials for Media-Based Apps on iPad ... · Getting Started with Multitasking on iPad in iOS 9 Presidio Tuesday 4:30PM Multitasking Essentials for Media-Based](https://reader033.vdocument.in/reader033/viewer/2022051322/60055a7836f4bc792f05017d/html5/thumbnails/14.jpg)
![Page 15: 211 Multitasking Essentials for Media-Based Apps on iPad ... · Getting Started with Multitasking on iPad in iOS 9 Presidio Tuesday 4:30PM Multitasking Essentials for Media-Based](https://reader033.vdocument.in/reader033/viewer/2022051322/60055a7836f4bc792f05017d/html5/thumbnails/15.jpg)
![Page 16: 211 Multitasking Essentials for Media-Based Apps on iPad ... · Getting Started with Multitasking on iPad in iOS 9 Presidio Tuesday 4:30PM Multitasking Essentials for Media-Based](https://reader033.vdocument.in/reader033/viewer/2022051322/60055a7836f4bc792f05017d/html5/thumbnails/16.jpg)
![Page 17: 211 Multitasking Essentials for Media-Based Apps on iPad ... · Getting Started with Multitasking on iPad in iOS 9 Presidio Tuesday 4:30PM Multitasking Essentials for Media-Based](https://reader033.vdocument.in/reader033/viewer/2022051322/60055a7836f4bc792f05017d/html5/thumbnails/17.jpg)
Video Playback APIsiOS 8
![Page 18: 211 Multitasking Essentials for Media-Based Apps on iPad ... · Getting Started with Multitasking on iPad in iOS 9 Presidio Tuesday 4:30PM Multitasking Essentials for Media-Based](https://reader033.vdocument.in/reader033/viewer/2022051322/60055a7836f4bc792f05017d/html5/thumbnails/18.jpg)
Video Playback APIsiOS 8
![Page 19: 211 Multitasking Essentials for Media-Based Apps on iPad ... · Getting Started with Multitasking on iPad in iOS 9 Presidio Tuesday 4:30PM Multitasking Essentials for Media-Based](https://reader033.vdocument.in/reader033/viewer/2022051322/60055a7836f4bc792f05017d/html5/thumbnails/19.jpg)
Video Playback APIsDeprecated APIs in iOS 9
MPMoviePlayerController
MPMoviePlayerViewController
![Page 20: 211 Multitasking Essentials for Media-Based Apps on iPad ... · Getting Started with Multitasking on iPad in iOS 9 Presidio Tuesday 4:30PM Multitasking Essentials for Media-Based](https://reader033.vdocument.in/reader033/viewer/2022051322/60055a7836f4bc792f05017d/html5/thumbnails/20.jpg)
Replaced by AVPlayerViewController• Introduced in AVKit in iOS 8
Video Playback APIsDeprecated APIs in iOS 9
MPMoviePlayerController
MPMoviePlayerViewController
![Page 21: 211 Multitasking Essentials for Media-Based Apps on iPad ... · Getting Started with Multitasking on iPad in iOS 9 Presidio Tuesday 4:30PM Multitasking Essentials for Media-Based](https://reader033.vdocument.in/reader033/viewer/2022051322/60055a7836f4bc792f05017d/html5/thumbnails/21.jpg)
Replaced by AVPlayerViewController• Introduced in AVKit in iOS 8
Video Playback APIsDeprecated APIs in iOS 9
MPMoviePlayerController
MPMoviePlayerViewController
Mastering Modern Media Playback WWDC 2014
![Page 22: 211 Multitasking Essentials for Media-Based Apps on iPad ... · Getting Started with Multitasking on iPad in iOS 9 Presidio Tuesday 4:30PM Multitasking Essentials for Media-Based](https://reader033.vdocument.in/reader033/viewer/2022051322/60055a7836f4bc792f05017d/html5/thumbnails/22.jpg)
Video Playback APIsiOS 9
![Page 23: 211 Multitasking Essentials for Media-Based Apps on iPad ... · Getting Started with Multitasking on iPad in iOS 9 Presidio Tuesday 4:30PM Multitasking Essentials for Media-Based](https://reader033.vdocument.in/reader033/viewer/2022051322/60055a7836f4bc792f05017d/html5/thumbnails/23.jpg)
AVPlayerLayer
![Page 24: 211 Multitasking Essentials for Media-Based Apps on iPad ... · Getting Started with Multitasking on iPad in iOS 9 Presidio Tuesday 4:30PM Multitasking Essentials for Media-Based](https://reader033.vdocument.in/reader033/viewer/2022051322/60055a7836f4bc792f05017d/html5/thumbnails/24.jpg)
![Page 25: 211 Multitasking Essentials for Media-Based Apps on iPad ... · Getting Started with Multitasking on iPad in iOS 9 Presidio Tuesday 4:30PM Multitasking Essentials for Media-Based](https://reader033.vdocument.in/reader033/viewer/2022051322/60055a7836f4bc792f05017d/html5/thumbnails/25.jpg)
![Page 26: 211 Multitasking Essentials for Media-Based Apps on iPad ... · Getting Started with Multitasking on iPad in iOS 9 Presidio Tuesday 4:30PM Multitasking Essentials for Media-Based](https://reader033.vdocument.in/reader033/viewer/2022051322/60055a7836f4bc792f05017d/html5/thumbnails/26.jpg)
![Page 27: 211 Multitasking Essentials for Media-Based Apps on iPad ... · Getting Started with Multitasking on iPad in iOS 9 Presidio Tuesday 4:30PM Multitasking Essentials for Media-Based](https://reader033.vdocument.in/reader033/viewer/2022051322/60055a7836f4bc792f05017d/html5/thumbnails/27.jpg)
![Page 28: 211 Multitasking Essentials for Media-Based Apps on iPad ... · Getting Started with Multitasking on iPad in iOS 9 Presidio Tuesday 4:30PM Multitasking Essentials for Media-Based](https://reader033.vdocument.in/reader033/viewer/2022051322/60055a7836f4bc792f05017d/html5/thumbnails/28.jpg)
![Page 29: 211 Multitasking Essentials for Media-Based Apps on iPad ... · Getting Started with Multitasking on iPad in iOS 9 Presidio Tuesday 4:30PM Multitasking Essentials for Media-Based](https://reader033.vdocument.in/reader033/viewer/2022051322/60055a7836f4bc792f05017d/html5/thumbnails/29.jpg)
![Page 30: 211 Multitasking Essentials for Media-Based Apps on iPad ... · Getting Started with Multitasking on iPad in iOS 9 Presidio Tuesday 4:30PM Multitasking Essentials for Media-Based](https://reader033.vdocument.in/reader033/viewer/2022051322/60055a7836f4bc792f05017d/html5/thumbnails/30.jpg)
![Page 31: 211 Multitasking Essentials for Media-Based Apps on iPad ... · Getting Started with Multitasking on iPad in iOS 9 Presidio Tuesday 4:30PM Multitasking Essentials for Media-Based](https://reader033.vdocument.in/reader033/viewer/2022051322/60055a7836f4bc792f05017d/html5/thumbnails/31.jpg)
![Page 32: 211 Multitasking Essentials for Media-Based Apps on iPad ... · Getting Started with Multitasking on iPad in iOS 9 Presidio Tuesday 4:30PM Multitasking Essentials for Media-Based](https://reader033.vdocument.in/reader033/viewer/2022051322/60055a7836f4bc792f05017d/html5/thumbnails/32.jpg)
![Page 33: 211 Multitasking Essentials for Media-Based Apps on iPad ... · Getting Started with Multitasking on iPad in iOS 9 Presidio Tuesday 4:30PM Multitasking Essentials for Media-Based](https://reader033.vdocument.in/reader033/viewer/2022051322/60055a7836f4bc792f05017d/html5/thumbnails/33.jpg)
![Page 34: 211 Multitasking Essentials for Media-Based Apps on iPad ... · Getting Started with Multitasking on iPad in iOS 9 Presidio Tuesday 4:30PM Multitasking Essentials for Media-Based](https://reader033.vdocument.in/reader033/viewer/2022051322/60055a7836f4bc792f05017d/html5/thumbnails/34.jpg)
![Page 35: 211 Multitasking Essentials for Media-Based Apps on iPad ... · Getting Started with Multitasking on iPad in iOS 9 Presidio Tuesday 4:30PM Multitasking Essentials for Media-Based](https://reader033.vdocument.in/reader033/viewer/2022051322/60055a7836f4bc792f05017d/html5/thumbnails/35.jpg)
![Page 36: 211 Multitasking Essentials for Media-Based Apps on iPad ... · Getting Started with Multitasking on iPad in iOS 9 Presidio Tuesday 4:30PM Multitasking Essentials for Media-Based](https://reader033.vdocument.in/reader033/viewer/2022051322/60055a7836f4bc792f05017d/html5/thumbnails/36.jpg)
![Page 37: 211 Multitasking Essentials for Media-Based Apps on iPad ... · Getting Started with Multitasking on iPad in iOS 9 Presidio Tuesday 4:30PM Multitasking Essentials for Media-Based](https://reader033.vdocument.in/reader033/viewer/2022051322/60055a7836f4bc792f05017d/html5/thumbnails/37.jpg)
![Page 38: 211 Multitasking Essentials for Media-Based Apps on iPad ... · Getting Started with Multitasking on iPad in iOS 9 Presidio Tuesday 4:30PM Multitasking Essentials for Media-Based](https://reader033.vdocument.in/reader033/viewer/2022051322/60055a7836f4bc792f05017d/html5/thumbnails/38.jpg)
![Page 39: 211 Multitasking Essentials for Media-Based Apps on iPad ... · Getting Started with Multitasking on iPad in iOS 9 Presidio Tuesday 4:30PM Multitasking Essentials for Media-Based](https://reader033.vdocument.in/reader033/viewer/2022051322/60055a7836f4bc792f05017d/html5/thumbnails/39.jpg)
Picture in PictureSupported video playback APIs
![Page 40: 211 Multitasking Essentials for Media-Based Apps on iPad ... · Getting Started with Multitasking on iPad in iOS 9 Presidio Tuesday 4:30PM Multitasking Essentials for Media-Based](https://reader033.vdocument.in/reader033/viewer/2022051322/60055a7836f4bc792f05017d/html5/thumbnails/40.jpg)
Picture in PictureSupported video playback APIs
![Page 41: 211 Multitasking Essentials for Media-Based Apps on iPad ... · Getting Started with Multitasking on iPad in iOS 9 Presidio Tuesday 4:30PM Multitasking Essentials for Media-Based](https://reader033.vdocument.in/reader033/viewer/2022051322/60055a7836f4bc792f05017d/html5/thumbnails/41.jpg)
Picture in PictureSupported video playback APIs
![Page 42: 211 Multitasking Essentials for Media-Based Apps on iPad ... · Getting Started with Multitasking on iPad in iOS 9 Presidio Tuesday 4:30PM Multitasking Essentials for Media-Based](https://reader033.vdocument.in/reader033/viewer/2022051322/60055a7836f4bc792f05017d/html5/thumbnails/42.jpg)
![Page 43: 211 Multitasking Essentials for Media-Based Apps on iPad ... · Getting Started with Multitasking on iPad in iOS 9 Presidio Tuesday 4:30PM Multitasking Essentials for Media-Based](https://reader033.vdocument.in/reader033/viewer/2022051322/60055a7836f4bc792f05017d/html5/thumbnails/43.jpg)
![Page 44: 211 Multitasking Essentials for Media-Based Apps on iPad ... · Getting Started with Multitasking on iPad in iOS 9 Presidio Tuesday 4:30PM Multitasking Essentials for Media-Based](https://reader033.vdocument.in/reader033/viewer/2022051322/60055a7836f4bc792f05017d/html5/thumbnails/44.jpg)
![Page 45: 211 Multitasking Essentials for Media-Based Apps on iPad ... · Getting Started with Multitasking on iPad in iOS 9 Presidio Tuesday 4:30PM Multitasking Essentials for Media-Based](https://reader033.vdocument.in/reader033/viewer/2022051322/60055a7836f4bc792f05017d/html5/thumbnails/45.jpg)
![Page 46: 211 Multitasking Essentials for Media-Based Apps on iPad ... · Getting Started with Multitasking on iPad in iOS 9 Presidio Tuesday 4:30PM Multitasking Essentials for Media-Based](https://reader033.vdocument.in/reader033/viewer/2022051322/60055a7836f4bc792f05017d/html5/thumbnails/46.jpg)
![Page 47: 211 Multitasking Essentials for Media-Based Apps on iPad ... · Getting Started with Multitasking on iPad in iOS 9 Presidio Tuesday 4:30PM Multitasking Essentials for Media-Based](https://reader033.vdocument.in/reader033/viewer/2022051322/60055a7836f4bc792f05017d/html5/thumbnails/47.jpg)
![Page 48: 211 Multitasking Essentials for Media-Based Apps on iPad ... · Getting Started with Multitasking on iPad in iOS 9 Presidio Tuesday 4:30PM Multitasking Essentials for Media-Based](https://reader033.vdocument.in/reader033/viewer/2022051322/60055a7836f4bc792f05017d/html5/thumbnails/48.jpg)
DemoAdopting Picture in Picture with AVPlayerViewController
Felix Heidrich AVKit Engineer
![Page 49: 211 Multitasking Essentials for Media-Based Apps on iPad ... · Getting Started with Multitasking on iPad in iOS 9 Presidio Tuesday 4:30PM Multitasking Essentials for Media-Based](https://reader033.vdocument.in/reader033/viewer/2022051322/60055a7836f4bc792f05017d/html5/thumbnails/49.jpg)
AVPlayerViewControllerHow to support Picture in Picture
![Page 50: 211 Multitasking Essentials for Media-Based Apps on iPad ... · Getting Started with Multitasking on iPad in iOS 9 Presidio Tuesday 4:30PM Multitasking Essentials for Media-Based](https://reader033.vdocument.in/reader033/viewer/2022051322/60055a7836f4bc792f05017d/html5/thumbnails/50.jpg)
AVPlayerViewControllerHow to support Picture in Picture
![Page 51: 211 Multitasking Essentials for Media-Based Apps on iPad ... · Getting Started with Multitasking on iPad in iOS 9 Presidio Tuesday 4:30PM Multitasking Essentials for Media-Based](https://reader033.vdocument.in/reader033/viewer/2022051322/60055a7836f4bc792f05017d/html5/thumbnails/51.jpg)
AVPlayerViewControllerHow to support Picture in Picture
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool { // Get shared audio session. let audioSession = AVAudioSession.sharedInstance() do { // Set playback audio session category. try audioSession.setCategory(AVAudioSessionCategoryPlayback) } catch { … } return true }
![Page 52: 211 Multitasking Essentials for Media-Based Apps on iPad ... · Getting Started with Multitasking on iPad in iOS 9 Presidio Tuesday 4:30PM Multitasking Essentials for Media-Based](https://reader033.vdocument.in/reader033/viewer/2022051322/60055a7836f4bc792f05017d/html5/thumbnails/52.jpg)
AVPlayerViewControllerHow to support Picture in Picture
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool { // Get shared audio session. let audioSession = AVAudioSession.sharedInstance() do { // Set playback audio session category. try audioSession.setCategory(AVAudioSessionCategoryPlayback) } catch { … } return true }
![Page 53: 211 Multitasking Essentials for Media-Based Apps on iPad ... · Getting Started with Multitasking on iPad in iOS 9 Presidio Tuesday 4:30PM Multitasking Essentials for Media-Based](https://reader033.vdocument.in/reader033/viewer/2022051322/60055a7836f4bc792f05017d/html5/thumbnails/53.jpg)
AVPlayerViewControllerHow to support Picture in Picture
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool { // Get shared audio session. let audioSession = AVAudioSession.sharedInstance() do { // Set playback audio session category. try audioSession.setCategory(AVAudioSessionCategoryPlayback) } catch { … } return true }
![Page 54: 211 Multitasking Essentials for Media-Based Apps on iPad ... · Getting Started with Multitasking on iPad in iOS 9 Presidio Tuesday 4:30PM Multitasking Essentials for Media-Based](https://reader033.vdocument.in/reader033/viewer/2022051322/60055a7836f4bc792f05017d/html5/thumbnails/54.jpg)
AVPlayerViewControllerHow to support Picture in Picture
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool { // Get shared audio session. let audioSession = AVAudioSession.sharedInstance() do { // Set playback audio session category. try audioSession.setCategory(AVAudioSessionCategoryPlayAndRecord) } catch { … } return true }
![Page 55: 211 Multitasking Essentials for Media-Based Apps on iPad ... · Getting Started with Multitasking on iPad in iOS 9 Presidio Tuesday 4:30PM Multitasking Essentials for Media-Based](https://reader033.vdocument.in/reader033/viewer/2022051322/60055a7836f4bc792f05017d/html5/thumbnails/55.jpg)
AVPlayerViewControllerDisable Picture in Picture playback
class AVPlayerViewController : UIViewController { // Whether or not to allow Picture in Picture playback. Default is YES. var allowsPictureInPicturePlayback: Bool }
![Page 56: 211 Multitasking Essentials for Media-Based Apps on iPad ... · Getting Started with Multitasking on iPad in iOS 9 Presidio Tuesday 4:30PM Multitasking Essentials for Media-Based](https://reader033.vdocument.in/reader033/viewer/2022051322/60055a7836f4bc792f05017d/html5/thumbnails/56.jpg)
![Page 57: 211 Multitasking Essentials for Media-Based Apps on iPad ... · Getting Started with Multitasking on iPad in iOS 9 Presidio Tuesday 4:30PM Multitasking Essentials for Media-Based](https://reader033.vdocument.in/reader033/viewer/2022051322/60055a7836f4bc792f05017d/html5/thumbnails/57.jpg)
![Page 58: 211 Multitasking Essentials for Media-Based Apps on iPad ... · Getting Started with Multitasking on iPad in iOS 9 Presidio Tuesday 4:30PM Multitasking Essentials for Media-Based](https://reader033.vdocument.in/reader033/viewer/2022051322/60055a7836f4bc792f05017d/html5/thumbnails/58.jpg)
AVPlayerViewControllerPersistent Video Overlay
Supported in primary applicationWhen application enters background if• AVPlayerViewController is presented full screen• Video content is playing• Picture in Picture is possible
![Page 59: 211 Multitasking Essentials for Media-Based Apps on iPad ... · Getting Started with Multitasking on iPad in iOS 9 Presidio Tuesday 4:30PM Multitasking Essentials for Media-Based](https://reader033.vdocument.in/reader033/viewer/2022051322/60055a7836f4bc792f05017d/html5/thumbnails/59.jpg)
AVPlayerViewControllerPersistent Video Overlay
User can turn on/off behavior in Settings• General > Multitasking > Persistent Video Overlay
![Page 60: 211 Multitasking Essentials for Media-Based Apps on iPad ... · Getting Started with Multitasking on iPad in iOS 9 Presidio Tuesday 4:30PM Multitasking Essentials for Media-Based](https://reader033.vdocument.in/reader033/viewer/2022051322/60055a7836f4bc792f05017d/html5/thumbnails/60.jpg)
AVPlayerViewControllerRestore user interface before stop
func playerViewController(playerViewController: AVPlayerViewController, restoreUserInterfaceForPictureInPictureStopWithCompletionHandler completionHandler: (Bool) -> Void) { // Present player view controller again. navigationController?.presentViewController(playerViewController, animated: true) { // Don’t forget to call completion handler. completionHandler(true) } }
![Page 61: 211 Multitasking Essentials for Media-Based Apps on iPad ... · Getting Started with Multitasking on iPad in iOS 9 Presidio Tuesday 4:30PM Multitasking Essentials for Media-Based](https://reader033.vdocument.in/reader033/viewer/2022051322/60055a7836f4bc792f05017d/html5/thumbnails/61.jpg)
AVPlayerViewControllerRestore user interface before stop
func playerViewController(playerViewController: AVPlayerViewController, restoreUserInterfaceForPictureInPictureStopWithCompletionHandler completionHandler: (Bool) -> Void) { // Present player view controller again. navigationController?.presentViewController(playerViewController, animated: true) { // Don’t forget to call completion handler. completionHandler(true) } }
![Page 62: 211 Multitasking Essentials for Media-Based Apps on iPad ... · Getting Started with Multitasking on iPad in iOS 9 Presidio Tuesday 4:30PM Multitasking Essentials for Media-Based](https://reader033.vdocument.in/reader033/viewer/2022051322/60055a7836f4bc792f05017d/html5/thumbnails/62.jpg)
AVPlayerViewControllerRestore user interface before stop
func playerViewController(playerViewController: AVPlayerViewController, restoreUserInterfaceForPictureInPictureStopWithCompletionHandler completionHandler: (Bool) -> Void) { // Present player view controller again. navigationController?.presentViewController(playerViewController, animated: true) { // Don’t forget to call completion handler. completionHandler(true) } }
![Page 63: 211 Multitasking Essentials for Media-Based Apps on iPad ... · Getting Started with Multitasking on iPad in iOS 9 Presidio Tuesday 4:30PM Multitasking Essentials for Media-Based](https://reader033.vdocument.in/reader033/viewer/2022051322/60055a7836f4bc792f05017d/html5/thumbnails/63.jpg)
AVPlayerViewControllerRestore user interface before stop
func playerViewController(playerViewController: AVPlayerViewController, restoreUserInterfaceForPictureInPictureStopWithCompletionHandler completionHandler: (Bool) -> Void) { // Present player view controller again. navigationController?.presentViewController(playerViewController, animated: true) { // Don’t forget to call completion handler. completionHandler(true) } }
![Page 64: 211 Multitasking Essentials for Media-Based Apps on iPad ... · Getting Started with Multitasking on iPad in iOS 9 Presidio Tuesday 4:30PM Multitasking Essentials for Media-Based](https://reader033.vdocument.in/reader033/viewer/2022051322/60055a7836f4bc792f05017d/html5/thumbnails/64.jpg)
![Page 65: 211 Multitasking Essentials for Media-Based Apps on iPad ... · Getting Started with Multitasking on iPad in iOS 9 Presidio Tuesday 4:30PM Multitasking Essentials for Media-Based](https://reader033.vdocument.in/reader033/viewer/2022051322/60055a7836f4bc792f05017d/html5/thumbnails/65.jpg)
![Page 66: 211 Multitasking Essentials for Media-Based Apps on iPad ... · Getting Started with Multitasking on iPad in iOS 9 Presidio Tuesday 4:30PM Multitasking Essentials for Media-Based](https://reader033.vdocument.in/reader033/viewer/2022051322/60055a7836f4bc792f05017d/html5/thumbnails/66.jpg)
![Page 67: 211 Multitasking Essentials for Media-Based Apps on iPad ... · Getting Started with Multitasking on iPad in iOS 9 Presidio Tuesday 4:30PM Multitasking Essentials for Media-Based](https://reader033.vdocument.in/reader033/viewer/2022051322/60055a7836f4bc792f05017d/html5/thumbnails/67.jpg)
![Page 68: 211 Multitasking Essentials for Media-Based Apps on iPad ... · Getting Started with Multitasking on iPad in iOS 9 Presidio Tuesday 4:30PM Multitasking Essentials for Media-Based](https://reader033.vdocument.in/reader033/viewer/2022051322/60055a7836f4bc792f05017d/html5/thumbnails/68.jpg)
AVPictureInPictureControllerNew AVKit class in iOS 9
![Page 69: 211 Multitasking Essentials for Media-Based Apps on iPad ... · Getting Started with Multitasking on iPad in iOS 9 Presidio Tuesday 4:30PM Multitasking Essentials for Media-Based](https://reader033.vdocument.in/reader033/viewer/2022051322/60055a7836f4bc792f05017d/html5/thumbnails/69.jpg)
AVPictureInPictureControllerHow to set up
// Check whether Picture in Picture is supported on device. if AVPictureInPictureController.isPictureInPictureSupported() { // Create Picture in Picture controller. pipController = AVPictureInPictureController(playerLayer: playerLayer)! // Set delegate. pipController.delegate = self }
![Page 70: 211 Multitasking Essentials for Media-Based Apps on iPad ... · Getting Started with Multitasking on iPad in iOS 9 Presidio Tuesday 4:30PM Multitasking Essentials for Media-Based](https://reader033.vdocument.in/reader033/viewer/2022051322/60055a7836f4bc792f05017d/html5/thumbnails/70.jpg)
AVPictureInPictureControllerHow to set up
// Check whether Picture in Picture is supported on device. if AVPictureInPictureController.isPictureInPictureSupported() { // Create Picture in Picture controller. pipController = AVPictureInPictureController(playerLayer: playerLayer)! // Set delegate. pipController.delegate = self }
![Page 71: 211 Multitasking Essentials for Media-Based Apps on iPad ... · Getting Started with Multitasking on iPad in iOS 9 Presidio Tuesday 4:30PM Multitasking Essentials for Media-Based](https://reader033.vdocument.in/reader033/viewer/2022051322/60055a7836f4bc792f05017d/html5/thumbnails/71.jpg)
AVPictureInPictureControllerHow to set up
// Check whether Picture in Picture is supported on device. if AVPictureInPictureController.isPictureInPictureSupported() { // Create Picture in Picture controller. pipController = AVPictureInPictureController(playerLayer: playerLayer)! // Set delegate. pipController.delegate = self }
![Page 72: 211 Multitasking Essentials for Media-Based Apps on iPad ... · Getting Started with Multitasking on iPad in iOS 9 Presidio Tuesday 4:30PM Multitasking Essentials for Media-Based](https://reader033.vdocument.in/reader033/viewer/2022051322/60055a7836f4bc792f05017d/html5/thumbnails/72.jpg)
AVPictureInPictureControllerHow to set up
// Check whether Picture in Picture is supported on device. if AVPictureInPictureController.isPictureInPictureSupported() { // Create Picture in Picture controller. pipController = AVPictureInPictureController(playerLayer: playerLayer)! // Set delegate. pipController.delegate = self }
![Page 73: 211 Multitasking Essentials for Media-Based Apps on iPad ... · Getting Started with Multitasking on iPad in iOS 9 Presidio Tuesday 4:30PM Multitasking Essentials for Media-Based](https://reader033.vdocument.in/reader033/viewer/2022051322/60055a7836f4bc792f05017d/html5/thumbnails/73.jpg)
![Page 74: 211 Multitasking Essentials for Media-Based Apps on iPad ... · Getting Started with Multitasking on iPad in iOS 9 Presidio Tuesday 4:30PM Multitasking Essentials for Media-Based](https://reader033.vdocument.in/reader033/viewer/2022051322/60055a7836f4bc792f05017d/html5/thumbnails/74.jpg)
![Page 75: 211 Multitasking Essentials for Media-Based Apps on iPad ... · Getting Started with Multitasking on iPad in iOS 9 Presidio Tuesday 4:30PM Multitasking Essentials for Media-Based](https://reader033.vdocument.in/reader033/viewer/2022051322/60055a7836f4bc792f05017d/html5/thumbnails/75.jpg)
AVPictureInPictureControllerEnable/disable Picture in Picture button
// Find out whether Picture in Picture is possible. let pipPossible = pipController.pictureInPicturePossible
// Enable/disable Picture in Picture button. pipButton.enabled = pipPossible
![Page 76: 211 Multitasking Essentials for Media-Based Apps on iPad ... · Getting Started with Multitasking on iPad in iOS 9 Presidio Tuesday 4:30PM Multitasking Essentials for Media-Based](https://reader033.vdocument.in/reader033/viewer/2022051322/60055a7836f4bc792f05017d/html5/thumbnails/76.jpg)
AVPictureInPictureControllerEnable/disable Picture in Picture button
// Find out whether Picture in Picture is possible. let pipPossible = pipController.pictureInPicturePossible
// Enable/disable Picture in Picture button. pipButton.enabled = pipPossible
![Page 77: 211 Multitasking Essentials for Media-Based Apps on iPad ... · Getting Started with Multitasking on iPad in iOS 9 Presidio Tuesday 4:30PM Multitasking Essentials for Media-Based](https://reader033.vdocument.in/reader033/viewer/2022051322/60055a7836f4bc792f05017d/html5/thumbnails/77.jpg)
AVPictureInPictureControllerEnable/disable Picture in Picture button
// Find out whether Picture in Picture is possible. let pipPossible = pipController.pictureInPicturePossible
// Enable/disable Picture in Picture button. pipButton.enabled = pipPossible
![Page 78: 211 Multitasking Essentials for Media-Based Apps on iPad ... · Getting Started with Multitasking on iPad in iOS 9 Presidio Tuesday 4:30PM Multitasking Essentials for Media-Based](https://reader033.vdocument.in/reader033/viewer/2022051322/60055a7836f4bc792f05017d/html5/thumbnails/78.jpg)
AVPictureInPictureControllerHow to start Picture in Picture
func pipButtonTapped(sender: AnyObject?) { // Make sure Picture in Picture is not already active. if !pipController.pictureInPictureActive { // Start Picture in Picture on button tap. pipController.startPictureInPicture() } }
![Page 79: 211 Multitasking Essentials for Media-Based Apps on iPad ... · Getting Started with Multitasking on iPad in iOS 9 Presidio Tuesday 4:30PM Multitasking Essentials for Media-Based](https://reader033.vdocument.in/reader033/viewer/2022051322/60055a7836f4bc792f05017d/html5/thumbnails/79.jpg)
AVPictureInPictureControllerHow to start Picture in Picture
func pipButtonTapped(sender: AnyObject?) { // Make sure Picture in Picture is not already active. if !pipController.pictureInPictureActive { // Start Picture in Picture on button tap. pipController.startPictureInPicture() } }
![Page 80: 211 Multitasking Essentials for Media-Based Apps on iPad ... · Getting Started with Multitasking on iPad in iOS 9 Presidio Tuesday 4:30PM Multitasking Essentials for Media-Based](https://reader033.vdocument.in/reader033/viewer/2022051322/60055a7836f4bc792f05017d/html5/thumbnails/80.jpg)
AVPictureInPictureControllerHow to start Picture in Picture
func pipButtonTapped(sender: AnyObject?) { // Make sure Picture in Picture is not already active. if !pipController.pictureInPictureActive { // Start Picture in Picture on button tap. pipController.startPictureInPicture() }}
![Page 81: 211 Multitasking Essentials for Media-Based Apps on iPad ... · Getting Started with Multitasking on iPad in iOS 9 Presidio Tuesday 4:30PM Multitasking Essentials for Media-Based](https://reader033.vdocument.in/reader033/viewer/2022051322/60055a7836f4bc792f05017d/html5/thumbnails/81.jpg)
AVPictureInPictureControllerHow to start Picture in Picture
func pipButtonTapped(sender: AnyObject?) { // Make sure Picture in Picture is not already active. if !pipController.pictureInPictureActive { // Start Picture in Picture on button tap. pipController.startPictureInPicture() }}
App Store review team will reject your app if used inappropriately
![Page 82: 211 Multitasking Essentials for Media-Based Apps on iPad ... · Getting Started with Multitasking on iPad in iOS 9 Presidio Tuesday 4:30PM Multitasking Essentials for Media-Based](https://reader033.vdocument.in/reader033/viewer/2022051322/60055a7836f4bc792f05017d/html5/thumbnails/82.jpg)
AVPictureInPictureControllerDismiss video playback view controller after start
func pictureInPictureControllerDidStartPictureInPicture(pipController: AVPictureInPictureController) { // Dismiss modal video playback view controller. dismissViewControllerAnimated(true, completion: nil) }
![Page 83: 211 Multitasking Essentials for Media-Based Apps on iPad ... · Getting Started with Multitasking on iPad in iOS 9 Presidio Tuesday 4:30PM Multitasking Essentials for Media-Based](https://reader033.vdocument.in/reader033/viewer/2022051322/60055a7836f4bc792f05017d/html5/thumbnails/83.jpg)
AVPictureInPictureControllerDismiss video playback view controller after start
func pictureInPictureControllerDidStartPictureInPicture(pipController: AVPictureInPictureController) { // Dismiss modal video playback view controller. dismissViewControllerAnimated(true, completion: nil) }
![Page 84: 211 Multitasking Essentials for Media-Based Apps on iPad ... · Getting Started with Multitasking on iPad in iOS 9 Presidio Tuesday 4:30PM Multitasking Essentials for Media-Based](https://reader033.vdocument.in/reader033/viewer/2022051322/60055a7836f4bc792f05017d/html5/thumbnails/84.jpg)
AVPictureInPictureControllerDismiss video playback view controller after start
func pictureInPictureControllerDidStartPictureInPicture(pipController: AVPictureInPictureController) { // Dismiss modal video playback view controller. dismissViewControllerAnimated(true, completion: nil) }
![Page 85: 211 Multitasking Essentials for Media-Based Apps on iPad ... · Getting Started with Multitasking on iPad in iOS 9 Presidio Tuesday 4:30PM Multitasking Essentials for Media-Based](https://reader033.vdocument.in/reader033/viewer/2022051322/60055a7836f4bc792f05017d/html5/thumbnails/85.jpg)
AVPictureInPictureControllerWhile Picture in Picture is active
pipController
![Page 86: 211 Multitasking Essentials for Media-Based Apps on iPad ... · Getting Started with Multitasking on iPad in iOS 9 Presidio Tuesday 4:30PM Multitasking Essentials for Media-Based](https://reader033.vdocument.in/reader033/viewer/2022051322/60055a7836f4bc792f05017d/html5/thumbnails/86.jpg)
AVPictureInPictureControllerWhile Picture in Picture is active
![Page 87: 211 Multitasking Essentials for Media-Based Apps on iPad ... · Getting Started with Multitasking on iPad in iOS 9 Presidio Tuesday 4:30PM Multitasking Essentials for Media-Based](https://reader033.vdocument.in/reader033/viewer/2022051322/60055a7836f4bc792f05017d/html5/thumbnails/87.jpg)
AVPictureInPictureControllerRestore video playback view controller before stop
func pictureInPictureController(pipController: AVPictureInPictureController, restoreUserInterfaceForPictureInPictureStopWithCompletionHandler completionHandler: (Bool) -> Void) { // Present video playback view controller again. navigationController?.presentViewController(self, animated: true) { // Don’t forget to call completion handler. completionHandler(true) } }
![Page 88: 211 Multitasking Essentials for Media-Based Apps on iPad ... · Getting Started with Multitasking on iPad in iOS 9 Presidio Tuesday 4:30PM Multitasking Essentials for Media-Based](https://reader033.vdocument.in/reader033/viewer/2022051322/60055a7836f4bc792f05017d/html5/thumbnails/88.jpg)
AVPictureInPictureControllerRestore video playback view controller before stop
func pictureInPictureController(pipController: AVPictureInPictureController, restoreUserInterfaceForPictureInPictureStopWithCompletionHandler completionHandler: (Bool) -> Void) { // Present video playback view controller again. navigationController?.presentViewController(self, animated: true) { // Don’t forget to call completion handler. completionHandler(true) } }
![Page 89: 211 Multitasking Essentials for Media-Based Apps on iPad ... · Getting Started with Multitasking on iPad in iOS 9 Presidio Tuesday 4:30PM Multitasking Essentials for Media-Based](https://reader033.vdocument.in/reader033/viewer/2022051322/60055a7836f4bc792f05017d/html5/thumbnails/89.jpg)
AVPictureInPictureControllerRestore video playback view controller before stop
func pictureInPictureController(pipController: AVPictureInPictureController, restoreUserInterfaceForPictureInPictureStopWithCompletionHandler completionHandler: (Bool) -> Void) { // Present video playback view controller again. navigationController?.presentViewController(self, animated: true) { // Don’t forget to call completion handler. completionHandler(true) } }
![Page 90: 211 Multitasking Essentials for Media-Based Apps on iPad ... · Getting Started with Multitasking on iPad in iOS 9 Presidio Tuesday 4:30PM Multitasking Essentials for Media-Based](https://reader033.vdocument.in/reader033/viewer/2022051322/60055a7836f4bc792f05017d/html5/thumbnails/90.jpg)
AVPictureInPictureControllerRestore video playback view controller before stop
func pictureInPictureController(pipController: AVPictureInPictureController, restoreUserInterfaceForPictureInPictureStopWithCompletionHandler completionHandler: (Bool) -> Void) { // Present video playback view controller again. navigationController?.presentViewController(self, animated: true) { // Don’t forget to call completion handler. completionHandler(true) }}
![Page 91: 211 Multitasking Essentials for Media-Based Apps on iPad ... · Getting Started with Multitasking on iPad in iOS 9 Presidio Tuesday 4:30PM Multitasking Essentials for Media-Based](https://reader033.vdocument.in/reader033/viewer/2022051322/60055a7836f4bc792f05017d/html5/thumbnails/91.jpg)
AVPictureInPictureControllerRestore video playback view controller before stop
func pictureInPictureController(pipController: AVPictureInPictureController, restoreUserInterfaceForPictureInPictureStopWithCompletionHandler completionHandler: (Bool) -> Void) { // Present video playback view controller again. navigationController?.presentViewController(self, animated: true) { // Don’t forget to call completion handler. completionHandler(true) }}
Need to reuse AVPlayerLayer passed to AVPictureInPictureController
![Page 92: 211 Multitasking Essentials for Media-Based Apps on iPad ... · Getting Started with Multitasking on iPad in iOS 9 Presidio Tuesday 4:30PM Multitasking Essentials for Media-Based](https://reader033.vdocument.in/reader033/viewer/2022051322/60055a7836f4bc792f05017d/html5/thumbnails/92.jpg)
![Page 93: 211 Multitasking Essentials for Media-Based Apps on iPad ... · Getting Started with Multitasking on iPad in iOS 9 Presidio Tuesday 4:30PM Multitasking Essentials for Media-Based](https://reader033.vdocument.in/reader033/viewer/2022051322/60055a7836f4bc792f05017d/html5/thumbnails/93.jpg)
![Page 94: 211 Multitasking Essentials for Media-Based Apps on iPad ... · Getting Started with Multitasking on iPad in iOS 9 Presidio Tuesday 4:30PM Multitasking Essentials for Media-Based](https://reader033.vdocument.in/reader033/viewer/2022051322/60055a7836f4bc792f05017d/html5/thumbnails/94.jpg)
AVPictureInPictureControllerHide playback controls and show placeholder artwork
func pictureInPictureControllerWillStartPictureInPicture(pipController: AVPictureInPictureController) { // Hide playback controls. hidePlaybackControls() // Show placeholder artwork. showPlaceholderArtwork() }
![Page 95: 211 Multitasking Essentials for Media-Based Apps on iPad ... · Getting Started with Multitasking on iPad in iOS 9 Presidio Tuesday 4:30PM Multitasking Essentials for Media-Based](https://reader033.vdocument.in/reader033/viewer/2022051322/60055a7836f4bc792f05017d/html5/thumbnails/95.jpg)
AVPictureInPictureControllerHide playback controls and show placeholder artwork
func pictureInPictureControllerWillStartPictureInPicture(pipController: AVPictureInPictureController) { // Hide playback controls. hidePlaybackControls() // Show placeholder artwork. showPlaceholderArtwork() }
![Page 96: 211 Multitasking Essentials for Media-Based Apps on iPad ... · Getting Started with Multitasking on iPad in iOS 9 Presidio Tuesday 4:30PM Multitasking Essentials for Media-Based](https://reader033.vdocument.in/reader033/viewer/2022051322/60055a7836f4bc792f05017d/html5/thumbnails/96.jpg)
AVPictureInPictureControllerHide playback controls and show placeholder artwork
func pictureInPictureControllerWillStartPictureInPicture(pipController: AVPictureInPictureController) { // Hide playback controls. hidePlaybackControls() // Show placeholder artwork. showPlaceholderArtwork() }
![Page 97: 211 Multitasking Essentials for Media-Based Apps on iPad ... · Getting Started with Multitasking on iPad in iOS 9 Presidio Tuesday 4:30PM Multitasking Essentials for Media-Based](https://reader033.vdocument.in/reader033/viewer/2022051322/60055a7836f4bc792f05017d/html5/thumbnails/97.jpg)
AVPictureInPictureControllerHide playback controls and show placeholder artwork
func pictureInPictureControllerWillStartPictureInPicture(pipController: AVPictureInPictureController) { // Hide playback controls. hidePlaybackControls() // Show placeholder artwork. showPlaceholderArtwork() }
![Page 98: 211 Multitasking Essentials for Media-Based Apps on iPad ... · Getting Started with Multitasking on iPad in iOS 9 Presidio Tuesday 4:30PM Multitasking Essentials for Media-Based](https://reader033.vdocument.in/reader033/viewer/2022051322/60055a7836f4bc792f05017d/html5/thumbnails/98.jpg)
AVPictureInPictureControllerHide playback controls and show placeholder artwork
func pictureInPictureControllerDidStopPictureInPicture(pipController: AVPictureInPictureController) { // Hide placeholder artwork. hidePlaceholderArtwork() // Show playback controls. showPlaybackControls() }
![Page 99: 211 Multitasking Essentials for Media-Based Apps on iPad ... · Getting Started with Multitasking on iPad in iOS 9 Presidio Tuesday 4:30PM Multitasking Essentials for Media-Based](https://reader033.vdocument.in/reader033/viewer/2022051322/60055a7836f4bc792f05017d/html5/thumbnails/99.jpg)
AVPictureInPictureControllerHide playback controls and show placeholder artwork
func pictureInPictureControllerDidStopPictureInPicture(pipController: AVPictureInPictureController) { // Hide placeholder artwork. hidePlaceholderArtwork() // Show playback controls. showPlaybackControls() }
![Page 100: 211 Multitasking Essentials for Media-Based Apps on iPad ... · Getting Started with Multitasking on iPad in iOS 9 Presidio Tuesday 4:30PM Multitasking Essentials for Media-Based](https://reader033.vdocument.in/reader033/viewer/2022051322/60055a7836f4bc792f05017d/html5/thumbnails/100.jpg)
AVPictureInPictureControllerHide playback controls and show placeholder artwork
func pictureInPictureControllerDidStopPictureInPicture(pipController: AVPictureInPictureController) { // Hide placeholder artwork. hidePlaceholderArtwork() // Show playback controls. showPlaybackControls() }
![Page 101: 211 Multitasking Essentials for Media-Based Apps on iPad ... · Getting Started with Multitasking on iPad in iOS 9 Presidio Tuesday 4:30PM Multitasking Essentials for Media-Based](https://reader033.vdocument.in/reader033/viewer/2022051322/60055a7836f4bc792f05017d/html5/thumbnails/101.jpg)
AVPictureInPictureControllerHide playback controls and show placeholder artwork
func pictureInPictureControllerDidStopPictureInPicture(pipController: AVPictureInPictureController) { // Hide placeholder artwork. hidePlaceholderArtwork() // Show playback controls. showPlaybackControls() }
![Page 102: 211 Multitasking Essentials for Media-Based Apps on iPad ... · Getting Started with Multitasking on iPad in iOS 9 Presidio Tuesday 4:30PM Multitasking Essentials for Media-Based](https://reader033.vdocument.in/reader033/viewer/2022051322/60055a7836f4bc792f05017d/html5/thumbnails/102.jpg)
AVPictureInPictureControllerPersistent Video Overlay
UIWindow
![Page 103: 211 Multitasking Essentials for Media-Based Apps on iPad ... · Getting Started with Multitasking on iPad in iOS 9 Presidio Tuesday 4:30PM Multitasking Essentials for Media-Based](https://reader033.vdocument.in/reader033/viewer/2022051322/60055a7836f4bc792f05017d/html5/thumbnails/103.jpg)
AVPictureInPictureControllerPersistent Video Overlay
UIWindow
![Page 104: 211 Multitasking Essentials for Media-Based Apps on iPad ... · Getting Started with Multitasking on iPad in iOS 9 Presidio Tuesday 4:30PM Multitasking Essentials for Media-Based](https://reader033.vdocument.in/reader033/viewer/2022051322/60055a7836f4bc792f05017d/html5/thumbnails/104.jpg)
AVPictureInPictureControllerSample code
AVFoundationPiPPlayer
![Page 105: 211 Multitasking Essentials for Media-Based Apps on iPad ... · Getting Started with Multitasking on iPad in iOS 9 Presidio Tuesday 4:30PM Multitasking Essentials for Media-Based](https://reader033.vdocument.in/reader033/viewer/2022051322/60055a7836f4bc792f05017d/html5/thumbnails/105.jpg)
![Page 106: 211 Multitasking Essentials for Media-Based Apps on iPad ... · Getting Started with Multitasking on iPad in iOS 9 Presidio Tuesday 4:30PM Multitasking Essentials for Media-Based](https://reader033.vdocument.in/reader033/viewer/2022051322/60055a7836f4bc792f05017d/html5/thumbnails/106.jpg)
![Page 107: 211 Multitasking Essentials for Media-Based Apps on iPad ... · Getting Started with Multitasking on iPad in iOS 9 Presidio Tuesday 4:30PM Multitasking Essentials for Media-Based](https://reader033.vdocument.in/reader033/viewer/2022051322/60055a7836f4bc792f05017d/html5/thumbnails/107.jpg)
![Page 108: 211 Multitasking Essentials for Media-Based Apps on iPad ... · Getting Started with Multitasking on iPad in iOS 9 Presidio Tuesday 4:30PM Multitasking Essentials for Media-Based](https://reader033.vdocument.in/reader033/viewer/2022051322/60055a7836f4bc792f05017d/html5/thumbnails/108.jpg)
WKWebViewHTML5 video Picture in Picture support
Application has background audio modeAVAudioSession configured with• AVAudioSessionCategoryPlayback • AVAudioSessionCategoryPlayAndRecord
Web content does not render custom controls
![Page 109: 211 Multitasking Essentials for Media-Based Apps on iPad ... · Getting Started with Multitasking on iPad in iOS 9 Presidio Tuesday 4:30PM Multitasking Essentials for Media-Based](https://reader033.vdocument.in/reader033/viewer/2022051322/60055a7836f4bc792f05017d/html5/thumbnails/109.jpg)
WKWebViewHTML5 video Picture in Picture support
Application has background audio modeAVAudioSession configured with• AVAudioSessionCategoryPlayback • AVAudioSessionCategoryPlayAndRecord
Web content does not render custom controls
What’s New in Web Developers in WebKit and Safari Mission Tuesday 9:00AM
![Page 110: 211 Multitasking Essentials for Media-Based Apps on iPad ... · Getting Started with Multitasking on iPad in iOS 9 Presidio Tuesday 4:30PM Multitasking Essentials for Media-Based](https://reader033.vdocument.in/reader033/viewer/2022051322/60055a7836f4bc792f05017d/html5/thumbnails/110.jpg)
WKWebViewDisable HTML5 video Picture in Picture support
class WKWebViewConfiguration : NSObject { // Whether or not to allow Picture in Picture playback. Default is YES. var allowsPictureInPictureMediaPlayback: Bool }
![Page 111: 211 Multitasking Essentials for Media-Based Apps on iPad ... · Getting Started with Multitasking on iPad in iOS 9 Presidio Tuesday 4:30PM Multitasking Essentials for Media-Based](https://reader033.vdocument.in/reader033/viewer/2022051322/60055a7836f4bc792f05017d/html5/thumbnails/111.jpg)
![Page 112: 211 Multitasking Essentials for Media-Based Apps on iPad ... · Getting Started with Multitasking on iPad in iOS 9 Presidio Tuesday 4:30PM Multitasking Essentials for Media-Based](https://reader033.vdocument.in/reader033/viewer/2022051322/60055a7836f4bc792f05017d/html5/thumbnails/112.jpg)
![Page 113: 211 Multitasking Essentials for Media-Based Apps on iPad ... · Getting Started with Multitasking on iPad in iOS 9 Presidio Tuesday 4:30PM Multitasking Essentials for Media-Based](https://reader033.vdocument.in/reader033/viewer/2022051322/60055a7836f4bc792f05017d/html5/thumbnails/113.jpg)
Picture in PictureIs a lot like background audio
Same rules as background audio and AirPlay applyApp Store review team will reject app if in violation
![Page 114: 211 Multitasking Essentials for Media-Based Apps on iPad ... · Getting Started with Multitasking on iPad in iOS 9 Presidio Tuesday 4:30PM Multitasking Essentials for Media-Based](https://reader033.vdocument.in/reader033/viewer/2022051322/60055a7836f4bc792f05017d/html5/thumbnails/114.jpg)
Shared Resources
Jonathan Bennett Media Systems Product Lead
![Page 115: 211 Multitasking Essentials for Media-Based Apps on iPad ... · Getting Started with Multitasking on iPad in iOS 9 Presidio Tuesday 4:30PM Multitasking Essentials for Media-Based](https://reader033.vdocument.in/reader033/viewer/2022051322/60055a7836f4bc792f05017d/html5/thumbnails/115.jpg)
Shared Resources
CameraAudio Video
![Page 116: 211 Multitasking Essentials for Media-Based Apps on iPad ... · Getting Started with Multitasking on iPad in iOS 9 Presidio Tuesday 4:30PM Multitasking Essentials for Media-Based](https://reader033.vdocument.in/reader033/viewer/2022051322/60055a7836f4bc792f05017d/html5/thumbnails/116.jpg)
Multitasking for iPadPrimary and secondary apps
Fullscreen
![Page 117: 211 Multitasking Essentials for Media-Based Apps on iPad ... · Getting Started with Multitasking on iPad in iOS 9 Presidio Tuesday 4:30PM Multitasking Essentials for Media-Based](https://reader033.vdocument.in/reader033/viewer/2022051322/60055a7836f4bc792f05017d/html5/thumbnails/117.jpg)
Multitasking for iPadPrimary and secondary apps
FullscreenSlide OverSplit ViewPicture in Picture
![Page 118: 211 Multitasking Essentials for Media-Based Apps on iPad ... · Getting Started with Multitasking on iPad in iOS 9 Presidio Tuesday 4:30PM Multitasking Essentials for Media-Based](https://reader033.vdocument.in/reader033/viewer/2022051322/60055a7836f4bc792f05017d/html5/thumbnails/118.jpg)
Multitasking for iPadPrimary and secondary apps
FullscreenSlide OverSplit ViewPicture in Picture
![Page 119: 211 Multitasking Essentials for Media-Based Apps on iPad ... · Getting Started with Multitasking on iPad in iOS 9 Presidio Tuesday 4:30PM Multitasking Essentials for Media-Based](https://reader033.vdocument.in/reader033/viewer/2022051322/60055a7836f4bc792f05017d/html5/thumbnails/119.jpg)
Multitasking for iPadPrimary and secondary apps
FullscreenSlide OverSplit ViewPicture in Picture
Primary
![Page 120: 211 Multitasking Essentials for Media-Based Apps on iPad ... · Getting Started with Multitasking on iPad in iOS 9 Presidio Tuesday 4:30PM Multitasking Essentials for Media-Based](https://reader033.vdocument.in/reader033/viewer/2022051322/60055a7836f4bc792f05017d/html5/thumbnails/120.jpg)
Multitasking for iPadPrimary and secondary apps
FullscreenSlide OverSplit ViewPicture in Picture
![Page 121: 211 Multitasking Essentials for Media-Based Apps on iPad ... · Getting Started with Multitasking on iPad in iOS 9 Presidio Tuesday 4:30PM Multitasking Essentials for Media-Based](https://reader033.vdocument.in/reader033/viewer/2022051322/60055a7836f4bc792f05017d/html5/thumbnails/121.jpg)
Multitasking for iPadPrimary and secondary apps
FullscreenSlide OverSplit ViewPicture in Picture
SecondaryPrimary
![Page 122: 211 Multitasking Essentials for Media-Based Apps on iPad ... · Getting Started with Multitasking on iPad in iOS 9 Presidio Tuesday 4:30PM Multitasking Essentials for Media-Based](https://reader033.vdocument.in/reader033/viewer/2022051322/60055a7836f4bc792f05017d/html5/thumbnails/122.jpg)
Multitasking for iPadPrimary and secondary apps
FullscreenSlide OverSplit ViewPicture in Picture
![Page 123: 211 Multitasking Essentials for Media-Based Apps on iPad ... · Getting Started with Multitasking on iPad in iOS 9 Presidio Tuesday 4:30PM Multitasking Essentials for Media-Based](https://reader033.vdocument.in/reader033/viewer/2022051322/60055a7836f4bc792f05017d/html5/thumbnails/123.jpg)
Multitasking for iPadPrimary and secondary apps
FullscreenSlide OverSplit ViewPicture in Picture
SecondaryPrimary
![Page 124: 211 Multitasking Essentials for Media-Based Apps on iPad ... · Getting Started with Multitasking on iPad in iOS 9 Presidio Tuesday 4:30PM Multitasking Essentials for Media-Based](https://reader033.vdocument.in/reader033/viewer/2022051322/60055a7836f4bc792f05017d/html5/thumbnails/124.jpg)
Multitasking for iPadPrimary and secondary apps
FullscreenSlide OverSplit ViewPicture in Picture
SecondaryPrimary
![Page 125: 211 Multitasking Essentials for Media-Based Apps on iPad ... · Getting Started with Multitasking on iPad in iOS 9 Presidio Tuesday 4:30PM Multitasking Essentials for Media-Based](https://reader033.vdocument.in/reader033/viewer/2022051322/60055a7836f4bc792f05017d/html5/thumbnails/125.jpg)
Multitasking for iPadPrimary and secondary apps
FullscreenSlide OverSplit ViewPicture in Picture
SecondaryPrimary
Background Media
![Page 126: 211 Multitasking Essentials for Media-Based Apps on iPad ... · Getting Started with Multitasking on iPad in iOS 9 Presidio Tuesday 4:30PM Multitasking Essentials for Media-Based](https://reader033.vdocument.in/reader033/viewer/2022051322/60055a7836f4bc792f05017d/html5/thumbnails/126.jpg)
Shared Resources
Audio CameraVideo
![Page 127: 211 Multitasking Essentials for Media-Based Apps on iPad ... · Getting Started with Multitasking on iPad in iOS 9 Presidio Tuesday 4:30PM Multitasking Essentials for Media-Based](https://reader033.vdocument.in/reader033/viewer/2022051322/60055a7836f4bc792f05017d/html5/thumbnails/127.jpg)
Shared Resources
AudioCameraVideo
![Page 128: 211 Multitasking Essentials for Media-Based Apps on iPad ... · Getting Started with Multitasking on iPad in iOS 9 Presidio Tuesday 4:30PM Multitasking Essentials for Media-Based](https://reader033.vdocument.in/reader033/viewer/2022051322/60055a7836f4bc792f05017d/html5/thumbnails/128.jpg)
AudioBest practices
Properly configure AVAudioSession
![Page 129: 211 Multitasking Essentials for Media-Based Apps on iPad ... · Getting Started with Multitasking on iPad in iOS 9 Presidio Tuesday 4:30PM Multitasking Essentials for Media-Based](https://reader033.vdocument.in/reader033/viewer/2022051322/60055a7836f4bc792f05017d/html5/thumbnails/129.jpg)
AudioBest practices
Properly configure AVAudioSession• One configuration to rule them all…
![Page 130: 211 Multitasking Essentials for Media-Based Apps on iPad ... · Getting Started with Multitasking on iPad in iOS 9 Presidio Tuesday 4:30PM Multitasking Essentials for Media-Based](https://reader033.vdocument.in/reader033/viewer/2022051322/60055a7836f4bc792f05017d/html5/thumbnails/130.jpg)
AudioBest practices
Properly configure AVAudioSession• One configuration to rule them all…
Only activate session when audio is first needed
![Page 131: 211 Multitasking Essentials for Media-Based Apps on iPad ... · Getting Started with Multitasking on iPad in iOS 9 Presidio Tuesday 4:30PM Multitasking Essentials for Media-Based](https://reader033.vdocument.in/reader033/viewer/2022051322/60055a7836f4bc792f05017d/html5/thumbnails/131.jpg)
AudioBest practices
Properly configure AVAudioSession• One configuration to rule them all…
Only activate session when audio is first neededGames or sound effects?• Use Ambient category
![Page 132: 211 Multitasking Essentials for Media-Based Apps on iPad ... · Getting Started with Multitasking on iPad in iOS 9 Presidio Tuesday 4:30PM Multitasking Essentials for Media-Based](https://reader033.vdocument.in/reader033/viewer/2022051322/60055a7836f4bc792f05017d/html5/thumbnails/132.jpg)
AudioBest practices
Properly configure AVAudioSession• One configuration to rule them all…
Only activate session when audio is first neededGames or sound effects?• Use Ambient category
Secondary audio tracks?• Use secondaryAudioShouldBeSilencedHint (iOS 8)
![Page 133: 211 Multitasking Essentials for Media-Based Apps on iPad ... · Getting Started with Multitasking on iPad in iOS 9 Presidio Tuesday 4:30PM Multitasking Essentials for Media-Based](https://reader033.vdocument.in/reader033/viewer/2022051322/60055a7836f4bc792f05017d/html5/thumbnails/133.jpg)
AudioBest practices
Properly configure AVAudioSession• One configuration to rule them all…
What’s New in Core Audio WWDC 2014
Audio Session Programming Guide http://developer.apple.com/iOS
Only activate session when audio is first neededGames or sound effects?• Use Ambient category
Secondary audio tracks?• Use secondaryAudioShouldBeSilencedHint (iOS 8)
![Page 134: 211 Multitasking Essentials for Media-Based Apps on iPad ... · Getting Started with Multitasking on iPad in iOS 9 Presidio Tuesday 4:30PM Multitasking Essentials for Media-Based](https://reader033.vdocument.in/reader033/viewer/2022051322/60055a7836f4bc792f05017d/html5/thumbnails/134.jpg)
Shared Resources
Audio CameraVideo
![Page 135: 211 Multitasking Essentials for Media-Based Apps on iPad ... · Getting Started with Multitasking on iPad in iOS 9 Presidio Tuesday 4:30PM Multitasking Essentials for Media-Based](https://reader033.vdocument.in/reader033/viewer/2022051322/60055a7836f4bc792f05017d/html5/thumbnails/135.jpg)
Shared Resources
Audio CameraVideo
![Page 136: 211 Multitasking Essentials for Media-Based Apps on iPad ... · Getting Started with Multitasking on iPad in iOS 9 Presidio Tuesday 4:30PM Multitasking Essentials for Media-Based](https://reader033.vdocument.in/reader033/viewer/2022051322/60055a7836f4bc792f05017d/html5/thumbnails/136.jpg)
Video
Video has audio?• Properly configure AVAudioSession
![Page 137: 211 Multitasking Essentials for Media-Based Apps on iPad ... · Getting Started with Multitasking on iPad in iOS 9 Presidio Tuesday 4:30PM Multitasking Essentials for Media-Based](https://reader033.vdocument.in/reader033/viewer/2022051322/60055a7836f4bc792f05017d/html5/thumbnails/137.jpg)
Video
Video has audio?• Properly configure AVAudioSession
Background media• Discard unnecessary data
![Page 138: 211 Multitasking Essentials for Media-Based Apps on iPad ... · Getting Started with Multitasking on iPad in iOS 9 Presidio Tuesday 4:30PM Multitasking Essentials for Media-Based](https://reader033.vdocument.in/reader033/viewer/2022051322/60055a7836f4bc792f05017d/html5/thumbnails/138.jpg)
VideoHTTP Live Streaming
Multiple stream variants• Include a 1-3 Mbps variant
Annotate variants with RESOLUTION in master playlist
![Page 139: 211 Multitasking Essentials for Media-Based Apps on iPad ... · Getting Started with Multitasking on iPad in iOS 9 Presidio Tuesday 4:30PM Multitasking Essentials for Media-Based](https://reader033.vdocument.in/reader033/viewer/2022051322/60055a7836f4bc792f05017d/html5/thumbnails/139.jpg)
![Page 140: 211 Multitasking Essentials for Media-Based Apps on iPad ... · Getting Started with Multitasking on iPad in iOS 9 Presidio Tuesday 4:30PM Multitasking Essentials for Media-Based](https://reader033.vdocument.in/reader033/viewer/2022051322/60055a7836f4bc792f05017d/html5/thumbnails/140.jpg)
![Page 141: 211 Multitasking Essentials for Media-Based Apps on iPad ... · Getting Started with Multitasking on iPad in iOS 9 Presidio Tuesday 4:30PM Multitasking Essentials for Media-Based](https://reader033.vdocument.in/reader033/viewer/2022051322/60055a7836f4bc792f05017d/html5/thumbnails/141.jpg)
Shared Resources
CameraAudio Video
![Page 142: 211 Multitasking Essentials for Media-Based Apps on iPad ... · Getting Started with Multitasking on iPad in iOS 9 Presidio Tuesday 4:30PM Multitasking Essentials for Media-Based](https://reader033.vdocument.in/reader033/viewer/2022051322/60055a7836f4bc792f05017d/html5/thumbnails/142.jpg)
Shared Resources
CameraAudio Video
![Page 143: 211 Multitasking Essentials for Media-Based Apps on iPad ... · Getting Started with Multitasking on iPad in iOS 9 Presidio Tuesday 4:30PM Multitasking Essentials for Media-Based](https://reader033.vdocument.in/reader033/viewer/2022051322/60055a7836f4bc792f05017d/html5/thumbnails/143.jpg)
Camera
Only one app can use the camera
![Page 144: 211 Multitasking Essentials for Media-Based Apps on iPad ... · Getting Started with Multitasking on iPad in iOS 9 Presidio Tuesday 4:30PM Multitasking Essentials for Media-Based](https://reader033.vdocument.in/reader033/viewer/2022051322/60055a7836f4bc792f05017d/html5/thumbnails/144.jpg)
Camera
Only one app can use the camera• Availability can change at any time
![Page 145: 211 Multitasking Essentials for Media-Based Apps on iPad ... · Getting Started with Multitasking on iPad in iOS 9 Presidio Tuesday 4:30PM Multitasking Essentials for Media-Based](https://reader033.vdocument.in/reader033/viewer/2022051322/60055a7836f4bc792f05017d/html5/thumbnails/145.jpg)
![Page 146: 211 Multitasking Essentials for Media-Based Apps on iPad ... · Getting Started with Multitasking on iPad in iOS 9 Presidio Tuesday 4:30PM Multitasking Essentials for Media-Based](https://reader033.vdocument.in/reader033/viewer/2022051322/60055a7836f4bc792f05017d/html5/thumbnails/146.jpg)
Consider UIRequiresFullscreen = YES
![Page 147: 211 Multitasking Essentials for Media-Based Apps on iPad ... · Getting Started with Multitasking on iPad in iOS 9 Presidio Tuesday 4:30PM Multitasking Essentials for Media-Based](https://reader033.vdocument.in/reader033/viewer/2022051322/60055a7836f4bc792f05017d/html5/thumbnails/147.jpg)
![Page 148: 211 Multitasking Essentials for Media-Based Apps on iPad ... · Getting Started with Multitasking on iPad in iOS 9 Presidio Tuesday 4:30PM Multitasking Essentials for Media-Based](https://reader033.vdocument.in/reader033/viewer/2022051322/60055a7836f4bc792f05017d/html5/thumbnails/148.jpg)
![Page 149: 211 Multitasking Essentials for Media-Based Apps on iPad ... · Getting Started with Multitasking on iPad in iOS 9 Presidio Tuesday 4:30PM Multitasking Essentials for Media-Based](https://reader033.vdocument.in/reader033/viewer/2022051322/60055a7836f4bc792f05017d/html5/thumbnails/149.jpg)
![Page 150: 211 Multitasking Essentials for Media-Based Apps on iPad ... · Getting Started with Multitasking on iPad in iOS 9 Presidio Tuesday 4:30PM Multitasking Essentials for Media-Based](https://reader033.vdocument.in/reader033/viewer/2022051322/60055a7836f4bc792f05017d/html5/thumbnails/150.jpg)
Camera API
UIImagePickerControllerAVCaptureSession
![Page 151: 211 Multitasking Essentials for Media-Based Apps on iPad ... · Getting Started with Multitasking on iPad in iOS 9 Presidio Tuesday 4:30PM Multitasking Essentials for Media-Based](https://reader033.vdocument.in/reader033/viewer/2022051322/60055a7836f4bc792f05017d/html5/thumbnails/151.jpg)
UIImagePickerController
Camera Preview
PhotoCapture
VideoCapture
Single App
![Page 152: 211 Multitasking Essentials for Media-Based Apps on iPad ... · Getting Started with Multitasking on iPad in iOS 9 Presidio Tuesday 4:30PM Multitasking Essentials for Media-Based](https://reader033.vdocument.in/reader033/viewer/2022051322/60055a7836f4bc792f05017d/html5/thumbnails/152.jpg)
UIImagePickerController
Camera Preview
PhotoCapture
VideoCapture
Single App Multiple Apps
![Page 153: 211 Multitasking Essentials for Media-Based Apps on iPad ... · Getting Started with Multitasking on iPad in iOS 9 Presidio Tuesday 4:30PM Multitasking Essentials for Media-Based](https://reader033.vdocument.in/reader033/viewer/2022051322/60055a7836f4bc792f05017d/html5/thumbnails/153.jpg)
UIImagePickerController
Single App Multiple Apps
Camera Preview
PhotoCapture
VideoCapture
![Page 154: 211 Multitasking Essentials for Media-Based Apps on iPad ... · Getting Started with Multitasking on iPad in iOS 9 Presidio Tuesday 4:30PM Multitasking Essentials for Media-Based](https://reader033.vdocument.in/reader033/viewer/2022051322/60055a7836f4bc792f05017d/html5/thumbnails/154.jpg)
![Page 155: 211 Multitasking Essentials for Media-Based Apps on iPad ... · Getting Started with Multitasking on iPad in iOS 9 Presidio Tuesday 4:30PM Multitasking Essentials for Media-Based](https://reader033.vdocument.in/reader033/viewer/2022051322/60055a7836f4bc792f05017d/html5/thumbnails/155.jpg)
YourApp must be fullscreen to record video
![Page 156: 211 Multitasking Essentials for Media-Based Apps on iPad ... · Getting Started with Multitasking on iPad in iOS 9 Presidio Tuesday 4:30PM Multitasking Essentials for Media-Based](https://reader033.vdocument.in/reader033/viewer/2022051322/60055a7836f4bc792f05017d/html5/thumbnails/156.jpg)
UIImagePickerController
Active captures may be interrupted
![Page 157: 211 Multitasking Essentials for Media-Based Apps on iPad ... · Getting Started with Multitasking on iPad in iOS 9 Presidio Tuesday 4:30PM Multitasking Essentials for Media-Based](https://reader033.vdocument.in/reader033/viewer/2022051322/60055a7836f4bc792f05017d/html5/thumbnails/157.jpg)
![Page 158: 211 Multitasking Essentials for Media-Based Apps on iPad ... · Getting Started with Multitasking on iPad in iOS 9 Presidio Tuesday 4:30PM Multitasking Essentials for Media-Based](https://reader033.vdocument.in/reader033/viewer/2022051322/60055a7836f4bc792f05017d/html5/thumbnails/158.jpg)
![Page 159: 211 Multitasking Essentials for Media-Based Apps on iPad ... · Getting Started with Multitasking on iPad in iOS 9 Presidio Tuesday 4:30PM Multitasking Essentials for Media-Based](https://reader033.vdocument.in/reader033/viewer/2022051322/60055a7836f4bc792f05017d/html5/thumbnails/159.jpg)
UIImagePickerController
Active captures may be interrupted
![Page 160: 211 Multitasking Essentials for Media-Based Apps on iPad ... · Getting Started with Multitasking on iPad in iOS 9 Presidio Tuesday 4:30PM Multitasking Essentials for Media-Based](https://reader033.vdocument.in/reader033/viewer/2022051322/60055a7836f4bc792f05017d/html5/thumbnails/160.jpg)
UIImagePickerController
Active captures may be interruptedstartVideoCapture() may return false
![Page 161: 211 Multitasking Essentials for Media-Based Apps on iPad ... · Getting Started with Multitasking on iPad in iOS 9 Presidio Tuesday 4:30PM Multitasking Essentials for Media-Based](https://reader033.vdocument.in/reader033/viewer/2022051322/60055a7836f4bc792f05017d/html5/thumbnails/161.jpg)
Camera API
UIImagePickerControllerAVCaptureSession
![Page 162: 211 Multitasking Essentials for Media-Based Apps on iPad ... · Getting Started with Multitasking on iPad in iOS 9 Presidio Tuesday 4:30PM Multitasking Essentials for Media-Based](https://reader033.vdocument.in/reader033/viewer/2022051322/60055a7836f4bc792f05017d/html5/thumbnails/162.jpg)
AVCaptureSession
Camera Preview
PhotoCapture
VideoCapture
Single App
![Page 163: 211 Multitasking Essentials for Media-Based Apps on iPad ... · Getting Started with Multitasking on iPad in iOS 9 Presidio Tuesday 4:30PM Multitasking Essentials for Media-Based](https://reader033.vdocument.in/reader033/viewer/2022051322/60055a7836f4bc792f05017d/html5/thumbnails/163.jpg)
AVCaptureSession
Camera Preview
PhotoCapture
VideoCapture
Single App Multiple Apps
![Page 164: 211 Multitasking Essentials for Media-Based Apps on iPad ... · Getting Started with Multitasking on iPad in iOS 9 Presidio Tuesday 4:30PM Multitasking Essentials for Media-Based](https://reader033.vdocument.in/reader033/viewer/2022051322/60055a7836f4bc792f05017d/html5/thumbnails/164.jpg)
AVCaptureSessionInterruptions
Observe session interruptions• AVCaptureSessionWasInterruptedNotification
![Page 165: 211 Multitasking Essentials for Media-Based Apps on iPad ... · Getting Started with Multitasking on iPad in iOS 9 Presidio Tuesday 4:30PM Multitasking Essentials for Media-Based](https://reader033.vdocument.in/reader033/viewer/2022051322/60055a7836f4bc792f05017d/html5/thumbnails/165.jpg)
AVCaptureSessionInterruptions
Observe session interruptions• AVCaptureSessionWasInterruptedNotification
Check the reason• AVCaptureSessionInterruptionReasonKey
- .VideoDeviceNotAvailableWithMultipleForegroundApps
![Page 166: 211 Multitasking Essentials for Media-Based Apps on iPad ... · Getting Started with Multitasking on iPad in iOS 9 Presidio Tuesday 4:30PM Multitasking Essentials for Media-Based](https://reader033.vdocument.in/reader033/viewer/2022051322/60055a7836f4bc792f05017d/html5/thumbnails/166.jpg)
AVCaptureSessionInterruptions
Observe session interruptions• AVCaptureSessionWasInterruptedNotification
Check the reason• AVCaptureSessionInterruptionReasonKey
- .VideoDeviceNotAvailableWithMultipleForegroundApps
Adjust UI
![Page 167: 211 Multitasking Essentials for Media-Based Apps on iPad ... · Getting Started with Multitasking on iPad in iOS 9 Presidio Tuesday 4:30PM Multitasking Essentials for Media-Based](https://reader033.vdocument.in/reader033/viewer/2022051322/60055a7836f4bc792f05017d/html5/thumbnails/167.jpg)
AVCaptureSessionInterruptions
Completed Interruptions• AVCaptureSession automatically resumes
![Page 168: 211 Multitasking Essentials for Media-Based Apps on iPad ... · Getting Started with Multitasking on iPad in iOS 9 Presidio Tuesday 4:30PM Multitasking Essentials for Media-Based](https://reader033.vdocument.in/reader033/viewer/2022051322/60055a7836f4bc792f05017d/html5/thumbnails/168.jpg)
AVCaptureSessionInterruptions
Completed Interruptions• AVCaptureSession automatically resumes
Observe• AVCaptureSessionInterruptionEndedNotification
![Page 169: 211 Multitasking Essentials for Media-Based Apps on iPad ... · Getting Started with Multitasking on iPad in iOS 9 Presidio Tuesday 4:30PM Multitasking Essentials for Media-Based](https://reader033.vdocument.in/reader033/viewer/2022051322/60055a7836f4bc792f05017d/html5/thumbnails/169.jpg)
AVCaptureSessionInterruptions
Completed Interruptions• AVCaptureSession automatically resumes
Observe• AVCaptureSessionInterruptionEndedNotification
Restore camera UI
![Page 170: 211 Multitasking Essentials for Media-Based Apps on iPad ... · Getting Started with Multitasking on iPad in iOS 9 Presidio Tuesday 4:30PM Multitasking Essentials for Media-Based](https://reader033.vdocument.in/reader033/viewer/2022051322/60055a7836f4bc792f05017d/html5/thumbnails/170.jpg)
AVCaptureSessionSample code
AVCam
![Page 171: 211 Multitasking Essentials for Media-Based Apps on iPad ... · Getting Started with Multitasking on iPad in iOS 9 Presidio Tuesday 4:30PM Multitasking Essentials for Media-Based](https://reader033.vdocument.in/reader033/viewer/2022051322/60055a7836f4bc792f05017d/html5/thumbnails/171.jpg)
Summary
Adopt Picture in Picture• AVKit, AVFoundation, WebKit• Follow best practices for
consistent experience
Master Shared Resources• Configure audio session• Provide video streaming variants• Handle camera interruptions
![Page 172: 211 Multitasking Essentials for Media-Based Apps on iPad ... · Getting Started with Multitasking on iPad in iOS 9 Presidio Tuesday 4:30PM Multitasking Essentials for Media-Based](https://reader033.vdocument.in/reader033/viewer/2022051322/60055a7836f4bc792f05017d/html5/thumbnails/172.jpg)
More Information
DocumentationAdopting Multitasking Enhancements on iPadWhat’s New in iOSStart Developing iOS AppsiOS App Programming Guide
http://developer.apple.com/iOS
Technical SupportApple Developer ForumsDeveloper Technical Support
General InquiriesCurt Rothert, App Frameworks [email protected]
![Page 173: 211 Multitasking Essentials for Media-Based Apps on iPad ... · Getting Started with Multitasking on iPad in iOS 9 Presidio Tuesday 4:30PM Multitasking Essentials for Media-Based](https://reader033.vdocument.in/reader033/viewer/2022051322/60055a7836f4bc792f05017d/html5/thumbnails/173.jpg)
Related Sessions
Getting Started with Multitasking on iPad in iOS 9 Presidio Tuesday 4:30PM
Optimizing Your App for Multitasking on iPad in iOS 9 Presidio Wednesday 3:30PM
Performance on iOS and watchOS Presidio Friday 11:00AM
![Page 174: 211 Multitasking Essentials for Media-Based Apps on iPad ... · Getting Started with Multitasking on iPad in iOS 9 Presidio Tuesday 4:30PM Multitasking Essentials for Media-Based](https://reader033.vdocument.in/reader033/viewer/2022051322/60055a7836f4bc792f05017d/html5/thumbnails/174.jpg)
Related Labs
AVKit and AVFoundation Media Lab Wednesday, Thursday, and Friday
Camera Capture Media Lab Wednesday and Thursday
HTTP Live Streaming Media Lab Thursday
Audio Media Lab Thursday
Cocoa Touch and Multitasking Frameworks Lab Wednesday
Cocoa Touch Frameworks Lab Friday
![Page 175: 211 Multitasking Essentials for Media-Based Apps on iPad ... · Getting Started with Multitasking on iPad in iOS 9 Presidio Tuesday 4:30PM Multitasking Essentials for Media-Based](https://reader033.vdocument.in/reader033/viewer/2022051322/60055a7836f4bc792f05017d/html5/thumbnails/175.jpg)