From 3e8437ae559487362fae3525beb79c534c213a51 Mon Sep 17 00:00:00 2001
From: 单军华
Date: Thu, 12 Jul 2018 13:44:34 +0800
Subject: [PATCH] bug修复和功能优化

---
 screendisplay/Pods/ZFPlayer/ZFPlayer/Classes/Core/ZFPlayerController.h |  271 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 271 insertions(+), 0 deletions(-)

diff --git a/screendisplay/Pods/ZFPlayer/ZFPlayer/Classes/Core/ZFPlayerController.h b/screendisplay/Pods/ZFPlayer/ZFPlayer/Classes/Core/ZFPlayerController.h
new file mode 100644
index 0000000..1be1ec3
--- /dev/null
+++ b/screendisplay/Pods/ZFPlayer/ZFPlayer/Classes/Core/ZFPlayerController.h
@@ -0,0 +1,271 @@
+//
+//  ZFPlayer.h
+//  ZFPlayer
+//
+// Copyright (c) 2016��� ��������� ( http://github.com/renzifeng )
+//
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+//
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+
+#import <Foundation/Foundation.h>
+#import <UIKit/UIKit.h>
+#import "ZFPlayerMediaPlayback.h"
+#import "ZFOrientationObserver.h"
+#import "ZFPlayerMediaControl.h"
+#import "ZFPlayerGestureControl.h"
+#import "ZFFloatView.h"
+
+NS_ASSUME_NONNULL_BEGIN
+
+@interface ZFPlayerController : NSObject
+
+/// The video contrainerView in normal model.
+@property (nonatomic, readonly) UIView *containerView;
+
+/// The currentPlayerManager must conform `ZFPlayerMediaPlayback` protocol.
+@property (nonatomic, readonly) id<ZFPlayerMediaPlayback> currentPlayerManager;
+
+/// The custom controlView must conform `ZFPlayerMediaControl` protocol.
+@property (nonatomic, strong) UIView<ZFPlayerMediaControl> *controlView;
+
+/*!
+ @method            playerWithPlayerManager:
+ @abstract          Create an ZFPlayerController that plays a single audiovisual item.
+ @param             playerManager must conform `ZFPlayerMediaPlayback` protocol.
+ @param             containerView to see the video frames must set the contrainerView.
+ @result            An instance of ZFPlayerController.
+ */
++ (instancetype)playerWithPlayerManager:(id<ZFPlayerMediaPlayback>)playerManager containerView:(UIView *)containerView;
+
+/*!
+ @method            playerWithPlayerManager:
+ @abstract          Create an ZFPlayerController that plays a single audiovisual item.
+ @param             playerManager must conform `ZFPlayerMediaPlayback` protocol.
+ @param             containerView to see the video frames must set the contrainerView.
+ @result            An instance of ZFPlayerController.
+ */
+- (instancetype)initWithPlayerManager:(id<ZFPlayerMediaPlayback>)playerManager containerView:(UIView *)containerView;
+
+/*!
+ @method            playerWithScrollView:playerManager:
+ @abstract          Create an ZFPlayerController that plays a single audiovisual item. Use in `tableView` or `collectionView`.
+ @param             scrollView is `tableView` or `collectionView`.
+ @param             playerManager must conform `ZFPlayerMediaPlayback` protocol.
+ @param             containerViewTag to see the video at scrollView must set the contrainerViewTag.
+ @result            An instance of ZFPlayerController.
+ */
++ (instancetype)playerWithScrollView:(UIScrollView *)scrollView playerManager:(id<ZFPlayerMediaPlayback>)playerManager containerViewTag:(NSInteger)containerViewTag;
+
+/*!
+ @method            playerWithScrollView:playerManager:
+ @abstract          Create an ZFPlayerController that plays a single audiovisual item. Use in `tableView` or `collectionView`.
+ @param             scrollView is `tableView` or `collectionView`.
+ @param             playerManager must conform `ZFPlayerMediaPlayback` protocol.
+ @param             containerViewTag to see the video at scrollView must set the contrainerViewTag.
+ @result            An instance of ZFPlayerController.
+ */
+- (instancetype)initWithScrollView:(UIScrollView *)scrollView playerManager:(id<ZFPlayerMediaPlayback>)playerManager containerViewTag:(NSInteger)containerViewTag;
+
+@end
+
+@interface ZFPlayerController (ZFPlayerTimeControl)
+
+/// The player current play time.
+@property (nonatomic, readonly) NSTimeInterval currentTime;
+
+/// The player total time.
+@property (nonatomic, readonly) NSTimeInterval totalTime;
+
+/// The player buffer time.
+@property (nonatomic, readonly) NSTimeInterval bufferTime;
+
+/// The player progress, 0...1
+@property (nonatomic, readonly) float progress;
+
+/// The player bufferProgress, 0...1
+@property (nonatomic, readonly) float bufferProgress;
+
+/// Use this method to seek to a specified time for the current player and to be notified when the seek operation is complete.
+- (void)seekToTime:(NSTimeInterval)time completionHandler:(void (^ __nullable)(BOOL finished))completionHandler;
+
+@end
+
+@interface ZFPlayerController (ZFPlayerPlaybackControl)
+
+/// 0...1.0
+/// Only affects audio volume for the device instance and not for the player.
+/// You can change device volume or player volume as needed,change the player volume you can folllow the `ZFPlayerMediaPlayback` protocol.
+@property (nonatomic) float volume;
+
+/// Only affects audio muting for the device instance and not for the player.
+/// You can change device mute or player mute as needed,change the player mute you can folllow the `ZFPlayerMediaPlayback` protocol.
+@property (nonatomic, getter=isMuted) BOOL muted;
+
+// 0...1.0, where 1.0 is maximum brightness. Only supported by main screen.
+@property (nonatomic) float brightness;
+
+/// WWAN network auto play, default is NO.
+@property (nonatomic, getter=isWWANAutoPlay) BOOL WWANAutoPlay;
+
+/// The play asset URL.
+@property (nonatomic) NSURL *assetURL;
+
+/// if tableView or collectionView has only one section , use sectionAssetURLs.
+/// if normal model set this can use `playTheNext` `playThePrevious` `playTheIndex:`.
+@property (nonatomic, copy, nullable) NSArray <NSURL *>*assetURLs;
+
+/// The currently playing index,limited to one-dimensional arrays.
+@property (nonatomic) NSInteger currentPlayIndex;
+
+/// is the last asset URL in `assetURLs`.
+@property (nonatomic, readonly) BOOL isLastAssetURL;
+
+/// is the first asset URL in `assetURLs`.
+@property (nonatomic, readonly) BOOL isFirstAssetURL;
+
+/// If Yes, player will be called pause method When Received `UIApplicationWillResignActiveNotification` notification.
+/// default is YES.
+@property (nonatomic) BOOL pauseWhenAppResignActive;
+
+/// When the player is play end.
+@property (nonatomic, copy, nullable) void(^playerDidToEnd)(id asset);
+
+
+/// Play the next url ,while the `assetURLs` is not NULL.
+- (void)playTheNext;
+
+/// Play the previous url ,while the `assetURLs` is not NULL.
+- (void)playThePrevious;
+
+/// Play the index of url ,while the `assetURLs` is not NULL.
+- (void)playTheIndex:(NSInteger)index;
+
+/// Player stop and playerView remove from super view,remove other notification.
+- (void)stop;
+
+/*!
+ @method           replaceCurrentPlayerManager:
+ @abstract         Replaces the player's current playeranager with the specified player item.
+ @param            manager must conform `ZFPlayerMediaPlayback` protocol
+ @discussion       The playerManager that will become the player's current playeranager.
+ */
+- (void)replaceCurrentPlayerManager:(id<ZFPlayerMediaPlayback>)manager;
+
+@end
+
+@interface ZFPlayerController (ZFPlayerOrientationRotation)
+
+@property (nonatomic, readonly) ZFOrientationObserver *orientationObserver;
+
+/// Whether automatic screen rotation is supported.
+/// default is YES.
+@property (nonatomic) BOOL shouldAutorotate;
+
+/// When ZFFullScreenMode is ZFFullScreenModeLandscape the orientation is LandscapeLeft or LandscapeRight, this value is YES.
+/// When ZFFullScreenMode is ZFFullScreenModePortrait, while the player fullSceen this value is YES.
+@property (nonatomic, readonly) BOOL isFullScreen;
+
+/// Lock the screen orientation.
+@property (nonatomic, getter=isLockedScreen) BOOL lockedScreen;
+
+/// The statusbar hidden.
+@property (nonatomic, getter=isStatusBarHidden) BOOL statusBarHidden;
+
+/// The current orientation of the player.
+/// Default is UIInterfaceOrientationPortrait.
+@property (nonatomic, readonly) UIInterfaceOrientation currentOrientation;
+
+/// The block invoked When player will rotate.
+@property (nonatomic, copy, nullable) void(^orientationWillChange)(ZFPlayerController *player, BOOL isFullScreen);
+
+/// The block invoked when player rotated.
+@property (nonatomic, copy, nullable) void(^orientationDidChanged)(ZFPlayerController *player, BOOL isFullScreen);
+
+/// Add the device orientation observer.
+- (void)addDeviceOrientationObserver;
+
+/// Remove the device orientation observer.
+- (void)removeDeviceOrientationObserver;
+
+/// Enter the fullScreen while the ZFFullScreenMode is ZFFullScreenModeLandscape.
+- (void)enterLandscapeFullScreen:(UIInterfaceOrientation)orientation animated:(BOOL)animated;
+
+/// Enter the fullScreen while the ZFFullScreenMode is ZFFullScreenModePortrait.
+- (void)enterPortraitFullScreen:(BOOL)fullScreen animated:(BOOL)animated;
+
+// FullScreen mode is determined by ZFFullScreenMode
+- (void)enterFullScreen:(BOOL)fullScreen animated:(BOOL)animated;
+
+@end
+
+@interface ZFPlayerController (ZFPlayerViewGesture)
+
+/// An instance of ZFPlayerGestureControl.
+@property (nonatomic, readonly) ZFPlayerGestureControl *gestureControl;
+
+/// The gesture types that the player not support.
+@property (nonatomic, assign) ZFPlayerDisableGestureTypes disableGestureTypes;
+
+@end
+
+@interface ZFPlayerController (ZFPlayerScrollView)
+
+/// The scroll view is `tableView` or `collectionView`.
+@property (nonatomic, readonly, nullable) UIScrollView *scrollView;
+
+/// The scrollView player should auto player, default is YES.
+@property (nonatomic) BOOL shouldAutoPlay;
+
+/// The list plays the container view of the player when the window is small after the player has slid off the screen.
+@property (nonatomic, readonly, nullable) ZFFloatView *smallFloatView;
+
+/// The indexPath is playing.
+@property (nonatomic, readonly, nullable) NSIndexPath *playingIndexPath;
+
+/// The view tag that the player display in scrollView.
+@property (nonatomic, readonly) NSInteger containerViewTag;
+
+/// Does the currently playing cell stop playing when the cell has slid off the screen���defalut is YES.
+@property (nonatomic) BOOL stopWhileNotVisible;
+
+/// Whether the small window is displayed.
+@property (nonatomic, readonly) BOOL isSmallFloatViewShow;
+
+/// if tableView or collectionView has more section, use sectionAssetURLs.
+@property (nonatomic, copy, nullable) NSArray <NSArray <NSURL *>*>*sectionAssetURLs;
+
+/// stop the current playing video on cell.
+- (void)stopCurrentPlayingCell;
+
+/// Play the indexPath of url, while the `assetURLs` or `sectionAssetURLs` is not NULL.
+/// `scrollToTop` scroll the current cell to top with animations.
+- (void)playTheIndexPath:(NSIndexPath *)indexPath scrollToTop:(BOOL)scrollToTop;
+
+/// Play the indexPath with assetURL.
+/// `assetURL` is the player URL.
+/// `scrollToTop` scroll the current cell to top with animations.
+- (void)playTheIndexPath:(NSIndexPath *)indexPath assetURL:(NSURL *)assetURL scrollToTop:(BOOL)scrollToTop;
+
+/// Play the indexPath of url ,while the `assetURLs` or `sectionAssetURLs` is not NULL.
+/// `scrollToTop` scroll the current cell to top with animations.
+/// Scroll completion callback.
+- (void)playTheIndexPath:(NSIndexPath *)indexPath scrollToTop:(BOOL)scrollToTop completionHandler:(void (^ __nullable)(void))completionHandler;
+
+@end
+
+NS_ASSUME_NONNULL_END

--
Gitblit v1.8.0