Skip to content

AVKit iOS xcode27.0 b3

Alex Soto edited this page Jul 7, 2026 · 1 revision

#AVKit.framework

diff -ruN /Applications/Xcode_27.0.0-beta2.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVKit.framework/Headers/AVInterfaceControllable.h /Applications/Xcode_27.0.0-beta3.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVKit.framework/Headers/AVInterfaceControllable.h
--- /Applications/Xcode_27.0.0-beta2.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVKit.framework/Headers/AVInterfaceControllable.h	2026-06-12 03:50:43
+++ /Applications/Xcode_27.0.0-beta3.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVKit.framework/Headers/AVInterfaceControllable.h	2026-06-30 00:29:05
@@ -34,7 +34,7 @@
 	AVInterfacePlaybackStateScanning,
 	/// Indicates the source is being scrubbed by user interaction with the timeline.
 	AVInterfacePlaybackStateScrubbing,
-} API_AVAILABLE(ios(27.0)) API_UNAVAILABLE(tvos, visionos) API_UNAVAILABLE(macos, watchos);
+} API_DEPRECATED("Use AVPlaybackUserInterfacePlaybackState instead.", ios(27.0, 27.0)) API_UNAVAILABLE(tvos, visionos) API_UNAVAILABLE(macos, watchos);
 
 /*!
  Describes navigation capabilities of the media source.
@@ -51,7 +51,7 @@
 	AVInterfaceSeekCapabilitiesScanBackward	= 1 << 1,
 	/// The source supports seeking to specific time positions for precise navigation. Enables jumping directly to any arbitrary point within the seekable time ranges.
 	AVInterfaceSeekCapabilitiesSeek			= 1 << 2,
-} API_AVAILABLE(ios(27.0)) API_UNAVAILABLE(tvos, visionos) API_UNAVAILABLE(macos, watchos);
+} API_DEPRECATED("Use AVPlaybackUserInterfaceSeekCapabilities instead.", ios(27.0, 27.0)) API_UNAVAILABLE(tvos, visionos) API_UNAVAILABLE(macos, watchos);
 
 
 // MARK: -
@@ -66,7 +66,7 @@
  auxiliary content such as advertisements or bonus material, and to control whether users can
  seek or skip through specific portions of the timeline.
  */
-API_AVAILABLE(ios(27.0)) API_UNAVAILABLE(tvos, visionos) API_UNAVAILABLE(macos, watchos)
+API_DEPRECATED("Use AVPlaybackUserInterfaceTimelineSegment instead.", ios(27.0, 27.0)) API_UNAVAILABLE(tvos, visionos) API_UNAVAILABLE(macos, watchos)
 NS_SWIFT_SENDABLE
 @interface AVInterfaceTimelineSegment : NSObject <NSCopying, NSSecureCoding>
 
@@ -111,7 +111,7 @@
  that can be selected by the user in media playback interfaces. Each option provides
  display information and metadata for user selection.
  */
-API_AVAILABLE(ios(27.0)) API_UNAVAILABLE(tvos, visionos) API_UNAVAILABLE(macos, watchos)
+API_DEPRECATED("Use AVPlaybackUserInterfaceMediaSelectionOption instead.", ios(27.0, 27.0)) API_UNAVAILABLE(tvos, visionos) API_UNAVAILABLE(macos, watchos)
 NS_SWIFT_SENDABLE
 @interface AVInterfaceMediaSelectionOptionSource : NSObject <NSCopying, NSSecureCoding>
 
@@ -147,7 +147,7 @@
 
  Use a concrete subclass such as @c AVInterfaceURLAlbumArtwork to create artwork instances.
  */
-API_AVAILABLE(ios(27.0)) API_UNAVAILABLE(tvos, visionos) API_UNAVAILABLE(macos, watchos)
+API_DEPRECATED("Use AVPlaybackUserInterfaceContentArtwork instead.", ios(27.0, 27.0)) API_UNAVAILABLE(tvos, visionos) API_UNAVAILABLE(macos, watchos)
 NS_SWIFT_SENDABLE
 @interface AVInterfaceAlbumArtwork : NSObject <NSCopying, NSSecureCoding>
 
@@ -189,7 +189,7 @@
 /*!
  An album artwork subclass that references artwork via a URL and content type.
  */
