文档首页 > > 客户端SDK参考> Windows SDK>

SDK使用

SDK使用

分享
更新时间:2021/01/07 GMT+08:00

以下为集成SDK进行实时音视频互动直播的基本流程:

  1. 创建引擎。

    m_pRtcEngine = create();
    m_pRtcEngine->initialize(domain, appId, &m_engineEventHandler);
    • domain:域名。
    • appId:应用ID,只有域名和应用ID相同的应用程序才能进入同一个房间进行互通。
    • m_engineEventHandler:引擎回调句柄,指定一个回调事件。SDK通过指定的事件通知应用程序的运行事件,如加入或离开房间等,具体请参见事件回调

    domainappId提交工单申请

  2. 加入房间。

    HRTCUserInfouser;
    memset(&user, 0, sizeof(HRTCUserInfo));
    user.role= m_roleType;
    user.userId = userId;
    user.userName = userName;
    m_pRtcEngine->joinRoom(user, roomId, HRTC_MEDIA_TYPE_VIDEO);
    • m_roleType:用户角色。
    • userId:本端用户唯一标识。
    • userName:用户昵称,该昵称为UTF-8编码。
    • roomId:房间ID,房间唯一标识。
    • HRTC_MEDIA_TYPE_VIDEO:媒体类型,具体请参见HRTCMediaType

  3. 设置本地视图。

    m_pRtcEngine->setupLocalView(hwnd, HRTC_VIDEO_DISPLAY_MODE_HIDDEN);
    • hwnd:视频窗口句柄。
    • HRTC_VIDEO_DISPLAY_MODE_HIDDEN:图像填充模式,具体请参见HRTCVideoDisplayMode

  4. 当连麦者加入房间,设置远端窗口。

    void HWEngineEventHandler::onUserJoined(const char* roomId, const char* userId, const char* nickName)
    {
        wchar_t *room = StringUtility::HW_Utf8ToUnicodeW(roomId);
        wchar_t *user = StringUtility::HW_Utf8ToUnicodeW(userId);
        wchar_t *name = StringUtility::HW_Utf8ToUnicodeW(nickName);
        UserJoinInfo* userInfo = new UserJoinInfo();
        _tcscpy(userInfo->roomId, room);
        _tcscpy(userInfo->userId, user);
        _tcscpy(userInfo->nickname, name);
        if(m_hMainWnd != NULL) {
            ::PostMessage(m_hMainWnd, WM_USERJOIN, (WPARAM)userInfo, 0);
        }
        if (room != NULL) {
            free(room);
        }
        if (user != NULL) {
            free(user);
        }
        if (name != NULL) {
            free(name);
        }
    }
    
    //远端用户加入房间触发onUserJoined回调,设置远端窗口。
    if (m_pRtcEngine->startRemoteStreamView(userId, m_wndVideo[nIndex].GetSafeHwnd(), streamType) == 0) {
        m_pRtcEngine->setRemoteViewDisplayMode(userId, HRTC_VIDEO_DISPLAY_MODE_HIDDEN);
    }
    • userId:远端用户id,唯一标识。
    • m_wndVideo[nIndex].GetSafeHwnd():视频窗口句柄。
    • streamType:视频分辨率,支持全高清、高清、标清和流畅选择。
    • HRTC_VIDEO_DISPLAY_MODE_HIDDEN:图像填充模式,具体请参见HRTCVideoDisplayMode

  5. 离开房间。

    m_pRtcEngine->leaveRoom();

    根据场景需要,如结束通话、关闭App或App切换至后台时,调用leaveRoom离开当前通话房间。

    至此,互动直播基本流程可以成功运行。

分享:

    相关文档

    相关产品