Skip to content

AVKit tvOS xcode14.0 beta1

TJ Lambert edited this page Aug 30, 2022 · 3 revisions

#AVKit.framework https://github.com/xamarin/xamarin-macios/pull/15811

diff -ruN /Applications/Xcode_13.3.0.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/AVKit.framework/Headers/AVInterstitialTimeRange.h /Applications/Xcode_14.0.0-beta.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/AVKit.framework/Headers/AVInterstitialTimeRange.h
--- /Applications/Xcode_13.3.0.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/AVKit.framework/Headers/AVInterstitialTimeRange.h	2022-02-23 07:09:16.000000000 -0500
+++ /Applications/Xcode_14.0.0-beta.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/AVKit.framework/Headers/AVInterstitialTimeRange.h	2022-06-03 18:06:29.000000000 -0400
@@ -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, watchos)
+API_AVAILABLE(tvos(9.0), ios(16.0)) API_UNAVAILABLE(macos, watchos)
 @interface AVInterstitialTimeRange : NSObject <NSCopying, NSSecureCoding>
 
 /*!
@@ -27,8 +27,7 @@
 				The time range of the interstitial.
 	@abstract	Designated initializer.
 */
- - (instancetype)initWithTimeRange:(CMTimeRange)timeRange NS_DESIGNATED_INITIALIZER;
-
+ - (instancetype)initWithTimeRange:(CMTimeRange)timeRange API_AVAILABLE(tvos(9.0)) API_UNAVAILABLE(ios, macos, watchos) NS_DESIGNATED_INITIALIZER;
 /*!
 	@property	timeRange
 	@abstract	The time range of the interstitial.
diff -ruN /Applications/Xcode_13.3.0.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/AVKit.framework/Headers/AVKit.h /Applications/Xcode_14.0.0-beta.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/AVKit.framework/Headers/AVKit.h
--- /Applications/Xcode_13.3.0.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/AVKit.framework/Headers/AVKit.h	2022-02-15 00:00:33.000000000 -0500
+++ /Applications/Xcode_14.0.0-beta.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/AVKit.framework/Headers/AVKit.h	2022-05-21 07:49:49.000000000 -0400
@@ -3,7 +3,7 @@
 	
 	Framework:  AVKit
 	
-	Copyright © 2015-2021 Apple Inc. All rights reserved.
+	Copyright © 2015-2022 Apple Inc. All rights reserved.
 	
 	To report bugs, go to:  http://developer.apple.com/bugreporter/
 	
@@ -19,6 +19,8 @@
 #import <AVKit/AVNavigationMarkersGroup.h>
 #import <AVKit/AVPictureInPictureController.h>
 #import <AVKit/AVPictureInPictureController_AVSampleBufferDisplayLayerSupport.h>
+#import <AVKit/AVPlaybackSpeed.h>
+#import <AVKit/AVPlaybackSpeedCollection.h>
 #import <AVKit/AVPlayerItem.h>
 #import <AVKit/AVPlayerViewController.h>
 #import <AVKit/AVRoutePickerView.h>
diff -ruN /Applications/Xcode_13.3.0.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/AVKit.framework/Headers/AVKitDefines.h /Applications/Xcode_14.0.0-beta.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/AVKit.framework/Headers/AVKitDefines.h
--- /Applications/Xcode_13.3.0.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/AVKit.framework/Headers/AVKitDefines.h	2022-02-23 07:09:15.000000000 -0500
+++ /Applications/Xcode_14.0.0-beta.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/AVKit.framework/Headers/AVKitDefines.h	2022-06-03 18:06:28.000000000 -0400
@@ -16,12 +16,25 @@
 #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__)
+
+#define AVKIT_ONLY_API_AVAILABLE(...) API_AVAILABLE(__VA_ARGS__)
+#define AVKIT_ONLY_API_DEPRECATED_WITH_REPLACEMENT(...) API_DEPRECATED_WITH_REPLACEMENT(__VA_ARGS__)
+
 #else
 #define AVKIT_ONLY_EXTERN extern __attribute__((visibility ("hidden")))
 #define AVKIT_ONLY_API_AVAILABLE(...)
+
+#define AVKIT_ONLY_API_DEPRECATED_WITH_REPLACEMENT(...)
+
 #endif
 
+
 #define PLATFORM_SUPPORTS_AVKITCORE (TARGET_OS_OSX || TARGET_OS_MACCATALYST)
+
+
+#define AVKIT_INIT_UNAVAILABLE	- (instancetype)init NS_UNAVAILABLE; \
+								+ (instancetype)new  NS_UNAVAILABLE;
diff -ruN /Applications/Xcode_13.3.0.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/AVKit.framework/Headers/AVPlaybackSpeed.h /Applications/Xcode_14.0.0-beta.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/AVKit.framework/Headers/AVPlaybackSpeed.h
--- /Applications/Xcode_13.3.0.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/AVKit.framework/Headers/AVPlaybackSpeed.h	1969-12-31 19:00:00.000000000 -0500
+++ /Applications/Xcode_14.0.0-beta.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/AVKit.framework/Headers/AVPlaybackSpeed.h	2022-06-03 18:06:28.000000000 -0400
@@ -0,0 +1,71 @@
+//
+//  AVPlaybackSpeed.h
+//  AVKit
+//
+//  Created by adesjarlais on 11/13/21.
+//  Copyright © 2021 Apple Inc. All rights reserved.
+//
+
+#import <Foundation/Foundation.h>
+
+#if TARGET_OS_OSX || TARGET_OS_MACCATALYST
+#import <AVKitCore/AVKitDefines.h>
+#else
+#import <AVKit/AVKitDefines.h>
+#endif // #TARGET_OS_OSX || TARGET_OS_MACCATALYST
+
+
+NS_ASSUME_NONNULL_BEGIN
+
+// MARK: -
+
+/*!
+ @class         AVPlaybackSpeed
+ @abstract      Class used to define a user selectable playback speed in a playback UI.
+ */
+API_AVAILABLE(macos(13.0), ios(16.0), tvos(16.0)) API_UNAVAILABLE(watchos)
+@interface AVPlaybackSpeed : NSObject
+
+AVKIT_INIT_UNAVAILABLE
+
+/*!
+ @property      systemDefaultSpeeds
+ @abstract      A list of playback speeds to be used by default across the system.
+ */
+@property (nonatomic, readonly, class) NSArray<AVPlaybackSpeed *> *systemDefaultSpeeds;
+
+
+/*!
+ @method         initWithRate:localizedName:
+ @param         rate
+				The rate to be used when this playback speed is selected.
+ @param         localizedName
+				A localized name to be displayed representing this playback speed in a UI.
+ @abstract      Initializes an AVPlaybackSpeed.
+ */
+- (instancetype)initWithRate:(float)rate localizedName:(NSString *)localizedName;
+
+
+/*!
+ @property      rate
+ @abstract      The rate associated with this object. When this playback speed is selected this rate will be set in response to the play button being pressed.
+ */
+@property (nonatomic, readonly) float rate;
+
+/*!
+ @property      localizedName
+ @abstract      A localized name for this playback speed.
+ @discussion    This name will be used to represent this playback speed in playback UIs where more space is available.
+ */
+@property (nonatomic, readonly) NSString *localizedName;
+
+/*!
+ @property      localizedNumericName
+ @abstract      A localized name for this playback speed used when space is limited.
+ @discussion    This name will be used to represent this playback speed in playback UIs where limited space is available.
+ */
+@property (nonatomic, readonly) NSString *localizedNumericName;
+
+@end
+
+NS_ASSUME_NONNULL_END
diff -ruN /Applications/Xcode_13.3.0.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/AVKit.framework/Headers/AVPlaybackSpeedCollection.h /Applications/Xcode_14.0.0-beta.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/AVKit.framework/Headers/AVPlaybackSpeedCollection.h
--- /Applications/Xcode_13.3.0.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/AVKit.framework/Headers/AVPlaybackSpeedCollection.h	1969-12-31 19:00:00.000000000 -0500
+++ /Applications/Xcode_14.0.0-beta.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/AVKit.framework/Headers/AVPlaybackSpeedCollection.h	2022-06-03 18:06:29.000000000 -0400
@@ -0,0 +1,76 @@
+//
+//  AVPlaybackSpeedCollection.h
+//  AVKit
+//
+//  Created by adesjarlais on 11/13/21.
+//  Copyright © 2021 Apple Inc. All rights reserved.
+//
+
+#import <Foundation/Foundation.h>
+
+#if TARGET_OS_OSX || TARGET_OS_MACCATALYST
+#import <AVKitCore/AVKitDefines.h>
+#import <AVKitCore/AVPlaybackSpeed.h>
+#else
+#import <AVKit/AVKitDefines.h>
+#import <AVKit/AVPlaybackSpeed.h>
+#endif // #TARGET_OS_OSX || TARGET_OS_MACCATALYST
+
+
+NS_ASSUME_NONNULL_BEGIN
+
+// MARK: -
+
+/*!
+ @class         AVPlaybackSpeedCollection
+ @abstract      A class representing a collection of user selectable playback speeds in a playback UI.
+ */
+API_AVAILABLE(macos(13.0), ios(16.0), tvos(16.0)) API_UNAVAILABLE(watchos)
+@interface AVPlaybackSpeedCollection : NSObject
+
+AVKIT_INIT_UNAVAILABLE
+
+/*!
+ @method      	defaultSpeedFromList
+ @param         speeds
+				The playback speeds to select from
+ @abstract      Returns the playback speed that should be used by default from the given list.
+ */
++ (AVPlaybackSpeed *)defaultSpeedFromList:(NSArray<AVPlaybackSpeed *> *)speeds;
+
+
+/*!
+ @method        collectionWithSpeeds:
+ @param         playbackSpeeds
+				A list of playback speeds to be used for this collection.
+ @abstract      Creates a new instance of an AVPlaybackSpeedCollection with the given playback speeds.
+ */
++ (instancetype)collectionWithSpeeds:(NSArray<AVPlaybackSpeed *> *)playbackSpeeds;
+
+
+/*!
+ @property      speeds
+ @abstract      The list of playback speeds in this collection.
+ */
+@property (nonatomic, readonly) NSArray<AVPlaybackSpeed *> *speeds;
+
+/*!
+ @property      selectedSpeed
+ @abstract      The currently selected playback speed in this collection.
+ @discussion    Changes to the associated AVPlayer's defaultRate will be reflected in this property and vice versa. If the associated AVPlayer's defaultRate is set to a value that does not match a speed in the collection, the selected speed will be set to nil.
+ */
+@property (nonatomic, readonly, nullable) AVPlaybackSpeed *selectedSpeed;
+
+
+/*!
+ @method      selectSpeed
+ @param         speed
+				The playback speed to select.
+ @abstract      Selects the input AVPlaybackSpeed on this collection.
+ @discussion    Calls to selectSpeed: with AVPlaybackSpeeds not contained within this collection will be ignored.
+ */
+- (void)selectSpeed:(AVPlaybackSpeed *)speed;
+
+@end
+
+NS_ASSUME_NONNULL_END
diff -ruN /Applications/Xcode_13.3.0.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/AVKit.framework/Headers/AVPlayerViewController.h /Applications/Xcode_14.0.0-beta.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/AVKit.framework/Headers/AVPlayerViewController.h
--- /Applications/Xcode_13.3.0.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/AVKit.framework/Headers/AVPlayerViewController.h	2022-02-23 07:12:23.000000000 -0500
+++ /Applications/Xcode_14.0.0-beta.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/AVKit.framework/Headers/AVPlayerViewController.h	2022-06-03 18:06:29.000000000 -0400
@@ -3,7 +3,7 @@
 	
 	Framework:  AVKit
 	