-API_AVAILABLE(ios(27.0)) API_UNAVAILABLE(tvos, visionos) API_UNAVAILABLE(macos, watchos)
+API_DEPRECATED("Use AVPlaybackUserInterfaceContentURLArtwork instead.", ios(27.0, 27.0)) API_UNAVAILABLE(tvos, visionos) API_UNAVAILABLE(macos, watchos)
 NS_SWIFT_SENDABLE
 @interface AVInterfaceURLAlbumArtwork : AVInterfaceAlbumArtwork
 
@@ -226,7 +226,7 @@
  
  @see AVInterfaceMetadata
  */
-API_AVAILABLE(ios(27.0)) API_UNAVAILABLE(tvos, visionos) API_UNAVAILABLE(macos, watchos)
+API_DEPRECATED("Use AVPlaybackUserInterfaceContentMetadataTemplate instead.", ios(27.0, 27.0)) API_UNAVAILABLE(tvos, visionos) API_UNAVAILABLE(macos, watchos)
 NS_REFINED_FOR_SWIFT
 @interface AVInterfaceMetadataTemplate : NSObject <NSCopying, NSSecureCoding>
 
@@ -256,7 +256,7 @@
 /*!
  Provides metadata information about media content including title, artwork, and content type.
  */
-API_AVAILABLE(ios(27.0)) API_UNAVAILABLE(tvos, visionos) API_UNAVAILABLE(macos, watchos)
+API_DEPRECATED("Use AVPlaybackUserInterfaceContentMetadata instead.", ios(27.0, 27.0)) API_UNAVAILABLE(tvos, visionos) API_UNAVAILABLE(macos, watchos)
 NS_SWIFT_SENDABLE
 NS_REFINED_FOR_SWIFT
 @interface AVInterfaceMetadata : NSObject <NSCopying, NSSecureCoding>
@@ -324,7 +324,7 @@
 /*!
  Provides playback control and state management for media content.
  */
-API_AVAILABLE(ios(27.0)) API_UNAVAILABLE(tvos, visionos) API_UNAVAILABLE(macos, watchos)
+API_DEPRECATED("Use AVPlaybackUserInterfacePlaybackControllable instead.", ios(27.0, 27.0)) API_UNAVAILABLE(tvos, visionos) API_UNAVAILABLE(macos, watchos)
 NS_SWIFT_MAIN_ACTOR
 NS_REFINED_FOR_SWIFT
 @protocol AVInterfacePlaybackControllable <NSObject>
@@ -372,7 +372,7 @@
 /*!
  Provides time control and navigation capabilities for media content.
  */
-API_AVAILABLE(ios(27.0)) API_UNAVAILABLE(tvos, visionos) API_UNAVAILABLE(macos, watchos)
+API_DEPRECATED("Use AVPlaybackUserInterfaceTimeControllable instead.", ios(27.0, 27.0)) API_UNAVAILABLE(tvos, visionos) API_UNAVAILABLE(macos, watchos)
 NS_SWIFT_MAIN_ACTOR
 NS_REFINED_FOR_SWIFT
 @protocol AVInterfaceTimeControllable <NSObject>
@@ -406,7 +406,7 @@
 /*!
  Provides audio and subtitle selection capabilities for media content.
  */
-API_AVAILABLE(ios(27.0)) API_UNAVAILABLE(tvos, visionos) API_UNAVAILABLE(macos, watchos)
+API_DEPRECATED("Use AVPlaybackUserInterfaceMediaSelectionControllable instead.", ios(27.0, 27.0)) API_UNAVAILABLE(tvos, visionos) API_UNAVAILABLE(macos, watchos)
 NS_SWIFT_MAIN_ACTOR
 NS_REFINED_FOR_SWIFT
 @protocol AVInterfaceMediaSelectionControllable <NSObject>
@@ -432,7 +432,7 @@
 /*!
  Provides volume and audio muting control for media content.
  */
-API_AVAILABLE(ios(27.0)) API_UNAVAILABLE(tvos, visionos) API_UNAVAILABLE(macos, watchos)
+API_DEPRECATED("Use AVPlaybackUserInterfaceVolumeControllable instead.", ios(27.0, 27.0)) API_UNAVAILABLE(tvos, visionos) API_UNAVAILABLE(macos, watchos)
 NS_SWIFT_MAIN_ACTOR
 NS_REFINED_FOR_SWIFT
 @protocol AVInterfaceVolumeControllable <NSObject>
@@ -452,7 +452,7 @@
 /*!
  Provides metadata information about media content including title, artwork, and content type.
  */
