CNLivePlayer.h
4.08 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
//
// CNLivePlayer.h
// CNLivePlayer_Example
//
// Created by CNLive-zxw on 2019/7/26.
// Copyright © 2019 153993236@qq.com. All rights reserved.
//
#import <Foundation/Foundation.h>
#import <libksygpulive/KSYMoviePlayerController.h>
#import "KSYMoviePlayerDefines.h"
// 播放器管理类
#import "CNLivePlayerManager.h"
//缓存url
#import "CNLivePlayerCache.h"
NS_ASSUME_NONNULL_BEGIN
typedef NS_ENUM(NSUInteger, CNLivePlayerType) {
CNLivePlayerVod, //点播
CNLivePlayerLive, //直播
CNLivePlayerAudio //音频
};
// 成功回调
typedef void(^AuthSuccessBlock)(void);
// 失败回调
typedef void(^AuthFailureBlock)(NSDictionary *errorInfo);
@interface CNLivePlayer : NSObject
/*
* 播放器类型
*/
@property (nonatomic, assign) CNLivePlayerType type;
/*
* 播放器
*/
@property (nonatomic, strong) KSYMoviePlayerController *player;
/* 初始化点播播放器 初始化成功后才能对播放器进行设置(如:自动播放、是否开启硬件解码等)和调用准备播放视频方法(prepareToPlay)
*
* videoId 视频Id
* authSuccess 初始化成功block
* authFailed 初始化失败block 回调一个errorInfo的字典
*
*/
- (instancetype)initVodPlayerWithVideoId:(NSString *)videoId authSuccess:(AuthSuccessBlock)authSuccessBlock authFailure:(AuthFailureBlock)authFailureBlock;
/* 初始化直播播放器(* 以channelId播放) 初始化成功后才能对播放器进行设置(如:自动播放、是否开启硬件解码等)和调用准备播放视频方法(prepareToPlay)
*
* channelId 直播视频Id (注* 若agree为YES时,必传,用于获取主播状态; 若agree为NO,可不传)
* activityId 活动Id
* agree 是否允许获取主播状态 YES:获取 NO:不获取
* authSuccess 初始化成功block
* authFailed 初始化失败block 回调一个errorInfo的字典
*
* result 获取主播状态 YES:获取状态成功
* NO:获取失败,不影响视频播放,但是获取不到主播离开、回来、直播结束等通知。可通过
* - (void)retryToGetAnchorStatusResult:(void(^)(BOOL result))result;方法重新获取
*/
- (instancetype)initLivePlayerWithChannelId:(NSString *)channelId activityId:(NSString *)activityId anchorStatus:(BOOL)agree authSuccess:(AuthSuccessBlock)authSuccessBlock authFailure:(AuthFailureBlock)authFailureBlock getAnchorStatusResult:(void(^)(BOOL result))result;
/* 初始化音频播放器 初始化成功后才能对播放器进行设置(如:自动播放、是否开启硬件解码等)和调用准备播放视频方法(prepareToPlay)
*
* contentId 音频Id
* authSuccess 初始化成功block
* authFailed 初始化失败block 回调一个errorInfo的字典
*
*/
- (instancetype)initAudioPlayerWithAudioId:(NSString *)audioId authSuccess:(AuthSuccessBlock)authSuccessBlock authFailure:(AuthFailureBlock)authFailureBlock;
/* 给播放器设置内容id 设置成功后才能播放(如:自动播放、是否开启硬件解码等)和调用准备播放视频方法(prepareToPlay)
*
* contentId 内容Id
* type 内容类型
*
*/
- (void)setPlayerWithContentId:(NSString *)contentId type:(CNLivePlayerType)type authSuccess:(AuthSuccessBlock)authSuccessBlock authFailure:(AuthFailureBlock)authFailureBlock;
- (void)destroyPlayer;
/**
@abstract 包含视频播放内容的VIEW(只读)。
@discussion view的使用逻辑:
* 可以通过frame设置view大大小
* 使用[scalingMode]([KSYMoviePlayerController scalingMode]) 可以更改视频内容在VIEW中的显示情况
@see scalingMode
*/
// The view in which the media and playback controls are displayed.
@property (nonatomic, strong, readonly) UIView *view;
/*
* 准备视频播放
* MPMediaPlaybackIsPreparedToPlayDidChangeNotification 播放器完成对视频文件的初始化时发送通知
*/
- (void)prepareToPlay;
/*
* 视频播放
*/
- (void)play;
/*
* 视频暂停
*/
- (void)pause;
/*
* 视频停止
*/
- (void)stop;
@end
NS_ASSUME_NONNULL_END