文档首页 > > SDK参考> Android SDK> SDK使用

SDK使用

分享
更新时间:2020/11/02 GMT+08:00
  1. 创建引擎。

    1
    2
    3
    4
    5
    6
    try {
        //serverAddr:域名,appId:应用ID,this:context上下文。
        mHwRtcEngine = HRTCEngine.create(getApplicationContext(), serverAddr, appId, this);
    } catch (Exception e) {
        e.printStackTrace();
    }
    

  2. 设置本地窗口。

    1
    2
        SurfaceView surface = RtcEngine.createRenderer(getApplicationContext());
        mHwRtcEngine.setupLocalView(surface, HRTCEnums.HRTCVideoDisplayMode.HRTC_VIDEO_DISPLAY_MODE_HIDDEN);
    

  3. 加入房间,公测阶段直接使用appid加入,正式商用阶段建议使用签名鉴权。

    1
    2
    3
    4
    5
    HRTCUserInfo userInfo = new HRTCUserInfo();
    userInfo.setUserId(mUserId);
    userInfo.setUserName(mUserName);
    userInfo.setRole( HRTCUserInfo.HRTCRoleType.HRTC_ROLE_TYPE_JOINER);
    mHwRtcEngine.joinRoom(userInfo, mChannelId, HRTCEnums.HRTCMediaType.HRTC_MEDIA_TYPE_VIDEO);
    
    • userInfo:用户信息,包含用户ID、用户名,用户角色,具体请参见HRTCUserInfo
    • mChannelId:加入的频道。
    • HRTCEnums.HRTCMediaType.HRTC_MEDIA_TYPE_VIDEO:加入房间的通话类型,音频+视频模式。

  4. 监听远端用户加入房间,并设置远端窗口。

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    17
    @Override
    public void onUserJoined(String roomId, final String userId, String nickname) {
        if (userId.equals(mUserId)||mRole == ROLE_TYPE_PUBLISER.ordinal()) {//ROLE_TYPE_PUBLISER为publisher 角色
            return;
        }
        Log.e(TAG, "onUserJoined userId: " + userId);
        runOnUiThread(new Runnable() {
            @Override
            public void run() {
                Toast.makeText(LiveActivity.this, userId + "加入了房间", Toast.LENGTH_SHORT).show();
                SurfaceView surface = HRTCEngine.createRenderer(getApplicationContext());
                mHwRtcEngine.startRemoteStreamView(userId,surface,  HRTCEnums.HRTCStreamType.HRTC_STREAM_TYPE_HD);
                mHwRtcEngine.setRemoteViewDisplayMode(userId,HRTCEnums.HRTCVideoDisplayMode.HRTC_VIDEO_DISPLAY_MODE_HIDDEN);
                mVideoGridContainer.addUserVideoSurface(userId, surface);//mVideoGridContainer 为视图容器
            }
        });
    }
    

  5. 监听远端用户离开房间,并删除远端窗口。

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    @Override
    public void onUserOffline(String roomId, final String userId, int reason) {
        Log.i(TAG, "HwRtcDemo onUserOffline roomId:" + roomId + ", userId:" + userId + ", reason:" + reason);
        runOnUiThread(new Runnable() {
            @Override
            public void run() {
                Log.e(TAG, "HwRtcDemo run removeRemoteUser! ");
                Toast.makeText(LiveActivity.this, userId + "离开了房间", Toast.LENGTH_SHORT).show();
    
                mHwRtcEngine.stopRemoteStreamView(userId);
                mVideoGridContainer.removeUserVideo(userId, false);
            }
        });
    }
    

  6. 离开房间。

    1
    2
    mHwRtcEngine.leaveRoom();
    finish();
    

分享:

    相关文档

    相关产品

文档是否有解决您的问题?

提交成功!非常感谢您的反馈,我们会继续努力做到更好!
反馈提交失败,请稍后再试!

*必选

请至少选择或填写一项反馈信息

字符长度不能超过200

提交反馈 取消

如您有其它疑问,您也可以通过华为云社区问答频道来与我们联系探讨

智能客服提问云社区提问