"观众角色的用户一般需要获取房间内的合流,然后订阅。(来源参考:https://www.rongcloud.cn/?utm_source=SEO&utm_term=jishitongxun)
mRtcRoom.getLiveStreams(); //适用于 观众订阅主播合流
1 final ListinputStreams = mRtcRoom.getLiveStreams(); 2for (RCRTCInputStream inputStream : inputStreams) { 3 if (inputStream.getMediaType() == RCRTCMediaType.VIDEO) { 4 //选择订阅大流或是小流。 5 ((RCRTCVideoInputStream) inputStream).setStreamType(RCRTCStreamType.NORMAL); 6 } 7} 8if (inputStreams.size() == 0) { 9 return; 10} 11mRtcRoom.getLocalUser().subscribeStreams(inputStreams, new IRCRTCResultCallback() { 12 @Override 13 public void onSuccess() { 14 } 15 16 @Override 17 public void onFailed(RTCErrorCode errorCode) { 18 } 19}); 20主播角色的用户一般只需要在连麦场景下订阅房间内其他主播的资源。 21 22mRtcRoom.getRemoteUsers().getStreams(); 适用于 主播订阅房间内其他主播的资源,在主播连麦的场景下会用到该方法。 23 24ListsubscribeInputStreams = new ArrayList<>(); 25for (final RCRTCRemoteUser remoteUser : mRtcRoom.getRemoteUsers()) { 26 if (remoteUser.getStreams().size() == 0) { 27 continue; 28 } 29 ListuserStreams = remoteUser.getStreams(); 30 for (RCRTCInputStream inputStream : userStreams) { 31 if (inputStream.getMediaType() == RCRTCMediaType.VIDEO) { 32 //选择订阅大流或是小流。 33 ((RCRTCVideoInputStream) inputStream).setStreamType(RCRTCStreamType.NORMAL); 34 } 35 } 36 subscribeInputStreams.addAll(userStreams); 37} 38if (subscribeInputStreams.size() == 0) { 39 return; 40} 41mRtcRoom.getLocalUser().subscribeStreams(subscribeInputStreams, new IRCRTCResultCallback() { 42 @Override 43 public void onSuccess() { 44 } 45 @Override 46 public void onFailed(RTCErrorCode errorCode) { 47 } 48});"
