AliVCSDK  4.5.1
阿里云音视频SDK,为视频开发者提供一站式接入服务
AlivcLivePlayerImpl.java
1 package com.alivc.live.player;
2 
3 import android.content.Context;
4 import android.widget.FrameLayout;
5 
9 import com.alivc.live.utils.AlivcLiveURLTools;
10 import com.alivc.live.utils.ReflectUtil;
11 
12 
21 @CalledByNative
22 public class AlivcLivePlayerImpl extends AlivcLivePlayer {
23  private static final String INTERACTIVE_PLAYER_IMPL_CLASS = "com.alivc.live.player.rtc.AlivcRTCLivePlayerImpl";
24 
25  private AlivcLivePlayer mImpl = null;
26 
33  public AlivcLivePlayerImpl(Context context, AlivcLiveMode mode) {
34  super(context, mode);
36  reflectInitPlayer(context, mode);
37  }
38 
39  private void reflectInitPlayer(Context context, AlivcLiveMode mode) {
40  Object[] values = {context, mode};
41  Class<?>[] params = {Context.class, AlivcLiveMode.class};
42  Object playerInstance = null;
43 
44  if (mode == AlivcLiveMode.AlivcLiveInteractiveMode) {
45  playerInstance = ReflectUtil.reflectInit(INTERACTIVE_PLAYER_IMPL_CLASS, values, params);
46  }
47 
48  if (playerInstance == null) {
49  throw new RuntimeException("init live player error! now not support mode: " + mode);
50  }
51 
52  mImpl = (AlivcLivePlayer) playerInstance;
53  }
54 
55  @Override
56  public int setupWithConfig(AlivcLivePlayConfig playConfig) {
57  if (mImpl == null) {
58  return -1;
59  }
60  return mImpl.setupWithConfig(playConfig);
61  }
62 
63  @Override
64  public void setPlayInfoListener(AlivcLivePlayInfoListener infoListener) {
65  if (mImpl == null) {
66  return;
67  }
68  mImpl.setPlayInfoListener(infoListener);
69  }
70 
71  @Override
72  public int setPlayView(FrameLayout frameLayout) {
73  if (mImpl == null) {
74  return -1;
75  }
76  return mImpl.setPlayView(frameLayout);
77  }
78 
79  @Override
80  public int startPlay(String url) {
81  if (mImpl == null) {
82  return -1;
83  }
84  return mImpl.startPlay(AlivcLiveURLTools.trimUrl(url));
85  }
86 
87  @Override
88  public int stopPlay() {
89  if (mImpl == null) {
90  return -1;
91  }
92  return mImpl.stopPlay();
93  }
94 
95  @Override
96  public void pauseAudioPlaying() {
97  if (mImpl != null) {
98  mImpl.pauseAudioPlaying();
99  }
100  }
101 
102  @Override
103  public void resumeAudioPlaying() {
104  if (mImpl == null) {
105  return;
106  }
107  mImpl.resumeAudioPlaying();
108  }
109 
110  @Override
111  public void pauseVideoPlaying() {
112  if (mImpl == null) {
113  return;
114  }
115  mImpl.pauseVideoPlaying();
116  }
117 
118  @Override
119  public void resumeVideoPlaying() {
120  if (mImpl == null) {
121  return;
122  }
123  mImpl.resumeVideoPlaying();
124  }
125 
126  @Override
127  public int setPlayoutVolume(int volume) {
128  if (mImpl == null) {
129  return -1;
130  }
131  return mImpl.setPlayoutVolume(volume);
132  }
133 
134  @Override
135  public void destroy() {
136  if (mImpl == null) {
137  return;
138  }
139  mImpl.destroy();
140  mImpl = null;
141  }
142 
143  @Override
144  public AlivcLiveMode getMode() {
145  if (mImpl == null) {
146  return AlivcLiveMode.AlivcLiveBasicMode;
147  }
148  return mImpl.getMode();
149  }
150 }
abstract AlivcLiveMode getMode()
abstract int setupWithConfig(AlivcLivePlayConfig playConfig)
AlivcLivePlayerImpl(Context context, AlivcLiveMode mode)
abstract int startPlay(String url)
abstract int setPlayoutVolume(int volume)
abstract void setPlayInfoListener(AlivcLivePlayInfoListener infoListener)
abstract int setPlayView(FrameLayout frameLayout)