-API_AVAILABLE(ios(27.0)) API_UNAVAILABLE(tvos, visionos) API_UNAVAILABLE(macos, watchos)
+API_DEPRECATED("Use AVPlaybackUserInterfaceMetadataProviding instead.", ios(27.0, 27.0)) API_UNAVAILABLE(tvos, visionos) API_UNAVAILABLE(macos, watchos)
 NS_SWIFT_MAIN_ACTOR
 NS_REFINED_FOR_SWIFT
 @protocol AVInterfaceMetadataProviding <NSObject>
@@ -467,7 +467,7 @@
  
  This protocol consolidates all media source capabilities into a single interface, enabling rich media experiences with full control over playback state, timeline interactions, and content metadata. Implementations should provide key-value observable properties where specified to ensure proper integration with media player controls and UI frameworks.
  */
-API_AVAILABLE(ios(27.0)) API_UNAVAILABLE(tvos, visionos) API_UNAVAILABLE(macos, watchos)
+API_DEPRECATED("Use AVPlaybackUserInterfaceControllable instead.", ios(27.0, 27.0)) API_UNAVAILABLE(tvos, visionos) API_UNAVAILABLE(macos, watchos)
 NS_SWIFT_MAIN_ACTOR
 NS_REFINED_FOR_SWIFT
 @protocol AVInterfaceControllable <	AVInterfaceTimeControllable,
diff -ruN /Applications/Xcode_27.0.0-beta2.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVKit.framework/Headers/AVKit.h /Applications/Xcode_27.0.0-beta3.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVKit.framework/Headers/AVKit.h
--- /Applications/Xcode_27.0.0-beta2.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVKit.framework/Headers/AVKit.h	2026-06-13 04:38:39
+++ /Applications/Xcode_27.0.0-beta3.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVKit.framework/Headers/AVKit.h	2026-06-30 00:56:21
@@ -52,6 +52,7 @@
 #import <AVKit/AVPictureInPictureController_AVSampleBufferDisplayLayerSupport.h>
 #import <AVKit/AVPictureInPictureController_VideoCallSupport.h>
 #import <AVKit/AVPlaybackRouteSelecting.h>
+#import <AVKit/AVPlaybackUserInterfaceControllable.h>
 #import <AVKit/AVPlayerItem+AVKitAdditions.h>
 #import <AVKit/AVPlayerViewController.h>
 #import <AVKit/AVRoutePickerView.h>
@@ -59,7 +60,6 @@
 // Catalyst excluded headers
 #if !TARGET_OS_MACCATALYST
 #import <AVKit/AVInterstitialTimeRange.h>
-#import <AVKit/AVPlaybackUserInterfaceControllable.h>
 // Included in AVKitCore on catalyst
 #import <AVKit/AVPlaybackSpeed.h>
 #endif
diff -ruN /Applications/Xcode_27.0.0-beta2.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVKit.framework/Headers/AVPlaybackUserInterfaceControllable.h /Applications/Xcode_27.0.0-beta3.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVKit.framework/Headers/AVPlaybackUserInterfaceControllable.h
--- /Applications/Xcode_27.0.0-beta2.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVKit.framework/Headers/AVPlaybackUserInterfaceControllable.h	2026-06-12 04:08:38
+++ /Applications/Xcode_27.0.0-beta3.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVKit.framework/Headers/AVPlaybackUserInterfaceControllable.h	2026-06-30 00:54:32
@@ -22,9 +22,6 @@
 #import <AVKit/AVKitDefines.h>
 #endif // TARGET_OS_MACCATALYST
 
-//#define API_AVAILABLE(...)
-//#define SPI_AVAILABLE(...)
-//#define API_UNAVAILABLE(...)
 
 // MARK: - Typedefs
 
@@ -38,7 +35,7 @@
 	AVPlaybackUserInterfacePlaybackStateScanning,
 	/// Indicates the source is being scrubbed by user interaction with the timeline.
 	AVPlaybackUserInterfacePlaybackStateScrubbing,
