-
Notifications
You must be signed in to change notification settings - Fork 573
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,