@class WebAVMediaSelectionOption, NSArray, NSString, AVValueTiming, AVPlayerController; @interface WebAVPlayerController : NSObject { struct WeakPtr<WebCore::PlaybackSessionModel, WTF::DefaultWeakPtrImpl> { struct RefPtr<WTF::DefaultWeakPtrImpl, WTF::RawPtrTraits<WTF::DefaultWeakPtrImpl>, WTF::DefaultRefDerefTraits<WTF::DefaultWeakPtrImpl>> { struct DefaultWeakPtrImpl *m_ptr; } m_impl; } _delegate; struct WeakPtr<WebCore::PlaybackSessionInterfaceAVKit, WTF::DefaultWeakPtrImpl> { struct RefPtr<WTF::DefaultWeakPtrImpl, WTF::RawPtrTraits<WTF::DefaultWeakPtrImpl>, WTF::DefaultRefDerefTraits<WTF::DefaultWeakPtrImpl>> { struct DefaultWeakPtrImpl *m_ptr; } m_impl; } _playbackSessionInterface; double _defaultPlaybackRate; double _rate; BOOL _liveStreamEventModePossible; BOOL _isScrubbing; BOOL _allowsPictureInPicture; BOOL _pictureInPictureInterrupted; BOOL _muted; double _seekToTime; WebAVMediaSelectionOption *_currentAudioMediaSelectionOption; WebAVMediaSelectionOption *_currentLegibleMediaSelectionOption; } @property (retain) AVPlayerController *playerControllerProxy; @property void *delegate; @property void *playbackSessionInterface; @property (readonly) BOOL canScanForward; @property BOOL canScanBackward; @property (readonly) BOOL canSeekToBeginning; @property (readonly) BOOL canSeekToEnd; @property (readonly) BOOL isScrubbing; @property (readonly) BOOL canSeekFrameBackward; @property (readonly) BOOL canSeekFrameForward; @property (readonly) BOOL hasContentChapters; @property (readonly) BOOL isSeeking; @property (readonly) double seekToTime; @property BOOL canPlay; @property (getter=isPlaying) BOOL playing; @property BOOL canPause; @property BOOL canTogglePlayback; @property double defaultPlaybackRate; @property double rate; @property BOOL canSeek; @property double contentDuration; @property struct CGSize { double width; double height; } contentDimensions; @property BOOL hasEnabledAudio; @property BOOL hasEnabledVideo; @property BOOL hasVideo; @property (readonly) double minTime; @property (readonly) double maxTime; @property double contentDurationWithinEndTimes; @property (retain) NSArray *loadedTimeRanges; @property long long status; @property (retain) AVValueTiming *timing; @property (retain) NSArray *seekableTimeRanges; @property (getter=isMuted) BOOL muted; @property double volume; @property (readonly) BOOL hasMediaSelectionOptions; @property (readonly) BOOL hasAudioMediaSelectionOptions; @property (retain) NSArray *audioMediaSelectionOptions; @property (retain) WebAVMediaSelectionOption *currentAudioMediaSelectionOption; @property (readonly) BOOL hasLegibleMediaSelectionOptions; @property (retain) NSArray *legibleMediaSelectionOptions; @property (retain) WebAVMediaSelectionOption *currentLegibleMediaSelectionOption; @property (readonly, getter=isPlayingOnExternalScreen) BOOL playingOnExternalScreen; @property (nonatomic, getter=isPlayingOnSecondScreen) BOOL playingOnSecondScreen; @property (getter=isExternalPlaybackActive) BOOL externalPlaybackActive; @property long long externalPlaybackType; @property (retain) NSString *externalPlaybackAirPlayDeviceLocalizedName; @property BOOL allowsExternalPlayback; @property (readonly, getter=isPictureInPicturePossible) BOOL pictureInPicturePossible; @property (getter=isPictureInPictureInterrupted) BOOL pictureInPictureInterrupted; @property double seekableTimeRangesLastModifiedTime; @property double liveUpdateInterval; @property (retain, nonatomic) AVValueTiming *minTiming; @property (retain, nonatomic) AVValueTiming *maxTiming; + (id)keyPathsForValuesAffectingHasLegibleMediaSelectionOptions; + (id)keyPathsForValuesAffectingCanScanForward; + (id)keyPathsForValuesAffectingCurrentTimeWithinEndTimes; + (id)keyPathsForValuesAffectingHasLiveStreamingContent; + (id)keyPathsForValuesAffectingHasSeekableLiveStreamingContent; + (id)keyPathsForValuesAffectingMinTime; + (id)keyPathsForValuesAffectingPlayingOnExternalScreen; + (id)keyPathsForValuesAffectingCanSeekToBeginning; + (id)keyPathsForValuesAffectingCanSeekToEnd; + (id)keyPathsForValuesAffectingMaxTime; + (id)keyPathsForValuesAffectingHasAudioMediaSelectionOptions; + (id)keyPathsForValuesAffectingPlaying; + (id)keyPathsForValuesAffectingHasMediaSelectionOptions; - (id)player; - (id)init; - (void)dealloc; - (void)seekByTimeInterval:(double)a0 toleranceBefore:(double)a1 toleranceAfter:(double)a2; - (id)forwardingTargetForSelector:(SEL)a0; - (void)beginScanningForward:(id)a0; - (void)toggleMuted:(id)a0; - (void)play:(id)a0; - (void)beginScrubbing:(id)a0; - (void)skipBackwardThirtySeconds:(id)a0; - (id).cxx_construct; - (void)seekToEnd:(id)a0; - (void)togglePlayback:(id)a0; - (BOOL)hasLiveStreamingContent; - (void)seekToBeginning:(id)a0; - (void)pause:(id)a0; - (double)currentTimeWithinEndTimes; - (void)setCurrentTimeWithinEndTimes:(double)a0; - (void)observeValueForKeyPath:(id)a0 ofObject:(id)a1 change:(id)a2 context:(void *)a3; - (void)endScrubbing:(id)a0; - (void).cxx_destruct; - (void)endScanningBackward:(id)a0; - (void)seekToTime:(double)a0; - (void)seekToTime:(double)a0 toleranceBefore:(double)a1 toleranceAfter:(double)a2; - (void)endScanningForward:(id)a0; - (void)togglePlaybackEvenWhenInBackground:(id)a0; - (BOOL)hasSeekableLiveStreamingContent; - (void)gotoEndOfSeekableRanges:(id)a0; - (void)seekChapterBackward:(id)a0; - (void)updateMinMaxTiming; - (void)beginScanningBackward:(id)a0; - (void)seekChapterForward:(id)a0; - (void)seekByTimeInterval:(double)a0; - (void)volumeChanged:(double)a0; - (void)setAllowsPictureInPicture:(BOOL)a0; - (void)setDefaultPlaybackRate:(double)a0 fromJavaScript:(BOOL)a1; - (void)setRate:(double)a0 fromJavaScript:(BOOL)a1; @end