CNLivePlayer.h
3.52 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
//
// 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 "KSYMediaPlayback.h"
#import "KSYQosInfo.h"
#import "KSYMoviePlayerDefines.h"
#import "KSYReachability.h"
//播放器管理类
#import "CNLivePlayerManager.h"
NS_ASSUME_NONNULL_BEGIN
typedef NS_ENUM(NSUInteger, CNLivePlayerType) {
CNLivePlayerVod, //点播
CNLivePlayerLive //直播
};
//成功回调
typedef void(^AuthSuccessBlock)(void);
//失败回调
typedef void(^AuthFailedBlock)(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 authFailed:(AuthFailedBlock)authFailedBlock;
/* 初始化直播播放器(* 以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 authFailed:(AuthFailedBlock)authFailedBlock getAnchorStatusResult:(void(^)(BOOL result))result;
/* 初始化音频播放器 初始化成功后才能对播放器进行设置(如:自动播放、是否开启硬件解码等)和调用准备播放视频方法(prepareToPlay)
*
* contentId 音频Id
* authSuccess 初始化成功block
* authFailed 初始化失败block 回调一个errorInfo的字典
*
*/
- (instancetype)initAudioPlayerWithAudioId:(NSString *)audioId authSuccess:(AuthSuccessBlock)authSuccessBlock authFailed:(AuthFailedBlock)authFailedBlock;
/**
@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;
@end
NS_ASSUME_NONNULL_END