@class PLMoviePlayerView, AVPlayerItem, PLTVOutWindow, NSString, AVPlayer; @protocol PLMoviePlayerControllerDelegate; @interface PLMoviePlayerController : NSObject { AVPlayerItem *_playerItem; PLTVOutWindow *_tvOutWindow; BOOL _hasPendingTime; double _pendingTime; unsigned long long _pendingTimeSnapOption; BOOL _forceUpdateCurrentTime; BOOL _isExternalPlayback; BOOL _exited; double _lastSetCurrentTimeTime; BOOL _isSeeking; unsigned long long _backgroundTaskId; BOOL _audioSessionActive; NSString *_originalAudioCategory; } @property (nonatomic) BOOL TVOutEnabled; @property (nonatomic, setter=_setForceDisableTVOut:) BOOL forceDisableTVOut; @property (nonatomic) BOOL isActiveController; @property (nonatomic) id<PLMoviePlayerControllerDelegate> delegate; @property (readonly, retain, nonatomic) AVPlayer *player; @property (readonly, retain, nonatomic) PLMoviePlayerView *view; @property (readonly, nonatomic) float playbackRate; @property (readonly, nonatomic) unsigned long long playbackState; @property (readonly, nonatomic) double duration; @property (nonatomic) double currentTime; @property (readonly, nonatomic) unsigned long long bufferingState; @property (readonly, nonatomic) BOOL isPreparedForPlayback; + (id)AVAssetURLWithPath:(id)a0; + (BOOL)_isNetworkSupportedPath:(id)a0; + (BOOL)_isStreamableAsset:(id)a0; - (void)_registerForNotifications; - (long long)externalPlaybackType; - (void)play; - (void)pause; - (id)init; - (void)dealloc; - (void)_unregisterForNotifications; - (void)stop; - (void)observeValueForKeyPath:(id)a0 ofObject:(id)a1 change:(id)a2 context:(void *)a3; - (void)_setPlayerItem:(id)a0; - (id)_asset; - (void)_screenDidConnect:(id)a0; - (void)_screenDidDisconnect:(id)a0; - (BOOL)_allowsExternalPlayback; - (void)_dispatchOnMainThreadWithBlock:(id /* block */)a0; - (void)_tearDownPlayer; - (void)requestToBecomeActiveController; - (void)_delayedUpdateFromPendingTime; - (void)_didEnterBackgroundNotification:(id)a0; - (void)_didLoadValueOfKey:(id)a0 forAsset:(id)a1; - (void)_displayVideoView; - (void)_exitPlayer:(int)a0; - (void)_loadAsset:(id)a0; - (void)_pausePlaybackForNotification; - (void)_playbackFailedWithError:(id)a0; - (void)_playerItemDidReachEndNotification:(id)a0; - (void)_playerItemFailedToPlayToEnd:(id)a0; - (void)_playerItemFailedToPlayToEndNotification:(id)a0; - (id)_playerKeysToObserve; - (void)_playerRateDidChange:(id)a0; - (void)_restoreTVOutVideoIfNecessary; - (void)_serverConnectionDidDie:(id)a0; - (void)_setBufferingState:(unsigned long long)a0; - (void)_setPlaybackState:(unsigned long long)a0; - (void)_setupPlayer; - (void)_setupTVOutWindow; - (void)_simpleRemoteNotification:(id)a0; - (void)_streamBufferFull; - (void)_streamLikelyToKeepUp; - (void)_streamRanDry; - (void)_streamUnlikelyToKeepUp; - (void)_tearDownTVOutWindow; - (void)_updateBackgroundViewInformation; - (void)_updateDisableAirPlayMirroringDuringPlayback; - (void)_updateFromPendingTime; - (void)_updateTVOutEnabled; - (void)_willBeginSuspendAnimationNotification:(id)a0; - (void)_willEnterForegroundNotification:(id)a0; - (void)_willResignNotification:(id)a0; - (void)_willSuspendNotification:(id)a0; - (void)didBecomeActiveController; - (BOOL)isExternalPlayback; - (void)pauseDueToInsufficientData; - (void)playDueToEnoughData; - (void)playFromBeginning; - (void)requestToResignAsActiveController; - (void)resetPlayer; - (void)setCurrentTime:(double)a0 timeSnapOption:(unsigned long long)a1; - (void)setCurrentTime:(double)a0 timeSnapOption:(unsigned long long)a1 forceUpdate:(BOOL)a2; - (void)setPlayerItem:(id)a0 startTime:(double)a1; - (void)tearDownTVOutWindow; - (BOOL)videoOutActive; - (void)willResignAsActiveController; @end