public void initAndJoinRoom(String appId, String roomId, String userId, String userName,
mRTCVideo = RTCVideo.createRTCVideo(applicationContext, appId,
mIRTCEngineEventHandler, null, null);
mRTCRoom = mRTCVideo.createRTCRoom(roomId);
mRTCRoom.setRTCRoomEventHandler(mRTCRoomEventHandler);
mRTCVideo.startAudioCapture();
mRTCVideo.startVideoCapture();
mRTCVideo.stopVideoCapture();
mRTCRoom.unpublishStream(MediaStreamType.RTC_MEDIA_STREAM_TYPE_AUDIO);
mRTCRoom.publishStream(MediaStreamType.RTC_MEDIA_STREAM_TYPE_AUDIO);
mRTCVideo.setDefaultAudioRoute(mIsSpeakerphone
? AudioRoute.AUDIO_ROUTE_SPEAKERPHONE
: AudioRoute.AUDIO_ROUTE_EARPIECE);
mRTCVideo.enableAudioPropertiesReport(new AudioPropertiesConfig(1000,true,false));
RTCRoomConfig roomConfig = new RTCRoomConfig(ChannelProfile.CHANNEL_PROFILE_COMMUNICATION,
mRTCRoom.joinRoom(token, userIdNameToUserInfo(userId, userName), roomConfig);
private UserInfo userIdNameToUserInfo(String userId, String userName) {
VideoCallUserInfo userInfo = new VideoCallUserInfo();
userInfo.userId = userId;
userInfo.userName = userName;
String extra = GsonUtils.gson().toJson(userInfo);
return new UserInfo(userId, extra);
public class VideoCallUserInfo {
@SerializedName("user_name")
@SerializedName("user_id")