-} API_UNAVAILABLE(ios, tvos, visionos) API_UNAVAILABLE(macCatalyst, macos, watchos);
+} API_AVAILABLE(ios(27.0)) API_UNAVAILABLE(tvos, visionos) API_UNAVAILABLE(macos, watchos);
 
 /*!
  Describes navigation capabilities of the media source.
@@ -55,14 +52,14 @@
 	AVPlaybackUserInterfaceSeekCapabilitiesScanBackward	= 1 << 1,
 	/// The source supports seeking to specific time positions for precise navigation. Enables jumping directly to any arbitrary point within the seekable time ranges.
 	AVPlaybackUserInterfaceSeekCapabilitiesSeek			= 1 << 2,
-} API_UNAVAILABLE(ios, tvos, visionos) API_UNAVAILABLE(macCatalyst, macos, watchos);
+} API_AVAILABLE(ios(27.0)) API_UNAVAILABLE(tvos, visionos) API_UNAVAILABLE(macos, watchos);
 
 /*!
  Describes the type of content within a timeline segment.
  */
 typedef NS_ENUM(NSInteger, AVPlaybackUserInterfaceTimelineSegmentType) {
 	/// The segment contains primary program content.
-	AVPlaybackUserInterfaceTimelineSegmentTypeMain = 0,
+	AVPlaybackUserInterfaceTimelineSegmentTypePrimary = 0,
 	/// The segment contains an advertisement.
 	AVPlaybackUserInterfaceTimelineSegmentTypeAdvertisement,
 	/// The segment contains bonus content, such as a post-credits scene or supplemental material.
@@ -77,7 +74,7 @@
 	AVPlaybackUserInterfaceTimelineSegmentTypeTrailer,
 	/// The segment contains auxiliary content of an unspecified type.
 	AVPlaybackUserInterfaceTimelineSegmentTypeOther,
-} API_UNAVAILABLE(ios, tvos, visionos) API_UNAVAILABLE(macCatalyst, macos, watchos);
+} API_AVAILABLE(ios(27.0)) API_UNAVAILABLE(tvos, visionos) API_UNAVAILABLE(macos, watchos);
 
 
 // MARK: -
@@ -92,7 +89,7 @@
  auxiliary content such as advertisements or bonus material, and to control whether users can
  seek or skip through specific portions of the timeline.
  */
-API_UNAVAILABLE(ios, tvos, visionos) API_UNAVAILABLE(macCatalyst, macos, watchos)
+API_AVAILABLE(ios(27.0)) API_UNAVAILABLE(tvos, visionos) API_UNAVAILABLE(macos, watchos)
 NS_SWIFT_SENDABLE
 @interface AVPlaybackUserInterfaceTimelineSegment : NSObject <NSCopying, NSSecureCoding>
 
@@ -137,7 +134,7 @@
  that can be selected by the user in media playback interfaces. Each option provides
  display information and metadata for user selection.
  */
-API_UNAVAILABLE(ios, tvos, visionos) API_UNAVAILABLE(macCatalyst, macos, watchos)
+API_AVAILABLE(ios(27.0)) API_UNAVAILABLE(tvos, visionos) API_UNAVAILABLE(macos, watchos)
 NS_SWIFT_SENDABLE
 @interface AVPlaybackUserInterfaceMediaSelectionOption : NSObject <NSCopying, NSSecureCoding>
 
@@ -179,7 +176,7 @@
  
  Use a concrete subclass such as ``AVPlaybackUserInterfaceContentURLArtwork`` to create artwork instances.
  */
-API_UNAVAILABLE(ios, tvos, visionos) API_UNAVAILABLE(macCatalyst, macos, watchos)
+API_AVAILABLE(ios(27.0)) API_UNAVAILABLE(tvos, visionos) API_UNAVAILABLE(macos, watchos)
 NS_SWIFT_SENDABLE
 @interface AVPlaybackUserInterfaceContentArtwork : NSObject <NSCopying, NSSecureCoding>
 
@@ -195,16 +192,16 @@
  - Parameter type: The uniform type identifier for the image data.
  - Parameter size: The pixel dimensions of the artwork image.
  */
-+(AVPlaybackUserInterfaceContentURLArtwork *)artworkWithURL:(NSURL *)url
-								   contentType:(UTType *)type
-										  size:(CGSize)size NS_SWIFT_NAME(artwork(url:contentType:size:));
++ (AVPlaybackUserInterfaceContentURLArtwork *)artworkWithURL:(NSURL *)url
+												 contentType:(UTType *)type
+														size:(CGSize)size NS_SWIFT_NAME(artwork(url:contentType:size:));
 
 @end
 
 /*!
  An artwork subclass that references artwork via a URL and content type.
  */
