TXVodPlayer.h
4.15 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
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
//
// TXVodPlayer.h
// TXLiteAVSDK
//
// Created by annidyfeng on 2017/9/12.
// Copyright © 2017年 Tencent. All rights reserved.
//
#import <Foundation/Foundation.h>
#import <UIKit/UIKit.h>
#import "TXLivePlayListener.h"
#import "TXVodPlayListener.h"
#import "TXVodPlayConfig.h"
#import "TXVideoCustomProcessDelegate.h"
#import "TXBitrateItem.h"
#import "TXPlayerAuthParams.h"
/// 点播播放器
@interface TXVodPlayer : NSObject
/**
* 事件回调
* @warning 建议使用vodDelegate
*/
@property(nonatomic, weak) id <TXLivePlayListener> delegate __attribute__((deprecated("use vodDelegate instead")));
/// 事件回调
@property(nonatomic, weak) id <TXVodPlayListener> vodDelegate;
/**
* 视频渲染回调。(仅硬解支持)
*/
@property(nonatomic, weak) id <TXVideoCustomProcessDelegate> videoProcessDelegate;
/**
* 是否开启硬件加速
* 播放前设置有效
*/
@property(nonatomic, assign) BOOL enableHWAcceleration;
/**
* 点播配置
* @see TXVodPlayConfig
*/
@property(nonatomic, copy) TXVodPlayConfig *config;
/// startPlay后是否立即播放,默认YES
@property BOOL isAutoPlay;
/**
* 加密HLS的token。设置此值后,播放器自动在URL中的文件名之前增加voddrm.token.<Token>
*/
@property (nonatomic, strong) NSString *token;
/* setupContainView 创建Video渲染View,该控件承载着视频内容的展示。
* @param view 父view
* @param idx Widget在父view上的层级位置
*/
- (void)setupVideoWidget:(UIView *)view insertIndex:(unsigned int)idx;
/**
* 移除Video渲染View
*/
- (void)removeVideoWidget;
/**
* 设置播放开始时间
* 在startPlay前设置,修改开始播放的起始位置
*/
- (void)setStartTime:(CGFloat)startTime;
/**
* startPlay 启动从指定URL播放
*
* @param url 完整的URL(如果播放的是本地视频文件,这里传本地视频文件的完整路径)
* @return 0 = OK
*/
- (int)startPlay:(NSString *)url;
/**
* 通过fileid方式播放.
* @discussion fileid的获取方式可参考 https://cloud.tencent.com/document/product/454/12148#step-3.3A-.E5.90.AF.E5.8A.A8.E6.92.AD.E6.94.BE
* @param params 认证参数
* @return 0 = OK
*/
- (int)startPlayWithParams:(TXPlayerAuthParams *)params;
/**
* 停止播放音视频流
* @return 0 = OK
*/
- (int)stopPlay;
/**
* 是否正在播放
*/
- (bool)isPlaying;
/**
* 暂停播放
*/
- (void)pause;
/**
* 继续播放
*/
- (void)resume;
/**
* 播放跳转到音视频流某个时间
* @param time 流时间,单位为秒
* @return 0 = OK
*/
- (int)seek:(float)time;
/**
* 获取当前播放时间
*/
- (float)currentPlaybackTime;
/**
* 获取视频总时长
*/
- (float)duration;
/**
* 可播放时长
*/
- (float)playableDuration;
/**
* 视频宽度
*/
- (int)width;
/**
* 视频高度
*/
- (int)height;
/**
* 设置画面的方向
* @param rotation 方向
* @see TX_Enum_Type_HomeOrientation
*/
- (void)setRenderRotation:(TX_Enum_Type_HomeOrientation)rotation;
/**
* 设置画面的裁剪模式
* @param renderMode 裁剪
* @see TX_Enum_Type_RenderMode
*/
- (void)setRenderMode:(TX_Enum_Type_RenderMode)renderMode;
/**
* 设置静音
*/
- (void)setMute:(BOOL)bEnable;
/*
* 截屏
* @param snapshotCompletionBlock 通过回调返回当前图像
*/
- (void)snapshot:(void (^)(UIImage *))snapshotCompletionBlock;
/**
* 设置播放速率
* @param rate 正常速度为1.0;小于为慢速;大于为快速。最大建议不超过2.0
*/
- (void)setRate:(float)rate;
/**
* 当播放地址为master playlist,返回支持的码率(清晰度)
*
* @warning 在收到EVT_VIDEO_PLAY_BEGIN事件后才能正确返回结果
* @return 无多码率返回空数组
*/
- (NSArray<TXBitrateItem *> *)supportedBitrates;
/**
* 获取当前正在播放的码率索引
*/
- (NSInteger)bitrateIndex;
/**
* 设置当前正在播放的码率索引,无缝切换清晰度
* 清晰度切换可能需要等待一小段时间。腾讯云支持多码率HLS分片对齐,保证最佳体验。
*
* @param index 码率索引
*/
- (void)setBitrateIndex:(NSInteger)index;
/**
* 设置画面镜像
*/
- (void)setMirror:(BOOL)isMirror;
/**
* 是否循环播放
*/
@property (nonatomic, assign) BOOL loop;
@end