@class VUIPlayer, NSDate, VUIImageProxy, VUIImageView, UIViewController, VUIMediaInfoFetchController, VUIMediaInfo, TVPVideoView, NSLayoutConstraint, NSString, NSTimer, TVPStateMachine, NSNumber, AVPlayerViewController, TVPPlayer, NSArray; @interface VUIBackgroundMediaController : VUIBaseViewController @property (retain, nonatomic) VUIImageView *alphaProxyImageView; @property (retain, nonatomic) VUIImageProxy *alphaImageProxy; @property (retain, nonatomic) UIViewController *playbackContainerController; @property (retain, nonatomic) NSDate *playbackLoadingStartDate; @property (weak, nonatomic) NSTimer *playbackLoadingTimer; @property (weak, nonatomic) NSTimer *playbackDelayTimer; @property (weak, nonatomic) NSTimer *imageDelayTimer; @property (retain, nonatomic) VUIMediaInfo *pendingMediaInfo; @property (nonatomic) unsigned long long pendingMediaInfoDirection; @property (retain, nonatomic) NSNumber *pendingAnimated; @property (retain, nonatomic) TVPStateMachine *stateMachine; @property (retain, nonatomic) VUIMediaInfoFetchController *mediaInfoFetchController; @property (nonatomic) unsigned long long state; @property (nonatomic) unsigned long long imageAnimationOptions; @property (nonatomic) double imageAnimationDuration; @property (nonatomic) double imageTransitionInterval; @property (nonatomic) BOOL shouldAnimateOverlayView; @property (retain, nonatomic) TVPVideoView *secondaryVideoView; @property (weak, nonatomic) NSTimer *pauseStateTimeoutTimer; @property (nonatomic) unsigned long long vpafPlaybackStartReason; @property (nonatomic, getter=isAutomaticPlaybackStop) BOOL automaticPlaybackStop; @property (nonatomic) unsigned long long vpafPlaybackStopReason; @property (nonatomic) BOOL shouldPlayAfterAppBecomesActive; @property (nonatomic) BOOL shouldPlayAfterFullplaybackUIDidEnd; @property (nonatomic) BOOL hasViewAppeared; @property (readonly, nonatomic, getter=isBackgrounded) BOOL backgrounded; @property (nonatomic) BOOL didAVPlayerControllerEnterFullscreen; @property (nonatomic) BOOL didWeCreatePlayer; @property (nonatomic) BOOL observingPictureInPictureActive; @property (copy, nonatomic) NSString *titleForLogging; @property (nonatomic) unsigned long long deactivationReasons; @property (nonatomic) BOOL showsVideoControls; @property (nonatomic) BOOL keepVideoGravityUnchangedByVideoControlsVisibility; @property (nonatomic) float fullscreenTransitionVolumeAnimationChanges; @property (retain, nonatomic) NSLayoutConstraint *proxyImageWidthConstraint; @property (retain, nonatomic) NSLayoutConstraint *proxyImageHeightConstraint; @property (retain, nonatomic) NSLayoutConstraint *proxyImageCenterXConstraint; @property (retain, nonatomic) NSLayoutConstraint *proxyImageCenterYConstraint; @property (retain, nonatomic) VUIPlayer *activePIPingPlayer; @property (nonatomic) unsigned long long lastMediaInfoIndex; @property (nonatomic) BOOL observingInitialMediaItemHasCompletedInitialLoading; @property (retain, nonatomic) NSString *lastMediaEventActionType; @property (retain, nonatomic) TVPPlayer *player; @property (retain, nonatomic) VUIImageView *proxyImageView; @property (retain, nonatomic) AVPlayerViewController *avPlayerViewController; @property (retain, nonatomic) NSString *videoGravity; @property (readonly, copy, nonatomic) VUIMediaInfo *currentMediaInfo; @property (copy, nonatomic) NSArray *mediaInfos; @property (nonatomic) unsigned long long mediaInfoIndex; @property (readonly, nonatomic, getter=isForeground) BOOL foreground; @property (readonly, copy, nonatomic) NSString *name; @property (nonatomic, getter=isPlaybackEnabled) BOOL playbackEnabled; @property (nonatomic) BOOL loadsPlayerWithFullscreenPlayback; @property (nonatomic, getter=shouldStopPlayerWhenViewDisappears) BOOL stopPlayerWhenViewDisappears; @property (nonatomic, getter=shouldStopPlayerWhenExitingFullScreen) BOOL stopPlayerWhenExitingFullScreen; @property (nonatomic) BOOL exitsFullscreenWhenPlaybackEnds; @property (nonatomic) BOOL clearPreviousImageBeforeLoading; @property (nonatomic) BOOL animateImageChange; @property (nonatomic) BOOL animateVideoChange; @property (nonatomic) unsigned long long imageContentMode; @property (nonatomic) BOOL popWhenPlayerStops; @property (nonatomic) BOOL mutePlaybackInBackground; @property (nonatomic, getter=shouldUseForegroundAudioSessionInBackgroundMode) BOOL useForegroundAudioSessionInBackgroundMode; @property (nonatomic) BOOL shouldShowFullScreenButton; @property (nonatomic) float backgroundVolume; @property (nonatomic) float foregroundVolume; @property (nonatomic) double volumeTransitionAnimationDuration; @property (nonatomic) unsigned long long numberOfVolumeIncrements; @property (nonatomic, getter=shouldStopWhenAnotherMediaControllerStarts) BOOL stopWhenAnotherMediaControllerStarts; @property (nonatomic) unsigned long long playbackStopDelayReasons; @property (nonatomic) double playbackStopDelay; @property (nonatomic) double playbackStartDelay; @property (nonatomic) unsigned long long imageSwappingAnimationType; @property (nonatomic) unsigned long long videoSwappingAnimationType; @property (nonatomic, getter=shouldPauseAtEnd) BOOL shouldPauseAtEnd; @property (nonatomic, getter=shouldShowImageAndStopAfterPausingAtEnd) BOOL shouldShowImageAndStopAfterPausingAtEnd; @property (nonatomic) double imageTransitionAnimationDuration; @property (nonatomic) double imageVideoTransitionAnimationDuration; @property (nonatomic) BOOL showsPlaybackControlsInForeground; @property (nonatomic) struct UIEdgeInsets { double top; double left; double bottom; double right; } legibleContentInsets; @property (nonatomic) BOOL shouldDisableSubtitle; @property (nonatomic, getter=isAutomaticPlaybackStart) BOOL automaticPlaybackStart; @property (readonly) unsigned long long hash; @property (readonly) Class superclass; @property (readonly, copy) NSString *description; @property (readonly, copy) NSString *debugDescription; - (void)play; - (void)pause; - (id)init; - (void)dealloc; - (id)notificationObject; - (void)_applicationDidRemoveDeactivationReason:(id)a0; - (void)stop; - (id)initWithName:(id)a0; - (void)_applicationWillAddDeactivationReason:(id)a0; - (id)initWithNibName:(id)a0 bundle:(id)a1; - (void)observeValueForKeyPath:(id)a0 ofObject:(id)a1 change:(id)a2 context:(void *)a3; - (void).cxx_destruct; - (id)initWithCoder:(id)a0; - (BOOL)_autoPlayEnabled; - (void)playerViewController:(id)a0 willEndFullScreenPresentationWithAnimationCoordinator:(id)a1; - (void)updateFrames; - (BOOL)_canPause; - (void)_handleApplicationDidBecomeActiveNotification:(id)a0; - (void)_handleApplicationWillResignActiveNotification:(id)a0; - (void)setControlsVisible:(BOOL)a0; - (void)_loadImage:(id /* block */)a0; - (void)_playbackStateChanged:(id)a0; - (void)_configureAudioSession; - (void)vui_viewDidLoad; - (void)vui_viewDidLayoutSubviews; - (void)vui_viewWillAppear:(BOOL)a0; - (void)vui_viewWillDisappear:(BOOL)a0; - (void)_addAlphaProxyImageViewIfNeeded; - (void)_configureAudioSessionForState:(id)a0; - (void)_pipPlaybackDidChangeMutedState; - (void)transitionToFullScreenAnimated:(BOOL)a0; - (void)_addContentViewIfNeeded; - (void)_addOverlayViewAnimatedIfNeeded:(BOOL)a0 dismissAfter:(double)a1; - (void)_addPlaybackViewControllerForPlayback:(BOOL)a0; - (void)_addProxyImageView:(id)a0; - (void)_animateTransitionFromView:(id)a0 toView:(id)a1 duration:(double)a2 direction:(unsigned long long)a3 completion:(id /* block */)a4; - (void)_audioSessionSilentSecondaryAudioDidChange:(id)a0; - (void)_cleanUpEverything; - (void)_cleanUpEverythingPlaybackRelated; - (void)_cleanUpPlaybackTimers; - (double)_computedPlaybackDelayInterval; - (void)_configMirroredImageForBackgroundImage:(id)a0; - (void)_configureLegibleContentInsetFromState:(id)a0 toState:(id)a1; - (void)_constrainToView:(id)a0; - (BOOL)_currentMediaInfoContentMatchesMediaInfo:(id)a0; - (BOOL)_currentMediaInfoImagesMatchesNewMediaInfoImage:(id)a0; - (void)_didPlayMediaItemToEnd:(id)a0; - (void)_disablePlaybackWhenShowingFullScreenUIIfNeeded; - (void)_disableSubtitleIfNeeded; - (void)_enablePlaybackWhenFullScreenPlaybackEnd; - (unsigned long long)_flippedDirection:(unsigned long long)a0 isRTL:(BOOL)a1; - (void)_handleApplicationDidEnterBackgroundNotification:(id)a0; - (void)_handleNavigationControllerDidShow; - (void)_handlePlaybackManagerUIDidChange; - (void)_handleViewDisappear; - (BOOL)_hasSecondaryView; - (BOOL)_isViewInTopMostVisibleView; - (void)_mediaControllerStartedPlayback:(id)a0; - (BOOL)_mediaInfo:(id)a0 contentMatchesMediaInfo:(id)a1; - (void)_notifyAVPlayerViewControllerDisplaySize; - (void)_observeModalNavigationControllerNotifications; - (void)_performPlayerVolumeAnimatedUpdate:(BOOL)a0; - (void)_pipPlaybackStateChanged:(id)a0; - (struct CGRect { struct CGPoint { double x0; double x1; } x0; struct CGSize { double x0; double x1; } x1; })_playbackContainerViewFrame:(BOOL)a0 hasSecondaryVideoView:(BOOL)a1; - (void)_playbackErrorDidOccur:(id)a0; - (void)_recordBgAutoPlayMediaEventForPlaybackState:(id)a0; - (void)_registerAudioSessionNotification; - (void)_registerForApplicationStateNotifications; - (void)_registerPlaybackManagerNotification; - (void)_registerPlayerNotifications; - (void)_registerStateMachineHandlers; - (void)_removeOverlayView:(id)a0 animated:(BOOL)a1; - (void)_removePlaybackViewController; - (void)_removeProxyImageView; - (struct CGRect { struct CGPoint { double x0; double x1; } x0; struct CGSize { double x0; double x1; } x1; })_secondaryVideoViewFrame:(BOOL)a0; - (double)_secondaryVideoViewHeight; - (void)_setAlphaImageProxy:(id)a0; - (BOOL)_shouldApplyLegibleContentInsetForState:(id)a0; - (BOOL)_shouldPausePlaybackDueToDeactivationReasons; - (BOOL)_shouldShowSecondaryView; - (void)_showPlaybackIfPossible; - (void)_stateDidChangeFromState:(id)a0 toState:(id)a1 onEvent:(id)a2 context:(id)a3 userInfo:(id)a4; - (void)_swapActiveMedia:(BOOL)a0 animated:(BOOL)a1 completion:(id /* block */)a2; - (void)_transitionToNewImage:(id)a0 animated:(BOOL)a1 direction:(unsigned long long)a2 completion:(id /* block */)a3; - (void)_unregisterPlayerNotifications; - (void)_updateAVPlayerViewControllerWithAVPlayerForPlayer:(id)a0; - (void)_updateCurrentPlaybackViewFrameForPlaybackInBackground:(BOOL)a0 animated:(BOOL)a1; - (void)_updatePlayerMuteStateForBackgroundPlaybackWithReason:(id)a0; - (void)_updatePlayerVolume:(id)a0; - (void)_updateVideoPlayerLegibleContentInsets:(BOOL)a0; - (void)_updateWithMediaInfo:(id)a0 withDirection:(unsigned long long)a1 imageVideoSwapBehavior:(unsigned long long)a2 animated:(BOOL)a3; - (void)appendMediaInfos:(id)a0; - (id)createTransitionImageViewAtIndex:(unsigned long long)a0 oldView:(id)a1; - (void)loadAlphaImageProxy; - (void)playBackManagerFullscreenPlaybackUIDidChangeNotification:(id)a0; - (void)playbackManagerShowingExtrasDidChangeNotification:(id)a0; - (void)removeMediaInfoAtIndex:(unsigned long long)a0; - (void)setMediaInfo:(id)a0 atIndex:(unsigned long long)a1 animated:(BOOL)a2; - (void)setMediaInfoIndex:(unsigned long long)a0 forwardAnimation:(BOOL)a1; - (void)setMediaInfoIndex:(unsigned long long)a0 imageVideoSwapBehavior:(unsigned long long)a1 animated:(BOOL)a2; - (void)setMediaInfoIndex:(unsigned long long)a0 imageVideoSwapBehavior:(unsigned long long)a1 animated:(BOOL)a2 forwardAnimation:(BOOL)a3; - (void)setMediaInfos:(id)a0 animated:(BOOL)a1; - (void)setMediaInfos:(id)a0 selectedIndex:(unsigned long long)a1 animated:(BOOL)a2; - (void)setPlaybackEnabled:(BOOL)a0 imageVideoSwapBehavior:(unsigned long long)a1; - (void)showAlphaImage:(BOOL)a0 animated:(BOOL)a1; - (void)transitionToForeground:(BOOL)a0 animated:(BOOL)a1; - (void)transitionToForeground:(BOOL)a0 withPlaybackControls:(BOOL)a1 animated:(BOOL)a2; - (void)transitionToForeground:(BOOL)a0 withPlaybackControls:(BOOL)a1 fullScreenPlayer:(BOOL)a2 animated:(BOOL)a3; - (void)updateAudioMuteWithPIPingPlayback; @end