-API_UNAVAILABLE(ios, tvos, visionos) API_UNAVAILABLE(macCatalyst, macos, watchos)
+API_AVAILABLE(ios(27.0)) API_UNAVAILABLE(tvos, visionos) API_UNAVAILABLE(macos, watchos)
 NS_SWIFT_SENDABLE
 @interface AVPlaybackUserInterfaceContentURLArtwork : AVPlaybackUserInterfaceContentArtwork
 
@@ -221,7 +218,7 @@
 /*!
  Properties specific to video content.
  */
-API_UNAVAILABLE(ios, tvos, visionos) API_UNAVAILABLE(macCatalyst, macos, watchos)
+API_AVAILABLE(ios(27.0)) API_UNAVAILABLE(tvos, visionos) API_UNAVAILABLE(macos, watchos)
 NS_SWIFT_SENDABLE
 NS_REFINED_FOR_SWIFT
 @interface AVPlaybackUserInterfaceContentVideoProperties : NSObject <NSCopying, NSSecureCoding>
@@ -255,26 +252,19 @@
  
  AVPlaybackUserInterfaceContentMetadataTemplate *template = [[AVPlaybackUserInterfaceContentMetadataTemplate alloc] init];
  template.videoProperties = [[AVPlaybackUserInterfaceContentVideoProperties alloc] initWithPresentationSize:CGSizeMake(1920, 1080)];
- template.hasAudio = YES;
  template.title = @"Episode 5: The Journey Continues";
  template.subtitle = @"Season 2";
  template.artworkRepresentations = @[artwork1, artwork2];
 
  AVPlaybackUserInterfaceContentMetadata *metadata = [[AVPlaybackUserInterfaceContentMetadata alloc] initWithTemplate:template];
  */
-API_UNAVAILABLE(ios, tvos, visionos) API_UNAVAILABLE(macCatalyst, macos, watchos)
+API_AVAILABLE(ios(27.0)) API_UNAVAILABLE(tvos, visionos) API_UNAVAILABLE(macos, watchos)
 NS_REFINED_FOR_SWIFT
 @interface AVPlaybackUserInterfaceContentMetadataTemplate : NSObject <NSCopying, NSSecureCoding>
 
 /// Properties describing the video content. `nil` if the content contains no video.
 @property (nonatomic, readwrite, copy, nullable) AVPlaybackUserInterfaceContentVideoProperties *videoProperties;
 
-/// Indicates whether the content contains an audio track.
-@property (nonatomic, readwrite) BOOL hasAudio;
-
-/// Indicates whether the content has legible tracks such as subtitles or closed captions.
-@property (nonatomic, readwrite) BOOL hasLegible;
-
 /// Primary title or name of the media content for display in player UI and system interfaces.
 /// This should be the main identifying text for the content, such as a song title, episode name, or movie title.
 @property (nonatomic, readwrite, copy, nullable) NSString *title;
@@ -293,7 +283,7 @@
 /*!
  Provides metadata information about media content including title, artwork, and content type.
  */
-API_UNAVAILABLE(ios, tvos, visionos) API_UNAVAILABLE(macCatalyst, macos, watchos)
+API_AVAILABLE(ios(27.0)) API_UNAVAILABLE(tvos, visionos) API_UNAVAILABLE(macos, watchos)
 NS_SWIFT_SENDABLE
 NS_REFINED_FOR_SWIFT
 @interface AVPlaybackUserInterfaceContentMetadata : NSObject <NSCopying, NSSecureCoding>
@@ -301,14 +291,8 @@
 AVKIT_INIT_UNAVAILABLE
 
 /// Properties describing the video content. `nil` if the content contains no video.
-@property (nonatomic, readonly, strong, nullable) AVPlaybackUserInterfaceContentVideoProperties *videoProperties;
+@property (nonatomic, readonly, copy, nullable) AVPlaybackUserInterfaceContentVideoProperties *videoProperties;
 
-/// Indicates whether the content contains an audio track.
-@property (nonatomic, readonly) BOOL hasAudio;
-
-/// Indicates whether the content has legible tracks such as subtitles or closed captions.
-@property (nonatomic, readonly) BOOL hasLegible;
-
 /// Primary title or name of the media content for display in player UI and system interfaces.
 /// This should be the main identifying text for the content, such as a song title, episode name, or movie title.
 @property (nonatomic, readonly, copy, nullable) NSString *title;
@@ -326,15 +310,11 @@
  Initializes a new metadata object with the specified properties.
 
  - Parameter videoProperties: Properties describing the video content, or `nil` for content without video.
