跳转至

publishVideo

  • 简要描述

    发布本地视频 需在进入房间成功后,调用生效。 用户发布视频成功后,收到成功的回调函数:onUserVideoStatus()

  • 函数原型

    重载的函数: int publishVideo() int publishVideo(const std::string& sourceId) 有多个设备的时候,需要调用重载函数传入设备的ID来发布使用的设备的视频 设备的ID可以调用getVideo()来获取所有的摄像头设备的ID和名称

  • 使用示例

    1
    2
    3
    4
    5
    6
    7
    8
    9
    TKVideo *video = 0;
    m_sdk->getInterface(TK_IID_VIDEO_DEVICE, (void**)(&video));
    int camCount = video->getVideoCount();
    for (int i = 0; i < camCount; i++)
    {
        std::string name, guid;
        video->getVideo(i, name, guid);
        m_sdk->publishVideo(guid);
    }
    

unPublishVideo

  • 简要描述

    需在进入房间成功后,调用生效。 用户停止发布视频成功后,收到成功的回调函数:onUserVideoStatus()

  • 函数原型

    重载的函数: int unpublishVideo() int unpublishVideo(const std::string& sourceId) 有多个设备的时候,需要调用重载函数传入设备的ID来停止发布使用的设备的视频 当前使用的设备ID可以调用getVideo(std::string& current_devId)来获取

  • 使用示例

    1
    2
    3
    4
    5
    TKVideo *video = 0;
    m_sdk->getInterface(TK_IID_VIDEO_DEVICE, (void**)(&video));
    std::string currentDeviceID;
    video->getVideo(currentDeviceID);
    m_sdk->publishVideo(currentDeviceID);
    

publishAudio

  • 简要描述

    发布本地音频 需在进入房间成功后,调用生效。 用户发布音频成功后,收到成功的回调函数:onUserAudioStatus()

  • 函数原型

    int publishAudio()

    @return 0 success

unpublishAudio

  • 简要描述

    停止发布本地音频 需在进入房间成功后,调用生效。 用户停止发布音频成功后,收到成功的回调函数:onUserAudioStatus()

  • 函数原型

    int unpublishAudio()

    @return 0 success

playVideo

  • 简要描述

    播放用户视频 需在调用 init 后,调用生效。 对同一个用户ID,可以调用多次此函数。

    多次调用: 1、当对传入相同peerID,相同view时,函数不执行任何操作,直接返回成功; 2、当对传入相同peerID,不同view时,会在新的view上渲染视频,之前播放视频的view将停止渲染视频; 3、须都在主线程调用。 调用此接口后,会有播放视频的相关回调通知: 1、收到第一帧数据的回调 onFirstVideoFrame(int width, int height,tk_uid peerId, std::string mediaType) 2、播放视频的过程中,出现视频状态的回调 onVideoStateChanged(std::string connectionId, std::string id, TK_MEDIA_STATE state)

  • 函数原型

    int playVideo(const VideoCanvas& view,tk_uid peerID) 本地多流无效 int playVideo(const VideoCanvas& view, tk_uid peerID,const std::string& sourceId)

    @return 0 success 参数

参数名 说明
view 渲染窗口类,定义详情见 VideoCanvas
peerID 用户ID
sourceId 多流情况下的设备ID
  • 使用示例
     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    TKVideo *video = 0;
    m_sdk->getInterface(TK_IID_VIDEO_DEVICE, (void**)(&video));
    std::string currentDeviceID;
    video->getVideo(currentDeviceID);
    VideoCanvas canvas;
    canvas.view = (获取的窗口句柄)
    canvas.renderMode = TK_RENDER_MODE_ADAPTIVE;
    TKRoomUserPtr userinfo = new TKRoomUser;
    std::string peerid = userinfo.getPeerID();
    m_sdk->playVideo(canvas, peerid, currentDeviceID);
    

unPlayVideo

  • 简要描述

    停止播放用户视频 须在主线程调用。

  • 函数原型

    int unplayVideo(tk_uid peerID) 本地多流无效 int unplayVideo(tk_uid peerID, const std::string& sourceId)

    @return 0 success 参数

参数名 说明
peerID 用户ID
sourceId 设备ID(多流模式下)
  • 使用示例
     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    //停止播放自己的
    TKVideo *video = 0;
    m_sdk->getInterface(TK_IID_VIDEO_DEVICE, (void**)(&video));
    std::string currentDeviceID;
    video->getVideo(currentDeviceID);
    VideoCanvas canvas;
    canvas.view = (获取的窗口句柄)
    canvas.renderMode = TK_RENDER_MODE_ADAPTIVE;
    TKRoomUserPtr userinfo = new TKRoomUser;
    std::string peerid = userinfo.getPeerID();
    m_sdk->inPlayVideo(peerid, currentDeviceID);
    

playAudio

unPlayAudio

  • 简要描述

    停止播放用户音频

  • 函数原型

    int unplayAudio(tk_uid peerID) 返回值:return 0 success 参数peerID :用户ID

备注

更多返回错误代码请看 TKRoomErrorCode 错误代码描述

© 2016-2023 北京拓课网络科技有限公司 版权所有  京ICP备17018423号-1 京公网安备11010502043461号