ZFPlayerControlView.h 5.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149
  1. //
  2. // ZFPlayerControlView.h
  3. // ZFPlayer
  4. //
  5. // Copyright (c) 2016年 任子丰 ( http://github.com/renzifeng )
  6. //
  7. // Permission is hereby granted, free of charge, to any person obtaining a copy
  8. // of this software and associated documentation files (the "Software"), to deal
  9. // in the Software without restriction, including without limitation the rights
  10. // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
  11. // copies of the Software, and to permit persons to whom the Software is
  12. // furnished to do so, subject to the following conditions:
  13. //
  14. // The above copyright notice and this permission notice shall be included in
  15. // all copies or substantial portions of the Software.
  16. //
  17. // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
  18. // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
  19. // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
  20. // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
  21. // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
  22. // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
  23. // THE SOFTWARE.
  24. #import <UIKit/UIKit.h>
  25. #import "ZFPortraitControlView.h"
  26. #import "ZFLandScapeControlView.h"
  27. #import "ZFSpeedLoadingView.h"
  28. #import "ZFSmallFloatControlView.h"
  29. #if __has_include(<ZFPlayer/ZFPlayerMediaControl.h>)
  30. #import <ZFPlayer/ZFPlayerMediaControl.h>
  31. #else
  32. #import "ZFPlayerMediaControl.h"
  33. #endif
  34. @interface ZFPlayerControlView : UIView <ZFPlayerMediaControl>
  35. /// 竖屏控制层的View
  36. @property (nonatomic, strong, readonly) ZFPortraitControlView *portraitControlView;
  37. /// 横屏控制层的View
  38. @property (nonatomic, strong, readonly) ZFLandScapeControlView *landScapeControlView;
  39. /// 加载loading
  40. @property (nonatomic, strong, readonly) ZFSpeedLoadingView *activity;
  41. /// 快进快退View
  42. @property (nonatomic, strong, readonly) UIView *fastView;
  43. /// 快进快退进度progress
  44. @property (nonatomic, strong, readonly) ZFSliderView *fastProgressView;
  45. /// 快进快退时间
  46. @property (nonatomic, strong, readonly) UILabel *fastTimeLabel;
  47. /// 快进快退ImageView
  48. @property (nonatomic, strong, readonly) UIImageView *fastImageView;
  49. /// 加载失败按钮
  50. @property (nonatomic, strong, readonly) UIButton *failBtn;
  51. /// 底部播放进度
  52. @property (nonatomic, strong, readonly) ZFSliderView *bottomPgrogress;
  53. /// 封面图
  54. @property (nonatomic, strong, readonly) UIImageView *coverImageView;
  55. /// 高斯模糊的背景图
  56. @property (nonatomic, strong, readonly) UIImageView *bgImgView;
  57. /// 高斯模糊视图
  58. @property (nonatomic, strong, readonly) UIView *effectView;
  59. /// 小窗口控制层
  60. @property (nonatomic, strong, readonly) ZFSmallFloatControlView *floatControlView;
  61. /// 快进视图是否显示动画,默认NO.
  62. @property (nonatomic, assign) BOOL fastViewAnimated;
  63. /// 视频之外区域是否高斯模糊显示,默认YES.
  64. @property (nonatomic, assign) BOOL effectViewShow;
  65. /// 直接进入全屏模式,只支持全屏模式
  66. @property (nonatomic, assign) BOOL fullScreenOnly;
  67. /// 如果是暂停状态,seek完是否播放,默认YES
  68. @property (nonatomic, assign) BOOL seekToPlay;
  69. /// 返回按钮点击回调
  70. @property (nonatomic, copy) void(^backBtnClickCallback)(void);
  71. /// 控制层显示或者隐藏
  72. @property (nonatomic, readonly) BOOL controlViewAppeared;
  73. /// 控制层显示或者隐藏的回调
  74. @property (nonatomic, copy) void(^controlViewAppearedCallback)(BOOL appeared);
  75. /// 控制层自动隐藏的时间,默认2.5秒
  76. @property (nonatomic, assign) NSTimeInterval autoHiddenTimeInterval;
  77. /// 控制层显示、隐藏动画的时长,默认0.25秒
  78. @property (nonatomic, assign) NSTimeInterval autoFadeTimeInterval;
  79. /// 横向滑动控制播放进度时是否显示控制层,默认 YES.
  80. @property (nonatomic, assign) BOOL horizontalPanShowControlView;
  81. /// prepare时候是否显示控制层,默认 NO.
  82. @property (nonatomic, assign) BOOL prepareShowControlView;
  83. /// prepare时候是否显示loading,默认 NO.
  84. @property (nonatomic, assign) BOOL prepareShowLoading;
  85. /// 是否自定义禁止pan手势,默认 NO.
  86. @property (nonatomic, assign) BOOL customDisablePanMovingDirection;
  87. /**
  88. 设置标题、封面、全屏模式
  89. @param title 视频的标题
  90. @param coverUrl 视频的封面,占位图默认是灰色的
  91. @param fullScreenMode 全屏模式
  92. */
  93. - (void)showTitle:(NSString *)title coverURLString:(NSString *)coverUrl fullScreenMode:(ZFFullScreenMode)fullScreenMode;
  94. /**
  95. 设置标题、封面、默认占位图、全屏模式
  96. @param title 视频的标题
  97. @param coverUrl 视频的封面
  98. @param placeholder 指定封面的placeholder
  99. @param fullScreenMode 全屏模式
  100. */
  101. - (void)showTitle:(NSString *)title coverURLString:(NSString *)coverUrl placeholderImage:(UIImage *)placeholder fullScreenMode:(ZFFullScreenMode)fullScreenMode;
  102. /**
  103. 设置标题、UIImage封面、全屏模式
  104. @param title 视频的标题
  105. @param image 视频的封面UIImage
  106. @param fullScreenMode 全屏模式
  107. */
  108. - (void)showTitle:(NSString *)title coverImage:(UIImage *)image fullScreenMode:(ZFFullScreenMode)fullScreenMode;
  109. /**
  110. 重置控制层
  111. */
  112. - (void)resetControlView;
  113. @end