- - Parameter hasAudio: Whether the content contains an audio track.
- - Parameter hasLegible: Whether the content has legible tracks such as subtitles or closed captions.
  - Parameter title: Primary title or name of the media content.
  - Parameter subtitle: Secondary descriptive text such as artist name or episode description.
  - Parameter artworkRepresentations: Array of available artwork representations in various formats and sizes.
  */
 - (instancetype)initWithVideoProperties:(nullable AVPlaybackUserInterfaceContentVideoProperties *)videoProperties
-							   hasAudio:(BOOL)hasAudio
-							 hasLegible:(BOOL)hasLegible
 								  title:(nullable NSString *)title
 							   subtitle:(nullable NSString *)subtitle
 				 artworkRepresentations:(NSArray<AVPlaybackUserInterfaceContentArtwork *> *)artworkRepresentations NS_DESIGNATED_INITIALIZER;
@@ -360,16 +340,11 @@
  A snapshot comprising a playback position recorded at a known host time and the rate of position
  advancement.
 
- The current position at any later host time `t` can be extrapolated as:
- ```
- position + (t - hostTime) * rate
- ```
-
  All three fields must be captured atomically by the conformer.
  */
-API_UNAVAILABLE(ios, tvos, visionos) API_UNAVAILABLE(macCatalyst, macos, watchos)
+API_AVAILABLE(ios(27.0)) API_UNAVAILABLE(tvos, visionos) API_UNAVAILABLE(macos, watchos)
 NS_SWIFT_SENDABLE
-@interface AVPlaybackUserInterfacePlaybackPosition : NSObject
+@interface AVPlaybackUserInterfacePlaybackPosition : NSObject <NSCopying, NSSecureCoding>
 
 AVKIT_INIT_UNAVAILABLE
 
@@ -398,7 +373,7 @@
 /*!
  Provides playback control and state management for media content.
  */
-API_UNAVAILABLE(ios, tvos, visionos) API_UNAVAILABLE(macCatalyst, macos, watchos)
+API_AVAILABLE(ios(27.0)) API_UNAVAILABLE(tvos, visionos) API_UNAVAILABLE(macos, watchos)
 NS_SWIFT_MAIN_ACTOR
 NS_REFINED_FOR_SWIFT
 @protocol AVPlaybackUserInterfacePlaybackControllable <NSObject>
@@ -435,7 +410,7 @@
 @property (nonatomic, readonly) BOOL containsLiveStreamingContent;
 
 /// Error information when the source encounters a playback failure. Nil when playback is functioning normally. Must be key-value observable.
-@property (nonatomic, readonly, nullable) NSError *error;
+@property (nonatomic, readonly, strong, nullable) NSError *error;
 
 
 #if TARGET_OS_TV
@@ -450,7 +425,7 @@
 /*!
  Provides time control and navigation capabilities for media content.
  */
-API_UNAVAILABLE(ios, tvos, visionos) API_UNAVAILABLE(macCatalyst, macos, watchos)
+API_AVAILABLE(ios(27.0)) API_UNAVAILABLE(tvos, visionos) API_UNAVAILABLE(macos, watchos)
 NS_SWIFT_MAIN_ACTOR
 NS_REFINED_FOR_SWIFT
 @protocol AVPlaybackUserInterfaceTimeControllable <NSObject>
@@ -465,7 +440,7 @@
 
 /// A snapshot of the current playback position. Must be updated — with a fresh `hostTime` — on
 /// play, pause, seek, scan, and buffering state changes. Must be key-value observable.
-@property (nonatomic, readonly, strong) AVPlaybackUserInterfacePlaybackPosition *playbackPosition;
+@property (nonatomic, readonly, copy) AVPlaybackUserInterfacePlaybackPosition *playbackPosition;
 
 /*!
  Requests a seek to the specified position.
@@ -481,7 +456,7 @@
 
 /// The segment containing the current playback position. This property automatically updates as playback progresses through different timeline segments.
 /// Use this to determine the current content type (primary vs. secondary) and any special playback characteristics that apply to the current position. Must be key-value observable.
-@property (nonatomic, readonly, strong) AVPlaybackUserInterfaceTimelineSegment *currentSegment;
+@property (nonatomic, readonly, copy) AVPlaybackUserInterfaceTimelineSegment *currentSegment;
 
 /// An array of time ranges within the timeline where seeking operations are permitted.
 /// Each range is represented as an NSValue wrapping a CMTimeRange structure, defining portions of the timeline where users can jump to specific time positions during playback.
@@ -496,19 +471,19 @@
 /*!
  Provides audio and subtitle selection capabilities for media content.
  */