-	Copyright © 2015-2021 Apple Inc. All rights reserved.
+	Copyright © 2015-2022 Apple Inc. All rights reserved.
  */
 
 #import <AVFoundation/AVFoundation.h>
@@ -13,6 +13,7 @@
 
 @class AVContentProposal;
 @class AVInterstitialTimeRange;
+@class AVPlaybackSpeed;
 @protocol AVPlayerViewControllerDelegate;
 @protocol AVPlayerViewControllerAnimationCoordinator;
 
@@ -224,6 +225,31 @@
  */
 @property (nonatomic, copy) NSArray<UIAction *> *infoViewActions API_AVAILABLE(tvos(15.0)) API_UNAVAILABLE(macos, ios, watchos);
 
+/**
+ @property	speeds
+ @abstract	A list of playback speeds to be shown in the playback speed control.
+ @discussion	By default this property will be empty for tvOS clients. Setting this property to an empty list will hide the playback speed control.
+			To set the currently selected playback speed programmatically, either set the defaultRate on the AVPlayer associated with this view controller or use the selectSpeed: method on AVPlayerViewController.
+ */
+@property (nonatomic, copy) NSArray<AVPlaybackSpeed *> *speeds API_AVAILABLE(tvos(16.0), ios(16.0)) API_UNAVAILABLE(macos, watchos);
+
+/*!
+ @property	selectedSpeed
+ @abstract	The currently selected playback speed.
+ @discussion	Changes to the associated AVPlayer's defaultRate will be reflected in this property and vice versa. If the associated AVPlayer's defaultRate is set to a value that does not match a speed in the speeds property, the selected speed will be set to nil.
+ */
+@property (nonatomic, readonly, nullable) AVPlaybackSpeed *selectedSpeed API_AVAILABLE(tvos(16.0), ios(16.0)) API_UNAVAILABLE(macos, watchos);
+
+
+/*!
+ @property	selectSpeed
+ @param		speed
+			The playback speed to select.
+ @abstract	Sets the input AVPlaybackSpeed as the selected speed.
+ @discussion	Calls to selectSpeed: with AVPlaybackSpeeds not contained within the speeds property array will be ignored.
+ */
+- (void)selectSpeed:(AVPlaybackSpeed *)speed API_AVAILABLE(tvos(16.0), ios(16.0)) API_UNAVAILABLE(macos, watchos);
+
 @end
 
 
