ZQPlayer.h 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. //
  2. // ZQPlayer.h
  3. // ZQPlayer
  4. //
  5. // Created by wang on 2018/3/30.
  6. // Copyright © 2018年 qigge. All rights reserved.
  7. //
  8. #import <Foundation/Foundation.h>
  9. #import <AVFoundation/AVFoundation.h>
  10. #import <UIKit/UIKit.h>
  11. typedef NS_ENUM(NSUInteger, ZQPlayerState) {
  12. ZQPlayerStateReadyToPlay, // 播放器准备完毕
  13. ZQPlayerStatePlaying, // 正在播放
  14. ZQPlayerStatePause, // 暂停
  15. ZQPlayerStateStop, // 播放完毕
  16. ZQPlayerStateBufferEmpty, // 缓冲中
  17. ZQPlayerStateKeepUp // 缓冲完成
  18. };
  19. @class ZQPlayer;
  20. @protocol ZQPlayerDelegate <NSObject>
  21. @optional
  22. /**
  23. 播放器状态变化
  24. @param player 播放器
  25. @param state 状态
  26. */
  27. - (void)ZQPlayerStateChange:(ZQPlayer *)player state:(ZQPlayerState)state;
  28. /**
  29. 视频源开始加载后调用 ,返回视频的长度
  30. @param player 播放器
  31. @param time 长度(秒)
  32. */
  33. - (void)ZQPlayerTotalTime:(ZQPlayer *)player totalTime:(CGFloat)time;
  34. /**
  35. 视频源加载时调用 ,返回视频的缓冲长度
  36. @param player 播放器
  37. @param time 长度(秒)
  38. */
  39. - (void)ZQPlayerLoadTime:(ZQPlayer *)player loadTime:(CGFloat)time;
  40. /**
  41. 播放时调用,返回当前时间
  42. @param player 播放器
  43. @param time 播放到当前的时间(秒)
  44. */
  45. - (void)ZQPlayerCurrentTime:(ZQPlayer *)player currentTime:(CGFloat)time;
  46. @end
  47. @interface ZQPlayer : NSObject
  48. /** 使用播放源进行初始化 */
  49. - (instancetype)initWithUrl:(NSString *)url;
  50. /** 下一首 */
  51. - (void)nextWithUrl:(NSString *)url;
  52. /** 播放 */
  53. - (void)play;
  54. /** 暂停 */
  55. - (void)pause;
  56. // 是否正在播放
  57. @property (nonatomic, assign, readonly) BOOL isPlaying;
  58. // 是否在缓冲
  59. @property (nonatomic, assign, readonly) BOOL isBuffering;
  60. /** 视频音频长度 */
  61. @property (nonatomic, assign) CGFloat timeInterval;
  62. /** 代理 */
  63. @property (nonatomic, weak) id<ZQPlayerDelegate> delegate;
  64. // 播放器
  65. @property (nonatomic, strong) AVPlayer *player;
  66. @property (nonatomic, strong) AVPlayerItem *playerItme;
  67. @property (nonatomic, strong) AVPlayerLayer *playerLayer;
  68. @end