@class MPQueueFeeder, NSDictionary, NSObject, AVAsset, MPMediaLibraryPrivacyContext, MPModelPlayEvent, MPModelGenericObject, AVPlayerItemAccessLog, MPMediaItem, NSString, AVPlayerItem, AVPlayerItemMetadataOutput, NSMutableArray, NSMutableSet, ICMusicSubscriptionLeaseStatus, NSArray, NSNumber, MPNowPlayingContentItem, NSError; @protocol OS_dispatch_queue, MPAVItemObserver; @interface MPAVItem : NSObject { AVAsset *_asset; NSObject<OS_dispatch_queue> *_assetQueue; AVPlayerItem *_avPlayerItem; double _cachedDuration; double _cachedPlayableDuration; NSArray *_cachedSeekableTimeRanges; double _seekableTimeRangesCacheTime; long long _type; MPNowPlayingContentItem *_contentItem; unsigned char _isStreamable : 2; unsigned char _watchingAttributes : 1; unsigned char _lyricsAvailable : 1; struct os_unfair_lock_s { unsigned int _os_unfair_lock_opaque; } _lock; BOOL _hasLoadedHasProtectedContent; BOOL _hasLoadedPlaybackMode; BOOL _hasValidPlayerItemDuration; double _lastLoggedTotalDuration; long long _likedState; struct { long long value; int timescale; unsigned int flags; long long epoch; } _playerItemDuration; long long _exportableArtworkRevision; MPMediaLibraryPrivacyContext *_privacyContext; AVPlayerItemMetadataOutput *_metadataOutput; NSMutableArray *_adjunctErrors; NSMutableSet *_pendingContentItemUpdates; } @property (class, readonly, nonatomic, getter=isPlaceholder) BOOL placeholder; @property (nonatomic) BOOL isAssetLoaded; @property (nonatomic) long long nowPlayingInfoQueueIndex; @property (nonatomic) long long nowPlayingInfoQueueCount; @property (readonly, nonatomic, getter=isPlaceholder) BOOL placeholder; @property (nonatomic) long long lastChangeDirection; @property (readonly, nonatomic) BOOL shouldPreventPlayback; @property (nonatomic) BOOL isStartItem; @property (nonatomic) BOOL isHostingSharedSession; @property (readonly, nonatomic) MPModelGenericObject *modelGenericObject; @property (retain, nonatomic) MPModelPlayEvent *modelPlayEvent; @property (readonly, copy, nonatomic) NSNumber *bookmarkTime; @property (readonly, copy, nonatomic) NSNumber *initialPlaybackStartTime; @property (copy, nonatomic) NSNumber *initialPlaybackStartTimeOverride; @property (readonly, copy, nonatomic) NSNumber *playbackInfoStartTime; @property (copy, nonatomic) NSNumber *lastMetadataChangeTime; @property (readonly, copy, nonatomic) NSString *rtcReportingServiceIdentifier; @property (readonly, nonatomic) BOOL allowsAirPlayFromCloud; @property (readonly, nonatomic) BOOL allowsExternalPlayback; @property (readonly, nonatomic) BOOL requiresLoadedAssetForAirPlayProperties; @property (nonatomic, getter=_currentPlaybackRate, setter=_setCurrentPlaybackRate:) float _currentPlaybackRate; @property (readonly, nonatomic) BOOL hasFinishedDownloading; @property (nonatomic) BOOL hasPerformedErrorResolution; @property (copy, nonatomic) NSDictionary *playbackInfo; @property (retain, nonatomic) AVPlayerItem *playerItem; @property (readonly, nonatomic) struct OpaqueCMTimebase { } *timebase; @property (nonatomic, getter=isActiveItem) BOOL activeItem; @property (readonly, copy, nonatomic) NSString *storeFrontIdentifier; @property (nonatomic, getter=hasExternalDisplay) BOOL externalDisplay; @property (readonly, nonatomic) struct { long long x0; int x1; unsigned int x2; long long x3; } _playerItemDurationIfAvailable; @property (readonly, nonatomic) NSNumber *storeAccountID; @property (readonly, nonatomic) long long leasePlaybackPreventionState; @property (readonly, copy, nonatomic) ICMusicSubscriptionLeaseStatus *leaseStatus; @property (copy, nonatomic) NSString *explicitBadge; @property (readonly, nonatomic) BOOL didReachEnd; @property (readonly, nonatomic) BOOL canUseLoadedAsset; @property (nonatomic, getter=isInOverlappedTransition) BOOL inOverlappedTransition; @property (nonatomic) double overlappedTransitionDuration; @property (readonly, nonatomic) BOOL supportsFastForward; @property (readonly, nonatomic) BOOL supportsRewind; @property (readonly, nonatomic) BOOL supportsRateChange; @property (readonly, copy, nonatomic) NSString *contentItemID; @property (readonly, copy, nonatomic) NSString *queueSectionID; @property (readonly, copy, nonatomic) NSString *queueItemID; @property (nonatomic, getter=isAutoPlayItem) BOOL autoPlayItem; @property (nonatomic, getter=isSharedListeningItem) BOOL sharedListeningItem; @property (nonatomic) long long explicitContentState; @property (readonly, nonatomic) MPNowPlayingContentItem *contentItem; @property (readonly, nonatomic) BOOL supportsVocalAttenuation; @property (nonatomic, getter=isConfiguredForVocalAttenuation) BOOL configuredForVocalAttenuation; @property (readonly, nonatomic) NSArray *adjunctErrors; @property (weak, nonatomic) id<MPAVItemObserver> observer; @property (readonly, nonatomic, getter=isAssetLoaded) BOOL assetLoaded; @property (readonly, nonatomic, getter=isAssetURLValid) BOOL assetURLValid; @property (readonly, nonatomic) BOOL didAttemptToLoadAsset; @property (readonly, nonatomic) AVAsset *asset; @property (readonly, nonatomic) BOOL canReusePlayerItem; @property (readonly, copy, nonatomic) NSError *playbackError; @property (retain, nonatomic) NSError *itemError; @property (readonly, nonatomic) long long status; @property (retain, nonatomic) NSString *queueIdentifier; @property (readonly, nonatomic, getter=isAlwaysLive) BOOL alwaysLive; @property (readonly, nonatomic) BOOL usesBookmarking; @property (weak, nonatomic) MPQueueFeeder *feeder; @property (readonly, nonatomic) long long playbackMode; @property (readonly, nonatomic) AVPlayerItemAccessLog *accessLog; @property (readonly, nonatomic) double currentTimeDisplayOverride; @property (nonatomic) float defaultPlaybackRate; @property (readonly, nonatomic) NSArray *chapterTimeMarkers; @property (readonly, nonatomic) NSArray *artworkTimeMarkers; @property (readonly, nonatomic) NSArray *urlTimeMarkers; @property (retain, nonatomic) NSArray *closedCaptionTimeMarkers; @property (readonly, nonatomic) BOOL useEmbeddedChapterData; @property (readonly, nonatomic) long long type; @property (readonly, nonatomic) long long customAVEQPreset; @property (readonly, nonatomic) BOOL allowsEQ; @property (readonly, nonatomic) NSString *displayableText; @property (readonly, nonatomic) BOOL displayableTextLoaded; @property (readonly, nonatomic) NSString *album; @property (readonly, nonatomic) long long albumStoreID; @property (readonly, nonatomic) NSString *artist; @property (readonly, nonatomic, getter=isArtistUploadedContent) BOOL artistUploadedContent; @property (readonly, nonatomic) NSString *albumArtist; @property (readonly, nonatomic) long long storeAlbumArtistID; @property (readonly, nonatomic) long long artistStoreID; @property (readonly, nonatomic) unsigned long long albumTrackNumber; @property (readonly, nonatomic) unsigned long long albumTrackCount; @property (readonly, nonatomic) NSString *composer; @property (readonly, copy, nonatomic) NSString *copyrightText; @property (readonly, nonatomic) unsigned long long discNumber; @property (readonly, nonatomic) unsigned long long discCount; @property (readonly, nonatomic, getter=isExplicitTrack) BOOL explicitTrack; @property (readonly, copy, nonatomic) NSString *externalContentIdentifier; @property (readonly, nonatomic) NSString *genre; @property (readonly, nonatomic) unsigned long long mediaType; @property (nonatomic) long long likedState; @property (readonly, nonatomic, getter=isLikedStateEnabled) BOOL likedStateEnabled; @property (readonly, nonatomic) BOOL supportsLikedState; @property (readonly, nonatomic) NSString *lyrics; @property (readonly, nonatomic) NSString *libraryLyrics; @property (readonly, nonatomic) BOOL hasStoreLyrics; @property (readonly, nonatomic) BOOL hasTimeSyncedLyrics; @property (readonly, nonatomic) NSString *itemDescription; @property (readonly, copy, nonatomic) NSString *containerUniqueID; @property (readonly, nonatomic) NSString *mainTitle; @property (readonly, nonatomic, getter=isStreamable) BOOL streamable; @property (readonly, nonatomic) unsigned long long persistentID; @property (readonly, nonatomic) NSString *databaseID; @property (readonly, nonatomic) unsigned long long cloudID; @property (readonly, nonatomic) NSString *personID; @property (readonly, nonatomic) NSString *cloudUniversalLibraryID; @property (readonly, nonatomic) NSString *cloudAlbumID; @property (readonly, nonatomic) unsigned long long albumPersistentID; @property (readonly, nonatomic) unsigned long long albumArtistPersistentID; @property (readonly, nonatomic) unsigned long long artistPersistentID; @property (readonly, nonatomic) unsigned long long genrePersistentID; @property (readonly, nonatomic) unsigned long long composerPersistentID; @property (readonly, nonatomic) BOOL shouldShowComposer; @property (readonly, nonatomic) NSString *storeItemID; @property (readonly, nonatomic) long long storeItemInt64ID; @property (readonly, nonatomic) long long storePurchasedAdamID; @property (readonly, nonatomic) long long storeSubscriptionAdamID; @property (readonly, nonatomic) long long reportingAdamID; @property (readonly, nonatomic) long long lyricsAdamID; @property (readonly, nonatomic) float userRating; @property (readonly, nonatomic) BOOL durationIsValid; @property (readonly, nonatomic) double durationIfAvailable; @property (readonly, nonatomic) double durationFromExternalMetadata; @property (readonly, nonatomic) double playableDuration; @property (readonly, nonatomic) double playableDurationIfAvailable; @property (readonly, nonatomic) double timeOfSeekableStart; @property (readonly, nonatomic) double timeOfSeekableEnd; @property (readonly, nonatomic) struct CGSize { double x0; double x1; } naturalSize; @property (readonly, nonatomic) NSArray *timedMetadataIfAvailable; @property (readonly, nonatomic) BOOL usesSubscriptionLease; @property (nonatomic) double lastPlayPerformanceTime; @property (readonly, retain, nonatomic) MPMediaItem *mediaItem; @property (readonly, nonatomic) BOOL mediaItemNeedsLoading; @property (nonatomic) float loudnessInfoVolumeNormalization; @property (nonatomic) float soundCheckVolumeNormalization; @property (readonly, nonatomic) BOOL supportsRating; @property (readonly, nonatomic) BOOL prefersSeekOverSkip; @property (readonly, nonatomic) BOOL hasProtectedContent; @property (readonly, nonatomic, getter=isRadioItem) BOOL radioItem; @property (readonly, nonatomic) BOOL stationAllowsItemLiking; @property (readonly, copy, nonatomic) NSString *stationHash; @property (readonly, nonatomic) long long stationID; @property (readonly, copy, nonatomic) NSString *stationName; @property (readonly, copy, nonatomic) NSString *stationStringID; @property (readonly, nonatomic) long long stationProviderID; @property (readonly, nonatomic) struct { long long x0; int x1; unsigned int x2; long long x3; } duration; @property (readonly, nonatomic) struct { long long x0; int x1; unsigned int x2; long long x3; } forwardPlaybackEndTime; @property (readonly, nonatomic) struct CGSize { double x0; double x1; } presentationSize; + (id)URLFromPath:(id)a0; - (long long)albumYear; - (id)initWithURL:(id)a0; - (id)init; - (id)initWithPlayerItem:(id)a0; - (void)dealloc; - (id)initWithAsset:(id)a0; - (id)initWithURL:(id)a0 options:(id)a1; - (id)description; - (id)path; - (void)observeValueForKeyPath:(id)a0 ofObject:(id)a1 change:(id)a2 context:(void *)a3; - (void).cxx_destruct; - (void)setAsset:(id)a0; - (id)url; - (void)setRating:(float)a0; - (id)_seekableTimeRanges; - (void)setupEQPresetWithDefaultPreset:(long long)a0; - (BOOL)isValidPlayerSubstituteForItem:(id)a0; - (int)subtitleTrackID; - (void)_addObservationsForAVPlayerItem:(id)a0; - (void)_applyLoudnessInfo; - (void)_clearAsset; - (void)_clearAssetNow; - (id)_contentItemDeviceSpecificUserInfo; - (id)_contentItemUserInfo; - (void)_currentPlaybackRateDidChange:(float)a0; - (void)_didBecomeActivePlayerItem; - (void)_didResignActivePlayerItem; - (double)_durationFromExternalMetadataIfAvailable; - (double)_expectedStartTimeWithPlaybackInfo:(id)a0; - (double)_expectedStopTimeWithPlaybackInfo:(id)a0; - (void)_handleUpdatedLikedState:(long long)a0 forUserIdentity:(id)a1 completion:(id /* block */)a2; - (id)_imageChapterTrackIDsForAsset:(id)a0; - (id)_initialPlaybackStartTimeForPlaybackInfo:(id)a0; - (void)_internalLikedStateDidChangeNotification:(id)a0; - (void)_itemAttributeAvailableKey:(id)a0; - (void)_likedStateDidChange; - (void)_loadAssetAndPlayerItem; - (void)_loadAssetProperties; - (void)_onAssetQueueClearAsset; - (void)_performContentItemUpdate:(id /* block */)a0 debounceWithIdentifier:(id)a1; - (long long)_persistedLikedState; - (void)_pickupContentItemFrom:(id)a0; - (double)_playableDurationForLoadedTimeRanges:(id)a0; - (void)_removeObservationsForAVPlayerItem:(id)a0; - (void)_setNeedsPersistedLikedStateUpdate; - (BOOL)_shouldPublishArtworkURL; - (void)_updateAudioFormatInfoForContentItem:(id)a0; - (void)_updateContentItem; - (void)_updateContentItemIncludingPlaybackState:(BOOL)a0; - (void)_updateDurationSnapshotWithElapsedTime:(double)a0 playbackRate:(float)a1; - (void)_updateHasFinishedDownloading; - (void)_updateSoundCheckVolumeNormalizationForPlayerItem; - (void)_willBecomeActivePlayerItem; - (void)_willResignActivePlayerItem; - (void)addAdjunctError:(id)a0; - (id)analyticsContentType; - (id)analyticsFormatType; - (void)applyVolumeNormalizationWithSoundCheckEnabled:(BOOL)a0; - (id /* block */)artworkCatalogBlock; - (id)artworkCatalogForPlaybackTime:(double)a0; - (void)clearAdjunctErrors; - (void)copyPlayerItem; - (void)disableItemReuse; - (double)durationInSeconds; - (void)invalidateContentItemAudioFormatInfo; - (void)invalidateContentItemDeviceSpecificUserInfo; - (void)invalidateContentItemUserInfo; - (BOOL)isSupportedDefaultPlaybackSpeed:(long long)a0; - (void)loadAssetAndPlayerItem; - (void)notePlaybackFinishedByHittingEnd; - (void)pauseContentKeySession; - (void)prepareForRate:(float)a0 completionHandler:(id /* block */)a1; - (void)reevaluateHasProtectedContent; - (void)reevaluateType; - (void)replacePlayerItemWithPlayerItem:(id)a0; - (void)resolvePlaybackError:(id)a0 withCompletion:(id /* block */)a1; - (void)resumeContentKeySession; - (void)setContentItemID:(id)a0 queueSectionID:(id)a1 queueItemID:(id)a2; - (void)setLikedState:(long long)a0 forUserIdentity:(id)a1; - (void)setSubtitleTrackID:(int)a0; - (void)setupWithPlaybackInfo; - (void)updatePlayerItemMetadata; @end