diff -ruN /Applications/Xcode_13.3.0.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/AVKit.framework/Headers/AVRoutePickerView.h /Applications/Xcode_14.0.0-beta.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/AVKit.framework/Headers/AVRoutePickerView.h
--- /Applications/Xcode_13.3.0.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/AVKit.framework/Headers/AVRoutePickerView.h	2022-02-23 07:09:16.000000000 -0500
+++ /Applications/Xcode_14.0.0-beta.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/AVKit.framework/Headers/AVRoutePickerView.h	2022-06-03 18:06:29.000000000 -0400
@@ -9,6 +9,7 @@
 
 #import <UIKit/UIKit.h>
 
+@class AVCustomRoutingController;
 @protocol AVRoutePickerViewDelegate;
 
 NS_ASSUME_NONNULL_BEGIN
@@ -60,6 +61,12 @@
  */
 @property (nonatomic) BOOL prioritizesVideoDevices API_AVAILABLE(ios(13.0), tvos(13.0));
 
+/*!
+	@property	customRoutingController
+	@abstract	A controller which enables connection to 3rd party devices (non-airplay) via the picker.
+ */
+@property (nonatomic, nullable) AVCustomRoutingController *customRoutingController API_AVAILABLE(ios(16.0)) API_UNAVAILABLE(macos, tvos);
+
 @end
 
 
Clone this wiki locally