/
ArLivePlayer.java
214 lines (165 loc) · 7.11 KB
/
ArLivePlayer.java
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
205
206
207
208
209
210
211
212
213
214
package io.anyrtc.live;
import android.view.SurfaceView;
import android.view.TextureView;
import org.webrtc.SurfaceViewRenderer;
import org.webrtc.TextureViewRenderer;
public abstract class ArLivePlayer {
/**
* 设置播放器回调。
*
* 通过设置回调,可以监听 ArLivePlayer 播放器的一些回调事件, 包括播放器状态、播放音量回调、音视频首帧回调、统计数据、警告和错误信息等。
* @param observer 播放器的回调目标对象,更多信息请查看{@link ArLivePlayerObserver}
*/
public abstract void setObserver(ArLivePlayerObserver observer);
/**
* 设置播放器的视频渲染 View。 该控件负责显示视频内容。
* @param view 播放器渲染 View
* @return 返回值 {@link ArLiveCode}
* <ul><li>ARLIVE_OK:成功</li></ul>
*/
public abstract int setRenderView(TextureViewRenderer view);
/**
* 设置播放器的视频渲染 View。 该控件负责显示视频内容。
* @param view 播放器渲染 View
* @return 返回值 {@link ArLiveCode}
* <ul><li>ARLIVE_OK:成功</li></ul>
*/
public abstract int setRenderView(SurfaceViewRenderer view);
/**
* 设置播放器画面的旋转角度。
* @param rotation 旋转角度 {@link ArLiveDef.ArLiveRotation}
* <ul>
* <li>ArLiveRotation0【默认值】: 0度, 不旋转</li>
* <li>ArLiveRotation90: 顺时针旋转90度 </li>
* <li>ArLiveRotation180: 顺时针旋转180度</li>
* <li>ArLiveRotation270: 顺时针旋转270度 </li>
* </ul>
* @return 返回值 {@link ArLiveCode}
* <ul><li>ARLIVE_OK:成功</li></ul>
*/
public abstract int setRenderRotation(ArLiveDef.ArLiveRotation rotation);
/**
* 设置画面的填充模式。
* @param var1
* @return
*/
public abstract int setRenderFillMode(ArLiveDef.ArLiveFillMode var1);
/**
* 开始播放音视频流。
* @param url 音视频流的播放地址,支持 RTMP, HTTP-FLV, WEBRTC等。
* @return 返回值 {@link ArLiveCode}
* <ul>
* <li>ARLIVE_OK: 操作成功,开始连接并播放</li>
* <li>ARLIVE_ERROR_INVALID_PARAMETER:操作失败,url 不合法</li>
* <li>ARLIVE_ERROR_REFUSED: RTC 不支持同一设备上同时推拉同一个 StreamId</li>
* </ul>
*/
public abstract int startPlay(String url);
/**
* 停止播放音视频流。
* @return 返回值 {@link ArLiveCode}
* <ul><li>ARLIVE_OK:成功</li></ul>
*/
public abstract int stopPlay();
/**
* 播放器是否正在播放中。
* @return 是否正在播放
* <ul>
* <li>1: 正在播放中</li>
* <li>0: 已经停止播放</li>
* </ul>
*/
public abstract int isPlaying();
/**
* 暂停播放器的音频流
* @return 返回值 {@link ArLiveCode}
* <ul><li>ARLIVE_OK:成功</li></ul>
*/
public abstract int pauseAudio();
/**
* 恢复播放器的音频流。
* @return 返回值 {@link ArLiveCode}
* <ul><li>ARLIVE_OK:成功</li></ul>
*/
public abstract int resumeAudio();
/**
* 暂停播放器的视频流。
* @return 返回值 {@link ArLiveCode}
* <ul><li>ARLIVE_OK:成功</li></ul>
*/
public abstract int pauseVideo();
/**
* 恢复播放器的视频流。
* @return 返回值 {@link ArLiveCode}
* <ul><li>ARLIVE_OK:成功</li></ul>
*/
public abstract int resumeVideo();
/**
* 设置播放器音量。
* @param volume 音量大小,取值范围0 - 100。【默认值】: 100
* @return 返回值 {@link ArLiveCode}
* <ul><li>ARLIVE_OK:成功</li></ul>
*/
public abstract int setPlayoutVolume(int volume);
/**
* 设置播放器缓存自动调整的最小和最大时间 ( 单位:秒 )。
* @param minTime 缓存自动调整的最小时间,取值需要大于0。【默认值】:1
* @param maxTime 缓存自动调整的最大时间,取值需要大于0。【默认值】:5
* @return 返回值 {@link ArLiveCode}
* <ul>
* <li>ARLIVE_OK: 成功</li>
* <li>ARLIVE_ERROR_INVALID_PARAMETER: 操作失败,minTime 和 maxTime 需要大于0</li>
* <li>ARLIVE_ERROR_REFUSED: 播放器处于播放状态,不支持修改缓存策略</li>
* </ul>
*/
public abstract int setCacheParams(float minTime, float maxTime);
/**
* 启用播放音量大小提示。</br>
* 开启后可以在 {@link ArLivePlayerObserver#onPlayoutVolumeUpdate(ArLivePlayer, int)}回调中获取到 SDK 对音量大小值的评估。
* @param intervalMs 决定了 onPlayoutVolumeUpdate 回调的触发间隔,单位为ms,最小间隔为100ms,如果小于等于0则会关闭回调,建议设置为300ms;【默认值】:0,不开启
* @return 返回值 {@link ArLiveCode}
* <ul><li>ARLIVE_OK:成功</li></ul>
*/
public abstract int enableVolumeEvaluation(int intervalMs);
/**
* 截取播放过程中的视频画面。
* @return 返回值 {@link ArLiveCode}
* <ul>
* <li>ARLIVE_OK: 成功</li>
* <li>ARLIVE_ERROR_REFUSED:播放器处于停止状态,不允许调用截图操作</li>
* </ul>
*/
public abstract int snapshot();
/**
* 设置视频自定义渲染回调。</br>
* 通过该方法,可以获取解码后的每一帧视频画面,进行自定义渲染处理,添加自定义显示效果。
* @param enable 是否开启自定义渲染。【默认值】:false
* @param pixelFormat 自定义渲染回调的视频像素格式 {@link io.anyrtc.live.ArLiveDef.ArLivePixelFormat}
* @param bufferType 自定义渲染回调的视频像素格式 {@link io.anyrtc.live.ArLiveDef.ArLiveBufferType}
* @return 返回值 {@link ArLiveCode}
* <ul>
* <li>ARLIVE_OK: 成功</li>
* <li>ARLIVE_ERROR_NOT_SUPPORTED:像素格式或者数据格式不支持</li>
* </ul>
*/
public abstract int enableCustomRendering(boolean enable, ArLiveDef.ArLivePixelFormat pixelFormat, ArLiveDef.ArLiveBufferType bufferType);
/**
* 开启接收 SEI 消息
* @param enable true: 开启接收 SEI 消息; false: 关闭接收 SEI 消息。【默认值】: false
* @param payloadType 指定接收 SEI 消息的 payloadType,支持 5、242,请与发送端的 payloadType 保持一致。
* @return 返回值 {@link ArLiveCode}
* <ul><li>ARLIVE_OK:成功</li></ul>
*/
public abstract int enableReceiveSeiMessage(boolean enable, int payloadType);
/**
* 设置播放模式。
*
* @param mode 播放模式 {@link ArLiveDef.ArLivePlayMode}。
* - ArLivePlayModeLive 【默认值】: 直播模式 - 暂停的过程中,数据会丢失,保证实时性
* - ArLivePlayModeVod: 点播模式 - 暂停的过程中,数据不会丢失,恢复后会继续播放
* @return 返回值 {@link ArLiveCode}
* - ArLIVE_OK: 成功
*/
public abstract int setPlayMode(ArLiveDef.ArLivePlayMode mode);
// public abstract void showDebugView(boolean var1);
}