跳转到主要内容

初始化SDK

SRTC::StatusCode ret = SRTC::RTCEngine_Init(&_irtc);
if((ret |= SRTC::StatusCode::OK) || !_irtc)
{
    return false;
}

设置消息回调

_irtc->setEventHandler(this);
更多消息回调内容查看

加入频道

//如果需要修改配置信息请在,通过getSetting,进行参数设置
std::string token = "";
_irtc->joinChannel(token);
//触发 IRTCEngineEvent.onJoinRoom 事件之后才是真正的入会成功
更多参数设置参看

开关摄像头

    SRTC::IRTCLocalCameraTrack* _camStream = nullptr;
    const char* track_key = "camera";
    SRTC::StatusCode ret = _irtc->getCameraTrack(track_key,&_camStream);
    if((ret != SRTC::StatusCode::OK) || !_camStream )
    {
        return ret;
    }
    _camStream->addPlayView(callbackView);
    _camStream->startCapture();
    _irtc->publish(_camStream);
    SRTC::IRTCLocalCameraTrack* _camStream = nullptr;
    const char* track_key = "camera";
    SRTC::StatusCode ret = _irtc->getCameraTrack(track_key,&_camStream);
    if((ret != SRTC::StatusCode::OK) || !_camStream )
    {
        retrun ret;
    }
    
    _camStream->stopCapture();
    _camStream->removeAllPlayView();
    _irtc->unpublish(_camStream);
更多本地摄像头方法参看

开关麦克风

    SRTC::IRTCLocalMicTrack* _micStream = nullptr;
    const char* track_key = "mic";
    SRTC::StatusCode ret = _irtc->getAudioTrack(track_key,&_micStream);
    if((ret != SRTC::StatusCode::OK) || !_micStream )
    {
        return ret;
    }
    _micStream->startCapture();   
    _irtc->publish(_micStream); 
    SRTC::IRTCLocalMicTrack* _micStream = nullptr;
    const char* track_key = "mic";
    SRTC::StatusCode ret = _irtc->getAudioTrack(track_key,&_micStream);
    if((ret != SRTC::StatusCode::OK) || !_micStream )
    {
        return ret;
    }

    _micStream->stopCapture();
    _irtc->unpublish(_micStream); 
更多本地麦克风方法参看

开关桌面共享

    SRTC::IRTCLocalScreenTrack* _screenStream = nullptr;
    const char* track_key = "screen";
    SRTC::StatusCode ret = _irtc->getScreenTrack(track_key,&_screenStream);
    if((ret != SRTC::StatusCode::OK) || !_screenStream )
    {
        return ret;
    }
    _screenStream->startCapture();
    _irtc->publish(_screenStream); 
    SRTC::IRTCLocalScreenTrack* _screenStream = nullptr;
    const char* track_key = "screen";
    SRTC::StatusCode ret = _irtc->getScreenTrack(track_key,&_screenStream);
    if((ret != SRTC::StatusCode::OK) || !_screenStream )
    {
        return ret;
    }

    _screenStream->stopCapture();
    _irtc->unpublish(_screenStream); 
更多本地桌面共享方法参看

开关扬声器

    SRTC::IRTCRemoteAudioTrack* _speakerStream = nullptr;
    SRTC::StatusCode ret = _irtc->getRemoteAudioTrack("","",&_speakerStream);
    if((ret != SRTC::StatusCode::OK) || !_speakerStream )
    {
        return ret;
    }
    _speakerStream->startPlay();
    SRTC::IRTCRemoteAudioTrack* _speakerStream = nullptr;
    SRTC::StatusCode ret = _irtc->getRemoteAudioTrack("","",&_speakerStream);
    if((ret != SRTC::StatusCode::OK) || !_speakerStream )
    {
        return ret;
    }

    _speakerStream->stopPlay();
更多本地扬声器方法参看

显示关闭远端视频流

    SRTC::IRTCRemoteVideoTrack* _remoteStream = nullptr;
    std::string uid = "";//用户uid
    std::string stream_track_id = "";//用户stream_tracks 对应的流id
    SRTC::StatusCode ret = _irtc->getRemoteVideoTrack(uid,stream_track_id,&_remoteStream);
    if((ret != SRTC::StatusCode::OK) || !_remoteStream )
    {
        return ret;
    }

    _remoteStream->addPlayView(hwnd);
    _irtc->subscribe(_remoteStream);
    SRTC::IRTCRemoteVideoTrack* _remoteStream = nullptr;
    std::string uid = "";//用户uid
    std::string stream_track_id = "";//用户stream_tracks 对应的流id
    SRTC::StatusCode ret = _irtc->getRemoteVideoTrack(uid,stream_track_id,&_remoteStream);
    if((ret != SRTC::StatusCode::OK) || !_remoteStream )
    {
        return ret;
    }

    _remoteStream->removeAllPlayView();
    _irtc->unsubscribe(_remoteStream);

开关本地录制

    std::string mid = sdkInfo.meeting_id().toStdString();
    SMeeting::IMEETRecord* _rc;
    _imeet->getLocalRecord(mid, &_rc);
    //录制指定窗口
    HWND hwnd = (HWND)this->widID();
    _rc->setRecordHwnd(hwnd, 0, 0, 0, 0);
    //录制画面配置
    //_rc->setRecordLayoutMemberView(dt.c_str(),dt.size());
    _rc->startRecord();
    std::string mid = sdkInfo.meeting_id().toStdString();
    SMeeting::IMEETRecord* _rc;
    _imeet->getLocalRecord(mid, &_rc);
    _rc->stopRecord();
更多本地录制方法参看

退出频道

_irtc->leaveChannel();