-API_UNAVAILABLE(ios, tvos, visionos) API_UNAVAILABLE(macCatalyst, macos, watchos)
+API_AVAILABLE(ios(27.0)) API_UNAVAILABLE(tvos, visionos) API_UNAVAILABLE(macos, watchos)
 NS_SWIFT_MAIN_ACTOR
 NS_REFINED_FOR_SWIFT
 @protocol AVPlaybackUserInterfaceMediaSelectionControllable <NSObject>
 
 /// The currently selected audio track. Should be one of the options in `audioOptions`. Must be key-value observable.
-@property (nonatomic, readwrite, strong, nullable) AVPlaybackUserInterfaceMediaSelectionOption *currentAudioOption;
+@property (nonatomic, readwrite, copy, nullable) AVPlaybackUserInterfaceMediaSelectionOption *currentAudioOption;
 
 /// The currently selected audio description track. Should be one of the options in `audioDescriptionOptions`. Must be key-value observable.
-@property (nonatomic, readwrite, strong, nullable) AVPlaybackUserInterfaceMediaSelectionOption *currentAudioDescriptionOption;
+@property (nonatomic, readwrite, copy, nullable) AVPlaybackUserInterfaceMediaSelectionOption *currentAudioDescriptionOption;
 
 /// The currently selected subtitle or caption track. Should be one of the options in `legibleOptions`. Must be key-value observable.
-@property (nonatomic, readwrite, strong, nullable) AVPlaybackUserInterfaceMediaSelectionOption *currentLegibleOption;
+@property (nonatomic, readwrite, copy, nullable) AVPlaybackUserInterfaceMediaSelectionOption *currentLegibleOption;
 
 /// Array of available audio track options. This includes all audio streams provided by the media source such as different languages, director's commentary, and alternative audio mixes.
 /// Options are ordered by preference with the primary language or default audio track typically appearing first. May be empty for content without selectable audio options. Must be key-value observable.
@@ -528,7 +503,7 @@
 /*!
  Provides volume and audio muting control for media content.
  */
-API_UNAVAILABLE(ios, tvos, visionos) API_UNAVAILABLE(macCatalyst, macos, watchos)
+API_AVAILABLE(ios(27.0)) API_UNAVAILABLE(tvos, visionos) API_UNAVAILABLE(macos, watchos)
 NS_SWIFT_MAIN_ACTOR
 NS_REFINED_FOR_SWIFT
 @protocol AVPlaybackUserInterfaceVolumeControllable <NSObject>
@@ -547,13 +522,13 @@
 /*!
  Provides metadata information about media content including title, artwork, and content type.
  */
-API_UNAVAILABLE(ios, tvos, visionos) API_UNAVAILABLE(macCatalyst, macos, watchos)
+API_AVAILABLE(ios(27.0)) API_UNAVAILABLE(tvos, visionos) API_UNAVAILABLE(macos, watchos)
 NS_SWIFT_MAIN_ACTOR
 NS_REFINED_FOR_SWIFT
 @protocol AVPlaybackUserInterfaceMetadataProviding <NSObject>
 
 /// The metadata object containing information about the media content. Must be key-value observable.
-@property (nonatomic, readonly, strong) AVPlaybackUserInterfaceContentMetadata *metadata;
+@property (nonatomic, readonly, copy) AVPlaybackUserInterfaceContentMetadata *metadata;
 
 @end
 
@@ -562,7 +537,7 @@
  
  This protocol consolidates all media source capabilities into a single interface, enabling rich media experiences with full control over playback state, timeline interactions, and content metadata. Implementations should provide key-value observable properties where specified to ensure proper integration with media player controls and UI frameworks.
  */
-API_UNAVAILABLE(ios, tvos, visionos) API_UNAVAILABLE(macCatalyst, macos, watchos)
+API_AVAILABLE(ios(27.0)) API_UNAVAILABLE(tvos, visionos) API_UNAVAILABLE(macos, watchos)
 NS_SWIFT_MAIN_ACTOR
 NS_REFINED_FOR_SWIFT
 @protocol AVPlaybackUserInterfaceControllable <	AVPlaybackUserInterfaceTimeControllable,

Clone this wiki locally