-
Notifications
You must be signed in to change notification settings - Fork 507
AVKit tvOS xcode13.0 beta1
Manuel de la Pena edited this page Aug 25, 2021
·
3 revisions
#AVKit.framework https://github.com/xamarin/xamarin-macios/pull/12551
diff -ruN /Applications/Xcode_12.5.0.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/AVKit.framework/Headers/AVDisplayManager.h /Applications/Xcode_13.0.0-beta.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/AVKit.framework/Headers/AVDisplayManager.h
--- /Applications/Xcode_12.5.0.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/AVKit.framework/Headers/AVDisplayManager.h 2021-03-16 13:55:51.000000000 -0400
+++ /Applications/Xcode_13.0.0-beta.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/AVKit.framework/Headers/AVDisplayManager.h 2021-06-02 05:34:41.000000000 -0400
@@ -9,6 +9,7 @@
#import <AVKit/AVKitDefines.h>
#import <Foundation/Foundation.h>
+
NS_ASSUME_NONNULL_BEGIN
@class AVDisplayCriteria;
diff -ruN /Applications/Xcode_12.5.0.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/AVKit.framework/Headers/AVError.h /Applications/Xcode_13.0.0-beta.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/AVKit.framework/Headers/AVError.h
--- /Applications/Xcode_12.5.0.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/AVKit.framework/Headers/AVError.h 2021-03-16 13:55:51.000000000 -0400
+++ /Applications/Xcode_13.0.0-beta.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/AVKit.framework/Headers/AVError.h 2021-06-02 05:34:41.000000000 -0400
@@ -11,6 +11,7 @@
#import <AVKit/AVKitDefines.h>
+
/*!
@constant AVKitErrorDomain
@abstract Domain for errors from AVKit APIs.
diff -ruN /Applications/Xcode_12.5.0.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/AVKit.framework/Headers/AVInterstitialTimeRange.h /Applications/Xcode_13.0.0-beta.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/AVKit.framework/Headers/AVInterstitialTimeRange.h
--- /Applications/Xcode_12.5.0.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/AVKit.framework/Headers/AVInterstitialTimeRange.h 2021-03-16 13:55:51.000000000 -0400
+++ /Applications/Xcode_13.0.0-beta.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/AVKit.framework/Headers/AVInterstitialTimeRange.h 2021-06-02 05:34:41.000000000 -0400
@@ -3,7 +3,7 @@
Framework: AVKit
- Copyright © 2015-2016 Apple Inc. All rights reserved.
+ Copyright © 2015-2021 Apple Inc. All rights reserved.
*/
@@ -18,7 +18,7 @@
@discussion An AVInterstitialTimeRange identifies a portion of an asset as an interstitial. When the asset is presented, the time range of this interstitial content will be collapsed in the user interface timeline to a single dot, scrubbing will skip over this range, and the duration will be subtracted from the time remaining in the video as displayed to the user.
*/
-API_AVAILABLE(tvos(9.0)) API_UNAVAILABLE(macos, ios, watchos)
+API_AVAILABLE(tvos(9.0)) API_UNAVAILABLE(macos, watchos)
@interface AVInterstitialTimeRange : NSObject <NSCopying, NSSecureCoding>
/*!
diff -ruN /Applications/Xcode_12.5.0.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/AVKit.framework/Headers/AVKit.h /Applications/Xcode_13.0.0-beta.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/AVKit.framework/Headers/AVKit.h
--- /Applications/Xcode_12.5.0.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/AVKit.framework/Headers/AVKit.h 2021-03-16 13:52:00.000000000 -0400
+++ /Applications/Xcode_13.0.0-beta.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/AVKit.framework/Headers/AVKit.h 2021-06-01 22:20:30.000000000 -0400
@@ -3,7 +3,7 @@
Framework: AVKit
- Copyright © 2015-2020 Apple Inc. All rights reserved.
+ Copyright © 2015-2021 Apple Inc. All rights reserved.
To report bugs, go to: http://developer.apple.com/bugreporter/
@@ -18,6 +18,7 @@
#import <AVKit/AVInterstitialTimeRange.h>
#import <AVKit/AVNavigationMarkersGroup.h>
#import <AVKit/AVPictureInPictureController.h>
+#import <AVKit/AVPictureInPictureController_AVSampleBufferDisplayLayerSupport.h>
#import <AVKit/AVPlayerItem.h>
#import <AVKit/AVPlayerViewController.h>
#import <AVKit/AVRoutePickerView.h>
diff -ruN /Applications/Xcode_12.5.0.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/AVKit.framework/Headers/AVKitDefines.h /Applications/Xcode_13.0.0-beta.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/AVKit.framework/Headers/AVKitDefines.h
--- /Applications/Xcode_12.5.0.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/AVKit.framework/Headers/AVKitDefines.h 2021-03-16 13:52:00.000000000 -0400
+++ /Applications/Xcode_13.0.0-beta.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/AVKit.framework/Headers/AVKitDefines.h 2021-06-02 05:34:41.000000000 -0400
@@ -15,3 +15,13 @@
#else
#define AVKIT_EXTERN extern __attribute__((visibility ("default")))
#endif
+
+#if !TARGET_IS_AVKITMACHELPER
+#define AVKIT_ONLY_EXTERN AVKIT_EXTERN
+#define AVKIT_ONLY_API_AVAILABLE(...) API_AVAILABLE(__VA_ARGS__)
+#else
+#define AVKIT_ONLY_EXTERN extern __attribute__((visibility ("hidden")))
+#define AVKIT_ONLY_API_AVAILABLE(...)
+#endif
+
+#define PLATFORM_SUPPORTS_AVKITCORE (TARGET_OS_OSX || TARGET_OS_MACCATALYST)
diff -ruN /Applications/Xcode_12.5.0.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/AVKit.framework/Headers/AVPictureInPictureController.h /Applications/Xcode_13.0.0-beta.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/AVKit.framework/Headers/AVPictureInPictureController.h
--- /Applications/Xcode_12.5.0.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/AVKit.framework/Headers/AVPictureInPictureController.h 2021-03-16 13:55:51.000000000 -0400
+++ /Applications/Xcode_13.0.0-beta.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/AVKit.framework/Headers/AVPictureInPictureController.h 2021-06-02 12:43:22.000000000 -0400
@@ -12,6 +12,7 @@
#import <AVKit/AVKitDefines.h>
+
NS_ASSUME_NONNULL_BEGIN
#if TARGET_OS_IPHONE
@@ -21,6 +22,7 @@
@class NSImage;
#endif // TARGET_OS_IPHONE
+@class AVPictureInPictureControllerContentSource;
@protocol AVPictureInPictureControllerDelegate;
/*!
@@ -81,12 +83,26 @@
#endif // TARGET_OS_IPHONE
/*!
- @method initWithPlayerLayer:
- @param playerLayer
- The player layer from which to source the media content for the Picture in Picture controller.
- @abstract Designated initializer.
+ @method initWithContentSource:
+ @param contentSource
+ The content source to be shown in Picture in Picture.
+ @abstract Use this initializer for content that may be a sample buffer display layer or a player layer.
+ */
+- (instancetype)initWithContentSource:(AVPictureInPictureControllerContentSource *)contentSource API_AVAILABLE(ios(15.0), tvos(15.0), macos(12.0)) API_UNAVAILABLE(watchos) NS_DESIGNATED_INITIALIZER;
+
+/*!
+ @method initWithPlayerLayer:
+ @param playerLayer
+ The player layer from which to source the media content for the Picture in Picture controller.
+ @abstract Initialize the picture in picture controller with a player layer.
*/
-- (nullable instancetype)initWithPlayerLayer:(AVPlayerLayer *)playerLayer NS_DESIGNATED_INITIALIZER;
+- (nullable instancetype)initWithPlayerLayer:(AVPlayerLayer *)playerLayer;
+
+/*!
+ @property contentSource
+ @abstract The receiver's content source. Can be changed while Picture in Picture is active, but the new content source must be ready for display (in the case of AVPlayerLayer, that means AVPlayerLayer.isReadyForDisplay must return YES), otherwise Picture in Picture will stop.
+ */
+@property (nonatomic, strong, nullable) AVPictureInPictureControllerContentSource *contentSource API_AVAILABLE(ios(15.0), tvos(15.0), macos(12.0)) API_UNAVAILABLE(watchos);
/*!
@property playerLayer
@@ -146,6 +162,42 @@
*/
@property (nonatomic) BOOL requiresLinearPlayback API_AVAILABLE(ios(14.0), macos(11.0), tvos(14.0)) API_UNAVAILABLE(watchos);
+/*!
+ @property canStartPictureInPictureAutomaticallyFromInline
+ @abstract Indicates whether Picture in Picture should be allowed to start automatically when transitioning to background when the receiver’s content is embedded inline. Default is NO.
+ @discussion This property must only be set to YES for content intended to be the user's primary focus.
+ */
+@property (nonatomic) BOOL canStartPictureInPictureAutomaticallyFromInline API_AVAILABLE(ios(14.2)) API_UNAVAILABLE(watchos, tvos, macos);
+
+@end
+
+
+/*!
+ @class AVPictureInPictureControllerContentSource
+ @abstract A content source for AVPictureInPictureController.
+ @discussion Create a content source with an appropriate layer, and use it to initialize the AVPictureInPictureController.
+ */
+API_AVAILABLE(ios(15.0), tvos(15.0), macos(12.0)) API_UNAVAILABLE(watchos)
+NS_SWIFT_NAME(AVPictureInPictureController.ContentSource)
+@interface AVPictureInPictureControllerContentSource : NSObject
+
+- (instancetype)init NS_UNAVAILABLE;
++ (instancetype)new NS_UNAVAILABLE;
+
+/*!
+ @method initWithPlayerLayer:
+ @param playerLayer
+ The player layer to be shown in Picture in Picture.
+ @abstract Use this initializer for a content source with a player layer.
+*/
+- (instancetype)initWithPlayerLayer:(AVPlayerLayer *)playerLayer;
+
+/*!
+ @property playerLayer
+ @abstract The receiver's player layer.
+*/
+@property (nonatomic, nullable, readonly) AVPlayerLayer *playerLayer;
+
@end
diff -ruN /Applications/Xcode_12.5.0.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/AVKit.framework/Headers/AVPictureInPictureController_AVSampleBufferDisplayLayerSupport.h /Applications/Xcode_13.0.0-beta.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/AVKit.framework/Headers/AVPictureInPictureController_AVSampleBufferDisplayLayerSupport.h
--- /Applications/Xcode_12.5.0.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/AVKit.framework/Headers/AVPictureInPictureController_AVSampleBufferDisplayLayerSupport.h 1969-12-31 19:00:00.000000000 -0500
+++ /Applications/Xcode_13.0.0-beta.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/AVKit.framework/Headers/AVPictureInPictureController_AVSampleBufferDisplayLayerSupport.h 2021-06-02 12:43:22.000000000 -0400
@@ -0,0 +1,120 @@
+/*
+ File: AVPictureInPictureController_AVSampleBufferDisplayLayerSupport.h
+
+ Framework: AVKit
+
+ Copyright © 2020 Apple Inc. All rights reserved.
+ */
+
+#import <AVFoundation/AVSampleBufferDisplayLayer.h>
+#import <AVKit/AVPictureInPictureController.h>
+
+NS_ASSUME_NONNULL_BEGIN
+
+@class AVPictureInPictureControllerContentSource;
+@class AVPictureInPicturePlaybackState;
+@protocol AVPictureInPictureSampleBufferPlaybackDelegate;
+
+@interface AVPictureInPictureController ()
+
+/*!
+ @method invalidatePlaybackState
+ @abstract Informs Picture in Picture controller that it should request an updated playback state from its sampleBufferPlaybackDelegate.
+ @discussion This should always be called whenever playback is paused or unpaused, or the underlying content duration changes.
+*/
+- (void)invalidatePlaybackState API_AVAILABLE(ios(15.0), tvos(15.0), macos(12.0)) API_UNAVAILABLE(watchos);
+
+@end
+
+
+/*!
+ @protocol AVPictureInPictureSampleBufferPlaybackDelegate
+ @abstract A protocol for controlling playback from an AVSampleBufferDisplayLayer in Picture in Picture.
+*/
+API_AVAILABLE(ios(15.0), tvos(15.0), macos(12.0)) API_UNAVAILABLE(watchos)
+@protocol AVPictureInPictureSampleBufferPlaybackDelegate <NSObject>
+
+/*!
+ @method pictureInPictureController:setPlaying:
+ @param pictureInPictureController
+ The Picture in Picture controller.
+ @param playing
+ Whether the content should play or pause.
+ @abstract Informs delegate that the user initiated a request to play or pause the content.
+*/
+- (void)pictureInPictureController:(AVPictureInPictureController *)pictureInPictureController setPlaying:(BOOL)playing NS_SWIFT_NAME(pictureInPictureController(_:setPlaying:));
+
+/*!
+ @method pictureInPictureControllerTimeRangeForPlayback:
+ @param pictureInPictureController
+ The Picture in Picture controller.
+ @abstract Allows delegate to inform Picture in Picture controller of the current playable time range. May be called multiple times during playback. Time ranges with finite duration should always contain the current time of the sample buffer display layer's timebase.
+ @discussion Clients should return a time range with a duration of kCMTimeInfinity to indicate live content. When there is no content to play, they should return kCMTimeRangeInvalid. This method will be called whenever -[AVPictureInPictureController invalidatePlaybackState] is called and at other times as needed by the system.
+ @returns A CMTimeRange indicating the content's time range.
+*/
+- (CMTimeRange)pictureInPictureControllerTimeRangeForPlayback:(AVPictureInPictureController *)pictureInPictureController NS_SWIFT_NAME(pictureInPictureControllerTimeRangeForPlayback(_:));
+
+/*!
+ @method pictureInPictureControllerIsPlaybackPaused:
+ @param pictureInPictureController
+ The Picture in Picture controller.
+ @abstract Allows delegate to indicate whether the playback UI should reflect a playing or paused state, regardless of what the current playback rate might be. May be called multiple times during playback.
+ @discussion This method will be called whenever -[AVPictureInPictureController invalidatePlaybackState] is called and at other times as needed by the system.
+ @returns A boolean value indicating whether or not the playback UI should indicate playback has been paused or is playing.
+*/
+- (BOOL)pictureInPictureControllerIsPlaybackPaused:(AVPictureInPictureController *)pictureInPictureController NS_SWIFT_NAME(pictureInPictureControllerIsPlaybackPaused(_:));
+
+/*!
+ @method pictureInPictureController:didTransitionToRenderSize:
+ @param pictureInPictureController
+ The Picture in Picture controller.
+ @param newRenderSize
+ The rendered size, in pixels, of Picture in Picture content.
+ @abstract This method is called when the system Picture in Picture window changes size. Delegate take the new render size and AVPictureInPictureController.isPictureInPictureActive into account when choosing media variants in order to avoid uncessary decoding overhead.
+*/
+- (void)pictureInPictureController:(AVPictureInPictureController *)pictureInPictureController didTransitionToRenderSize:(CMVideoDimensions)newRenderSize NS_SWIFT_NAME(pictureInPictureController(_:didTransitionToRenderSize:));
+
+/*!
+ @method pictureInPictureController:skipByInterval:completionHandler:
+ @param pictureInPictureController
+ The Picture in Picture controller.
+ @param skipInterval
+ The interval by which to skip playback.
+ @param completionHandler
+ A closure that must be invoked to indicate that the skip operation has completed.
+ @abstract Informs delegate that the user has requested skipping forward or backward by the time indicated by the interval.
+ @discussion Clients may choose to seek by a different interval for efficiency reasons (for example, seeking to a keyframe) or if the requested interval falls outside of the playable timeline. Clients must invoke the completion handler to indicate the seek operation has finished or failed. By the time the completion handler has been invoked, the timebase should reflect the current time and playback rate. Failure to invoke this completion handler is an application error and will result in playback UI permanently stuck in a “seeking” state.
+*/
+- (void)pictureInPictureController:(AVPictureInPictureController *)pictureInPictureController skipByInterval:(CMTime)skipInterval completionHandler:(void (^)(void))completionHandler NS_SWIFT_NAME(pictureInPictureController(_:skipByInterval:completion:));
+
+@end
+
+
+API_AVAILABLE(ios(15.0), tvos(15.0), macos(12.0)) API_UNAVAILABLE(watchos)
+@interface AVPictureInPictureControllerContentSource (AVSampleBufferDisplayLayerSupport)
+
+/*!
+ @method initWithSampleBufferDisplayLayer:
+ @param sampleBufferDisplayLayer
+ The sample buffer display layer to be shown in Picture in Picture.
+ @param playbackDelegate
+ The playback delegate for controlling sample buffer display layer's playback in Picture in Picture.
+ @abstract Use this initializer for a content source with a sample buffer display layer and playback delegate.
+*/
+- (instancetype)initWithSampleBufferDisplayLayer:(AVSampleBufferDisplayLayer *)sampleBufferDisplayLayer playbackDelegate:(id<AVPictureInPictureSampleBufferPlaybackDelegate>)playbackDelegate;
+
+/*!
+ @property sampleBufferDisplayLayer
+ @abstract The receiver's sample buffer display layer.
+*/
+@property (nonatomic, nullable, readonly) AVSampleBufferDisplayLayer *sampleBufferDisplayLayer;
+
+/*!
+ @property sampleBufferPlaybackDelegate
+ @abstract The receiver's sample buffer playback delegate.
+*/
+@property (nonatomic, nullable, weak, readonly) id<AVPictureInPictureSampleBufferPlaybackDelegate> sampleBufferPlaybackDelegate;
+
+@end
+
+NS_ASSUME_NONNULL_END
diff -ruN /Applications/Xcode_12.5.0.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/AVKit.framework/Headers/AVPlayerItem.h /Applications/Xcode_13.0.0-beta.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/AVKit.framework/Headers/AVPlayerItem.h
--- /Applications/Xcode_12.5.0.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/AVKit.framework/Headers/AVPlayerItem.h 2021-03-16 13:58:07.000000000 -0400
+++ /Applications/Xcode_13.0.0-beta.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/AVKit.framework/Headers/AVPlayerItem.h 2021-06-02 05:34:41.000000000 -0400
@@ -3,13 +3,14 @@
Framework: AVKit
- Copyright © 2015-2019 Apple Inc. All rights reserved.
+ Copyright © 2015-2021 Apple Inc. All rights reserved.
*/
#import <AVKit/AVKitDefines.h>
#import <AVFoundation/AVFoundation.h>
+
NS_ASSUME_NONNULL_BEGIN
@class AVInterstitialTimeRange;
@@ -108,6 +109,13 @@
*/
@property (nonatomic, copy) NSArray<AVInterstitialTimeRange *> *interstitialTimeRanges;
+/*!
+ @property translatesPlayerInterstitialEvents
+ @abstract When true, AVPlayerInterstitialEvents on the stream are automatically converted to AVInterstitialTimeRanges, replacing the value of the interstitialTimeRanges property. Defaults to false.
+ @discussion Clients should turn this setting on to enable support for AVPlayerInterstitialEvents, or off to perform their own management of interstitials.
+ */
+@property (nonatomic) BOOL translatesPlayerInterstitialEvents API_AVAILABLE(tvos(15.0)) API_UNAVAILABLE(macos, ios, watchos);
+
@end
diff -ruN /Applications/Xcode_12.5.0.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/AVKit.framework/Headers/AVPlayerViewController.h /Applications/Xcode_13.0.0-beta.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/AVKit.framework/Headers/AVPlayerViewController.h
--- /Applications/Xcode_12.5.0.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/AVKit.framework/Headers/AVPlayerViewController.h 2021-03-16 13:58:07.000000000 -0400
+++ /Applications/Xcode_13.0.0-beta.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/AVKit.framework/Headers/AVPlayerViewController.h 2021-06-02 05:34:41.000000000 -0400
@@ -3,7 +3,7 @@
Framework: AVKit
- Copyright © 2015-2020 Apple Inc. All rights reserved.
+ Copyright © 2015-2021 Apple Inc. All rights reserved.
*/
#import <AVFoundation/AVFoundation.h>
@@ -172,11 +172,27 @@
@property (nonatomic) BOOL playbackControlsIncludeInfoViews API_AVAILABLE(tvos(11.0));
/*!
+ @property transportBarIncludesTitleView
+ @abstract Whether or not the receiver shows the title view above the scrubber. Enabled by default.
+ @discussion Clients can clear this property to disable the title view. Changing the value of this property may not immediately change visibility of the title view. This value is ignored when the transport bar is disabled by playbackControlsIncludeTransportBar.
+ The title view requires metadata to be embedded in the media asset, or provided using externalMetadata property of AVPlayerItem. Supported keys are: AVMetadataCommonIdentifierTitle for title, AVMetadataIdentifieriTunesMetadataTrackSubTitle for subtitle.
+ See also showsPlaybackControls, and playbackControlsIncludeTransportBar.
+ */
+@property (nonatomic) BOOL transportBarIncludesTitleView API_AVAILABLE(tvos(15.0)) API_UNAVAILABLE(macos, ios, watchos);
+
+/*!
@property customInfoViewController
@abstract A view controller to be displayed alongside system-provided info and settings panels.
@discussion Use this property to provide client-specific content and controls in an additional info view. Implement -preferredContentSize to provide the desired view size.
*/
-@property (nonatomic, strong, nullable) UIViewController *customInfoViewController API_AVAILABLE(tvos(11.0));
+@property (nonatomic, strong, nullable) UIViewController *customInfoViewController API_DEPRECATED_WITH_REPLACEMENT("Use customInfoViewControllers", tvos(11.0, 15.0));
+
+/*!
+ @property customInfoViewControllers
+ @abstract An array of view controllers to be displayed as tabs.
+ @discussion Use this property to provide tabs for client-specific content in the transport bar. The order of the view controllers in the array is also the order in which they are inserted in the tab bar. The display tab titles will be taken from the view controllers. Implement -preferredContentSize to provide the desired view size (subject to maximum height constraints).
+ */
+@property (nonatomic, copy) NSArray <UIViewController *> *customInfoViewControllers API_AVAILABLE(tvos(15.0));
/*!
@property customOverlayViewController
@@ -185,6 +201,21 @@
*/
@property (nonatomic, strong, nullable) UIViewController *customOverlayViewController API_AVAILABLE(tvos(13.0));
+/*!
+ @property transportBarCustomMenuItems
+ @abstract An array of menu elements to be displayed in addition to standard built-in controls.
+ @discussion Use this property to provide client-specific controls above the transport bar. Only UIMenu and UIAction instance types are supported. Nested UIMenus are not supported. Unsupported types will be ignored.
+ */
+@property (nonatomic, copy) NSArray<__kindof UIMenuElement *> *transportBarCustomMenuItems API_AVAILABLE(tvos(15.0)) API_UNAVAILABLE(macos, ios, watchos);
+
+/*!
+ @property contextualActions
+ @abstract The array of action controls displayed during playback. Defaults to none.
+ @discussion Use this property to present one or more action controls during playback (for example, "Skip Intro").
+ Actions are presented only when transport bar is not visible, allowing users to interract either with transport bar or contextual action controls.
+ The title and, optionally, the image of each action will be displayed by a control. The action handler will be called when the user selects the control.
+ */
+@property (nonatomic, copy) NSArray<UIAction *> *contextualActions API_AVAILABLE(tvos(15.0)) API_UNAVAILABLE(macos, ios, watchos);
@end
diff -ruN /Applications/Xcode_12.5.0.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/AVKit.framework/Headers/UIWindow.h /Applications/Xcode_13.0.0-beta.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/AVKit.framework/Headers/UIWindow.h
--- /Applications/Xcode_12.5.0.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/AVKit.framework/Headers/UIWindow.h 2021-03-16 13:55:51.000000000 -0400
+++ /Applications/Xcode_13.0.0-beta.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/AVKit.framework/Headers/UIWindow.h 2021-06-02 05:34:41.000000000 -0400
@@ -9,6 +9,7 @@
#import <AVKit/AVKitDefines.h>
#import <UIKit/UIKit.h>
+
@class AVDisplayManager;
NS_ASSUME_NONNULL_BEGIN
- README
- xcode13.0 Binding Status
- xcode13.1 Binding Status
- xcode13.2 Binding Status
- xcode13.3 Binding Status
- xcode13.4 Binding Status
- xcode14.0 Binding Status
- xcode14.1 Binding Status
- xcode14.2 Binding Status
- xcode14.3 Binding Status
- xcode15.0 Binding Status
- xcode15.1 Binding Status
- xcode15.3 Binding Status
- xcode15.4 Binding Status
- xcode16.0 Binding Status