Stay organized with collections
Save and categorize content based on your preferences.
IMAPictureInPictureProxy
@interfaceIMAPictureInPictureProxy:NSProxy<AVPictureInPictureControllerDelegate,AVPlayerViewControllerDelegate>#else
@interfaceIMAPictureInPictureProxy:NSObject#endif
/**
* Whether or not Picture-in-Picture is currently active.
*/@property(nonatomic,readonly,getter=isPictureInPictureActive)BOOLpictureInPictureActive;/**
* Whether or not Picture-in-Picture is supported on this device.
*/+(BOOL)isPictureInPictureSupported;/**
* Instantiates an IMAPictureInPictureProxy that will proxy delegate
* messages from an AVPictureInPictureController, and forward them
* to the AVPictureInPictureControllerDelegate passed on init.
*
* @param delegate the AVPictureInPictureControllerDelegate
*
* @return an IMAPictureInPictureProxy instance
*/-(instancetype)initWithAVPictureInPictureControllerDelegate:(id<AVPictureInPictureControllerDelegate>)delegateAPI_AVAILABLE(ios(9.0),tvos(14.0));/**
* Instantiates an IMAPictureInPictureProxy that will proxy delegate
* messages from an AVPlayerViewController, and forward them to the
* AVPlayerViewControllerDelegate passed on init.
*
* @param delegate the AVPlayerViewControllerDelegate
*
* @return an IMAPictureInPictureProxy instance
*/-(instancetype)initWithAVPlayerViewControllerDelegate:(id<AVPlayerViewControllerDelegate>)delegateAPI_AVAILABLE(ios(9.0),tvos(14.0));@end
Instantiates an IMAPictureInPictureProxy that will proxy delegate
messages from an AVPictureInPictureController, and forward them
to the AVPictureInPictureControllerDelegate passed on init.
Instantiates an IMAPictureInPictureProxy that will proxy delegate
messages from an AVPlayerViewController, and forward them to the
AVPlayerViewControllerDelegate passed on init.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Missing the information I need","missingTheInformationINeed","thumb-down"],["Too complicated / too many steps","tooComplicatedTooManySteps","thumb-down"],["Out of date","outOfDate","thumb-down"],["Samples / code issue","samplesCodeIssue","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-08-20 UTC."],[[["\u003cp\u003e\u003ccode\u003eIMAPictureInPictureProxy\u003c/code\u003e manages Picture-in-Picture functionality, proxying delegate messages from \u003ccode\u003eAVPictureInPictureController\u003c/code\u003e and \u003ccode\u003eAVPlayerViewController\u003c/code\u003e.\u003c/p\u003e\n"],["\u003cp\u003eIt provides properties to check if Picture-in-Picture is active (\u003ccode\u003epictureInPictureActive\u003c/code\u003e) and supported on the device (\u003ccode\u003eisPictureInPictureSupported\u003c/code\u003e).\u003c/p\u003e\n"],["\u003cp\u003eYou can initialize it with either an \u003ccode\u003eAVPictureInPictureControllerDelegate\u003c/code\u003e or an \u003ccode\u003eAVPlayerViewControllerDelegate\u003c/code\u003e to handle respective events.\u003c/p\u003e\n"],["\u003cp\u003eThis proxy facilitates seamless integration of Picture-in-Picture into your application by forwarding delegate calls to your specified handlers.\u003c/p\u003e\n"]]],["The `IMAPictureInPictureProxy` class manages Picture-in-Picture (PiP) functionality. It checks if PiP is supported using `isPictureInPictureSupported` and if it's active with `pictureInPictureActive`. The class can be instantiated to proxy delegate messages from either an `AVPictureInPictureController` or an `AVPlayerViewController`, forwarding them to the designated delegates. Each instantiation method takes a delegate as a parameter and returns an `IMAPictureInPictureProxy` instance.\n"],null,["# GoogleInteractiveMediaAds Framework Reference\n\nIMAPictureInPictureProxy\n========================\n\n @interface IMAPictureInPictureProxy\n : NSProxy \u003cAVPictureInPictureControllerDelegate, AVPlayerViewControllerDelegate\u003e\n #else\n @interface IMAPictureInPictureProxy : NSObject\n #endif\n /**\n * Whether or not Picture-in-Picture is currently active.\n */\n @property(nonatomic, readonly, getter=isPictureInPictureActive) BOOL pictureInPictureActive;\n\n /**\n * Whether or not Picture-in-Picture is supported on this device.\n */\n + (BOOL)isPictureInPictureSupported;\n\n /**\n * Instantiates an IMAPictureInPictureProxy that will proxy delegate\n * messages from an AVPictureInPictureController, and forward them\n * to the AVPictureInPictureControllerDelegate passed on init.\n *\n * @param delegate the AVPictureInPictureControllerDelegate\n *\n * @return an IMAPictureInPictureProxy instance\n */\n - (instancetype)initWithAVPictureInPictureControllerDelegate:\n (id\u003cAVPictureInPictureControllerDelegate\u003e)delegate API_AVAILABLE(ios(9.0), tvos(14.0));\n\n /**\n * Instantiates an IMAPictureInPictureProxy that will proxy delegate\n * messages from an AVPlayerViewController, and forward them to the\n * AVPlayerViewControllerDelegate passed on init.\n *\n * @param delegate the AVPlayerViewControllerDelegate\n *\n * @return an IMAPictureInPictureProxy instance\n */\n - (instancetype)initWithAVPlayerViewControllerDelegate:(id\u003cAVPlayerViewControllerDelegate\u003e)delegate\n API_AVAILABLE(ios(9.0), tvos(14.0));\n\n @end\n\nUndocumented\n- `\n ``\n ``\n `\n\n ### [pictureInPictureActive](#/c:objc(cs)IMAPictureInPictureProxy(py)pictureInPictureActive)\n\n `\n ` \n Whether or not Picture-in-Picture is currently active. \n\n #### Declaration\n\n Swift \n\n var isPictureInPictureActive: Bool { get }\n\n Objective-C \n\n @property (nonatomic, readonly, getter=isPictureInPictureActive) BOOL pictureInPictureActive;\n\n- `\n ``\n ``\n `\n\n ### [+isPictureInPictureSupported](#/c:objc(cs)IMAPictureInPictureProxy(cm)isPictureInPictureSupported)\n\n `\n ` \n Whether or not Picture-in-Picture is supported on this device. \n\n #### Declaration\n\n Swift \n\n class func isPictureInPictureSupported() -\u003e Bool\n\n Objective-C \n\n + (BOOL)isPictureInPictureSupported;\n\n- `\n ``\n ``\n `\n\n ### [-initWithAVPictureInPictureControllerDelegate:](#/c:objc(cs)IMAPictureInPictureProxy(im)initWithAVPictureInPictureControllerDelegate:)\n\n `\n ` \n Instantiates an IMAPictureInPictureProxy that will proxy delegate\n messages from an AVPictureInPictureController, and forward them\n to the AVPictureInPictureControllerDelegate passed on init. \n\n #### Declaration\n\n Swift \n\n init(avPictureInPictureControllerDelegate delegate: any AVPictureInPictureControllerDelegate)\n\n Objective-C \n\n - (nonnull instancetype)initWithAVPictureInPictureControllerDelegate:\n (nonnull id\u003cAVPictureInPictureControllerDelegate\u003e)delegate;\n\n #### Parameters\n\n |------------------|------------------------------------------|\n | ` `*delegate*` ` | the AVPictureInPictureControllerDelegate |\n\n #### Return Value\n\n an IMAPictureInPictureProxy instance\n- `\n ``\n ``\n `\n\n ### [-initWithAVPlayerViewControllerDelegate:](#/c:objc(cs)IMAPictureInPictureProxy(im)initWithAVPlayerViewControllerDelegate:)\n\n `\n ` \n Instantiates an IMAPictureInPictureProxy that will proxy delegate\n messages from an AVPlayerViewController, and forward them to the\n AVPlayerViewControllerDelegate passed on init. \n\n #### Declaration\n\n Swift \n\n init(avPlayerViewControllerDelegate delegate: any AVPlayerViewControllerDelegate)\n\n Objective-C \n\n - (nonnull instancetype)initWithAVPlayerViewControllerDelegate:\n (nonnull id\u003cAVPlayerViewControllerDelegate\u003e)delegate;\n\n #### Parameters\n\n |------------------|------------------------------------|\n | ` `*delegate*` ` | the AVPlayerViewControllerDelegate |\n\n #### Return Value\n\n an IMAPictureInPictureProxy instance"]]