跳转至

房间参数

调用joinRoom()接口函数的时候roomjsonparams参数是map类型的,可以使用下面定义的宏

宏定义字段 说明
TKHOST 域名(global.talk-cloud.com) "tk_host"
TKPORT 端口(目前为443) "tk_port"
TKROOMID 房间ID字段 "serial"
TKROOMPWD 房间密码字段(预约房间时指定的密码,注意不同身份对应不同密码) "password"
TKROOMTYPE 房间类型 "roomtype"
TK_UI_UNIFORM_VERSION UI版本 "tk_ui_uniform_version"
TK_SDK_UNIFORM_VERSION SDK版本 "tk_sdk_uniform_version"
TK_GETROOMFILE 获取课件列表 "tk_getroomfile"
TKMULTILOCALSTREAM 多流 "tk_multistream"
TKMAXRECONNECTCOUNT 最大连接数 "tk_max_reconnect_count"
TKUSESECURESOCKET 使用安全的socket "tk_use_secure_socket"
TKVOLUMEREPORTMS 音量回调间隔 毫秒 [10~1000] 10的倍数 "tk_volume_report_ms"

使用

1
2
3
4
5
tk::VariantMap roomjsonparams;
roomjsonparams[TKROOMID]="123456"
roomjsonparams[TKROOMPWS]="123456"
roomjsonparams[TKROOMPWS]="123456"
joinRoom(、、、, roomjsonparams, 、、、);

通知者

调用pubMsg()、delMsg()、sendMessage()等 接口函数中传的参数toId(tk_uid)有以下几种选项

宏定义字段 说明
ALLUSER 所有人 "__all"
ALLEXCEPTSENDER 除自己以外的所有人 "__allExceptSender"
ALLEXCEPTAUDITOR 除旁听用户以外的所有人 "__allExceptAuditor"
NONEUSER 不通知任何人 "__None"

注意

调用上述的接口函数还可以传入 peerID (某个用户的ID)

踢人原因

数值 说明
400 相同ID用户重复进入房间。先进入房间的用户会被踢出
401 房间到达设定的结束时间或老师离开房间后在指定时间内未返回
402 房间被禁用(通过后台或WebAPI)
<400 reason自定义(客户端调用踢人接口 )

TK_ERROR

错误码 1.收到void onError(int errorCode, const std::string& errMsg)回调的参数errorCode的详解 2.调用TKRoomManager类的接口函数的返回值

枚举值 说明
ERR_OK 成功 0
ERR_NOT_INITIALIZED 未初始化 1
ERR_INVALID_STATUS 无效的状态 2
ERR_BAD_PARAMETERS 参数错误 3
ERR_NO_THIS_USER 没有此用户 4
ERR_HTTP_REQUEST_FAILED HTTP请求失败 11
ERR_SHARESCREEN_FAILED_PMS 共享屏幕失败 15
ERR_OPENCAMERA_FAILED_PMS 打开摄像头失败 20
ERR_OPENCAMERA_FAILED 打开摄像头失败 21
ERR_INVALID_VIDEO_DEV_ID 无效的视频设备ID 22
ERR_OPENMIC_FAILED_PMS 打开麦克风失败 25
ERR_INVALID_MIC_DEV_ID 无效的麦克风设备ID 26
ERR_INVALID_SPEAKER_DEV_ID 无效的扬声器设备ID 27
ERR_PUBLISH_FAILED 发布失败 31
ERR_PUBLISH_TIMEOUT 发布超时 32
ERR_PUBLISH_ROOMMAXVIDEOLIMITED 发布房间最大视频限制 33
ERR_PUBLISH_MAX_RECONNECT_COUNT 发布最大重新连接计数 34
ERR_SUBSCRIBE_FAILED 订阅失败 41
ERR_SUBSCRIBE_TIMEOUT 订阅超时 42
ERR_SUBSCRIBE_STREAM_NOTFOUND 订阅流未找到 43
ERR_SWITCH_SERVER_FAILED 切换服务器失败 51
ERR_CHAT_TEXT_TOO_LONG 聊天文字太长 61
ERR_CHAT_SPEED_TOO_FAST 聊天速度太快 62
ERR_JOINROOM_WRONG_PARAM joinroom错误的参数 63
ERR_JOINROOM_STUDENT_LIMIT_EXCEED joinroom学生人数超过限额 64
ERR_JOINROOM_TEACHERS_ALREADY_INCLASSROOM joinroom教室中已有老师 65
ERR_JOINROOM_FAILED joinroom失败 2507
ERR_OPENMEDIAFILE_FAILED_PMS 打开媒体文件失败 3000

TK_RECORDSTATE

服务器录制状态 调用startServerRecord()stopServerRecord()这个两个接口函数 会有一个void onServerRecordState(TK_RECORDSTATE state)的回调函数,参数的值类型就是TK_RECORDSTATE

枚举值 说明
TK_RECORDSTATE_IDLE 闲置状态 0
TK_RECORDSTATE_START 开始录制 1
TK_RECORDSTATE_PAUSE 录制暂停,预留状态,暂未实现录制暂停功能 2
TK_RECORDSTATE_STOP 录制停止 3

TK_INFORMATION

回调onInfo(int infoCode, const tk::Variant& info = tk::Variant())中的第一个参数的值为TK_INFORMATION

枚举值 说明
INFO_CHECKROOM_COMPLETED checkroom完成 1001
INFO_GETCONFIG_COMPLETED getconfig完成 1002
INFO_MEDIA_STREAM_CONNECTED 媒体流连接 1101
INFO_MEDIA_STREAM_CLOSED 媒体流断开 1102

TK_INTERFACE_TYPE

接口类型 调用getInterface(TK_INTERFACE_TYPE interfaceID, void** inter) 需要传入下面的值,,具体使用请查看接口getInterface

枚举值 说明
TK_IID_AUDIO_DEVICE 音频设备 1
TK_IID_VIDEO_DEVICE 视频设备 2
TK_IID_USERMANAGER 用户管理器 3
TK_IID_BROADCAST_ENGINE 广播引擎 4
TK_IID_MEDIA_FACTORY 媒体工厂 5

TK_ROOM_PROFILE

房间类型

枚举值 说明
TK_ROOM_PROFILE_COMMUNICATION 实时交互 0
TK_ROOM_PROFILE_LIVE_BROADCASTING 直播 1
TL_ROOM_PROFILE_COMMUNICATION_LIVE 交互加直播 2

TK_PUBLISH_STATUS

用户的发布状态 调用publishVideo()、unpublishVideo()、publishAudio()、unpublishAudio()会修改用户的发布状态属性

枚举值 说明
TK_PUBLISH_NONE 什么都不发布 0
TK_PUBLISH_AUDIO 只发布音频 1
TK_PUBLISH_VIDEO 只发布视频 2
TK_PUBLISH_ALL 发布音视频 4

TK_MEDIA_STATUS

媒体发布状态 调用startShareMediaFile()、stopShareMediaFile()会修改用户的媒体发布状态

枚举值 说明
TK_MEDIA_UNPUBLISH 停止发布 0
TK_MEDIA_PUBLISHED 开始发布 1

TK_RENDER_MODE

渲染模式

枚举值 说明
TK_RENDER_MODE_HIDDEN 渲染模式隐藏 1
TK_RENDER_MODE_FIT 渲染模式匹配 2
TK_RENDER_MODE_ADAPTIVE 渲染模式自适应 3

TK_MEDIATYPE

媒体类型 回调 onCaptureAudioFrame()、onCaptureVideoFrame()的参数就是TK_MEDIATYPE

枚举值 说明
TK_MEDIA_UNKNOW -1
TK_MEDIA_CAMERA 摄像头 0
TK_MEDIA_MIC 麦克风 11
TK_MEDIA_SPEAKER 扬声器 12
TK_MEDIA_FILE 媒体文件 101
TK_MEDIA_SCREEN 屏幕共享 102
TK_MEDIA_MEDIA 本地媒体 103

TK_SOURCETYPE

数据源类型

枚举值 说明
TK_SOURCE_SCREEN 屏幕源 0
TK_SOURCE_WINDOW window源 1

TK_SAMPLEFMT

数据存储类型

枚举值 说明
TK_SAMPLE_FMT_NONE -1
TK_SAMPLE_FMT_U8 unsigned 8 bits 0
TK_SAMPLE_FMT_S16 signed 16 bits 1
TK_SAMPLE_FMT_S32 signed 32 bits 2
TK_SAMPLE_FMT_FLT float 3
TK_SAMPLE_FMT_DBL double 4
TK_SAMPLE_FMT_U8P unsigned 8 bits, planar 5
TK_SAMPLE_FMT_S16P signed 16 bits, planar 6
TK_SAMPLE_FMT_S32P signed 32 bits, planar 7
TK_SAMPLE_FMT_FLTP float, planar 8
TK_SAMPLE_FMT_DBLP double, planar 9
TK_SAMPLE_FMT_S64 signed 64 bits 10
TK_SAMPLE_FMT_S64P signed 64 bits, planar 11
TK_AV_SAMPLE_FMT_NB Number of sample formats. DO NOT USE if linking dynamically 12

TK_LOG_LEVEL

打印日志的格式:分为信息、警告、错误等类型 作为结构体struct LoggerInfo的元素来使用

枚举值 说明
TK_LOG_ALL 所有
TK_LOG_DEBUG 调试
TK_LOG_INFO 信息
TK_LOG_WARNING 警告
TK_LOG_ERROR 错误
TK_LOG_NONE

TK_KICKOUT_REASON

被踢出的原因 回调onKickedout(TK_KICKOUT_REASON reason)

枚举值 说明
TK_KICKOUT_REPEAT 重复登录(同样的身份挤掉)
TK_KICKOUT_BY_OTHER 被其他人踢出(老师点击踢出去)

TK_SERVER_REC_TYPE

服务器录制类型 调用[startServerRecord]5 第一个参数为传入录制的类型

枚举值 说明
TK_REC_DEFAULT 默认类型
TK_REC_INDEPENDENT_VIDEO 单流
TK_REC_MP3 MP3
TK_REC_MIXED_VIDEO 多流

TK_SERVER_REC_CONVERSION

服务器录制转换 我录制出来的mkv文件需要转换成用户所需的文件 调用[startServerRecord]6 第二个参数为传入转换录制的类型

枚举值 说明
TK_REC_CONVERT_NONE
TK_REC_CONVERT_WEBM 转换为webm文件
TK_REC_CONVERT_MP4 转换为MP4文件

TK_SERVER_REC_LAYOUT

服务器录制布局 调用startServerRecord() 第三个参数为传入录制布局的类型

枚举值 说明
TK_REC_LAYOUT_HOR 横屏
TK_REC_LAYOUT_VER 竖屏

TK_AUDIO_DEVICE

音频设备 回调onAudioDeviceStateChanged的第二个参数为TK_AUDIO_DEVICE

枚举值 说明
TK_DEVICE_MIC 麦克风
TK_DEVICE_SPEAKER 扬声器

TK_DEVICE_STATE

设备状态onVideoDeviceStateChanged 回调onVideoDeviceStateChanged()onAudioDeviceStateChanged()

枚举值 说明
TK_DEVICE_REMOVE 移除
TK_DEVICE_ADD 添加

TK_MEDIA_STATE

媒体状态onVideoDeviceStateChanged 回调onVideoStateChanged()onAudioStateChanged()

枚举值 说明
TK_MEDIA_STATE_FROZEN 暂停
TK_MEDIA_STATE_RESUME 恢复

TK_VIDEO_STREAM_TYPE

视频流类型 调用setRemoteVideoStreamType()需要传入此类型的参数

枚举值 说明
TK_VIDEO_STREAM_BIG 大流
TK_VIDEO_STREAM_SMALL 小流

TK_ROOM_TYPE

房间类型

枚举值 说明
TK_ROOM_ONE_TO_ONE 一对一
TK_ROOM_ONE_TO_MANY 一对多

VideoProfile

视频配置文件

元素(类型) 说明
width(int) 视频宽
height(int) 视频高
maxfps(int) 帧率

VideoCanvas

视频画布

元素(类型) 说明
view(tk_view) 窗口句柄
renderMode(TK_RENDER_MODE) 渲染模式
  • 方法
    1
    2
    3
    4
        VideoCanvas(tk_view v, TK_RENDER_MODE m)
            : view(v)
            , renderMode(m)
            {}
    

DesktopSource

桌面源

元素(类型) 说明
window(void*) 共享的窗口句柄
type(TK_SOURCETYPE) 源类型
Rect(struct) 有效区域大小
mixMic(bool) 是否混音麦克风数据
mixSpeaker(bool) 是否混音扬声器数据
cursorMonitor(bool) 是否需要追踪鼠标
  • 方法
    1
    2
    3
    4
    5
    6
    7
    8
        DesktopSource()
            : window(0)
            , type(TK_SOURCE_SCREEN)
            , rect({ 0,0,0,0 })
            , mixMic(false)
            , mixSpeaker(false)
            , cursorMonitor(false)
            {}
    

ValidWindow

有效窗口

元素(类型) 说明
id(long) 窗口ID
title(std::string) 窗口主题
imagebuffer(const unsigned char*) 缩略图数据
imagelength(unsigned int) 缩略图数据大小
imagewidth(unsigned int) 缩略图数据像素宽
imageheight(unsigned int) 缩略图数据像素高
iconbuffer(const unsigned char*) 图标数据
iconlength(unsigned int) 图标数据大小
iconwidth(unsigned int) 图标数据像素宽
iconheight(unsigned int) 图标数据像素高

ITKValidWindowList

共享源列表

接口名称 方法功能
getCount 获取可共享的窗口和屏幕的个数。
getWindowInfo 获取指定的可共享窗口或屏幕的信息。
release 释放缩略图、图标数据buffer内存
- 定义
>
class ITKValidWindowList
{
protected:
virtual ~ITKValidWindowList() {}
>
public:
virtual uint32_t getCount() = 0;
virtual ValidWindow getWindowInfo(uint32_t index) = 0;
virtual void release() = 0;
};

tk_thumbImageSize

屏幕或窗口的缩略图的目标尺寸

元素(类型) 说明
width(unsigned int) 设置缩略图宽
height(unsigned int) 设置缩略图高
iconwidth(unsigned int) 设置图标宽
iconheight(unsigned int) 设置图标图宽

VideoFrame

一帧视频数据

元素(类型) 说明
width(int)
height(int)
yStride(int) Y数据缓冲区的跨步
uStride(int) U数据缓冲区的跨步
vStride(int) V数据缓冲区的跨步
yBuffer(void *) Y数据缓冲区
uBuffer(void *) U数据缓冲区
vBuffer(void *) V数据缓冲区
rotation(int) 此帧的旋转(0、90、180、270)

AudioFrame

一帧音频数据

元素(类型) 说明
samples(int) 这一帧的采样次数
bytesPerSample(int) 样本大小
channels(int) 通道数
samplesPerSec(int) 采样率
format(int) 位深(TK_SAMPLEFMT)
buffer(void *) 数据缓冲区

VideoParam

视频参数

元素(类型) 说明
width(int)
height(int)
bitrate(int) 比特率
fps(int) 帧率
key_sec(int)
  • 方法
    1
    2
    3
    4
    5
    6
    7
        VideoParam()
        : width(0)
        , height(0)
        , bitrate(0)
        , fps(0)
        , key_sec(0)
        {};
    

AudioParam

音频参数

元素(类型) 说明
samplerate 采样率
bitrate 采样位数
channel 通道

LoggerInfo

日志信息

元素(类型) 说明
loglevel(TK_LOG_LEVEL) 日志的格式
logpath(std::string) 日志路径
limitsize(int) 限制大小 MB. 0 for no limit

VideoStats

视频统计

元素(类型) 说明
frameWidth(int) 帧宽
frameHeight(int) 帧高
frameRate(int) 帧率
packetsLost(int) 丢失包数
totalPackets(int) 总包数
currentDelay(int) 当前延时
bitsPerSecond(int) 每秒传输字节数
netQuality(TK_NET_QUALITY) 网络状况
timeStamp(int) 时间戳

ExtendedVideoStats

扩展的视频统计,继承VideoStats

元素(类型) 说明
firsCount(int) 关键帧丢失数
plisCount(int) 关键帧请求数
totalBytes(long long) 总字节数

AudioStats

音频统计

元素(类型) 说明
packetsLost(int) 丢失包数
totalPackets(int) 总包数
currentDelay(int) 当前延时
bitsPerSecond(int) 每秒传输字节数
jitter(int) 抖动
netQuality(TK_NET_QUALITY) 网络状况
timeStamp (double) 时间戳

ExtendedAudioStats

扩展的音频统计,继承AudioStats

元素(类型) 说明
totalBytes(long long) 总字节数

RtcStats

上下行数据的统计

元素(类型) 说明
outBytes(unsigned int) 输出字节数
inBytes(unsigned int) 输入字节数
outPackets(unsigned int) 输出包数
inPackets(unsigned int) 输入包数
outAudioBitRate(unsigned int) 输出音频比特率
inAudioBitRate(unsigned int) 输入音频比特率
outVideoBitRate(unsigned int) 输出视频比特率
inVideoBitRate(unsigned int) 输入视频比特率
outAudioPacketLostRate(float) 输出音频丢包率
inAudioPacketLostRate(float) 输入音频丢包率
outVideoPacketLostRate(float) 输出视频丢包率
inVideoPacketLostRate(float) 输入视频丢包率
outNetQuality(TK_NET_QUALITY) 输出网络质量
inNetQuality(TK_NET_QUALITY) 输入网络质量
netQuality(TK_NET_QUALITY) 网络状态
audioDelay(unsigned int) 音频延迟
videoDelay(unsigned int) 视频延迟
duration(long long) 总时长

MediaFileInfo

媒体文件信息

元素(类型) 说明
duration(int) 媒体文件总时长
width(int)
height(int)
fps(int) 帧率
video(bool) 是否有视频
audio(bool) 是否有音频

ServerInfo

服务器信息

元素(类型) 说明
chinesedesc(std::string) 中文描述
englishdesc(std::string) 英文描述
serverareaname(std::string) 服务器名字
current(bool) 是否当前

Camera

摄像头

元素(类型) 说明
deviceId(std::string) 设备ID
deviceName(std::string) 设备名字

ScreenCaptureParameters

桌面共享窗口参数配置,此参数作为updateScreenCaptureParameters 的参数传进去

元素(类型) 说明
excludeWindowList(tk_view*) 排除窗口句柄的指针(二维指针). 当共享窗口的时候,此接口只支持移除子窗口
excludeWindowCount(int) 所排除窗口的数量(excludeWindowList指针的大小)
windowFocus(int) 窗口共享前置选项,默认为 0
value = 0:窗口列表中获取的窗口共享的时候默认前置,共享不在窗口列表中的窗口的时候,不前置该窗口
value = 1::所共享的窗口都前置
value = 2:所共享的窗口都不前置
highLightWidth(int) 高亮线的宽度 //Default value 5 ,Range (0,50]。
highLightColor(unsigned long) 高亮线的颜色 //Default value 0xFF8CBF26。
enableHighLight(bool) 是否展示高亮框 //Default value false。
fps(int) 设置采集的帧率 //default value 5, Rang(5, 25]。

TK_SHARESCREENE_STATE

桌面共享窗口状态码,此参数作为onShareScreenStateChanged 的参数传出去

元素(类型) 说明
ERR_SHARESCREENE_SRC_CAPTURE_EXCEPTION_FAILD(601) 捕获源异常(被关闭或者不能被捕获)

TKSystemResourceInfo

系统信息,此参数作为onSystemResourceReport 的参数传出去

元素(类型) 说明
sysCpu(unsigned long) 当前系统的 CPU 使用率,单位 (%)
sysMemory(unsigned long) 当前系统的 memory 使用率,单位 (%)

TK_VIDEORENDER_MIRROR_TYPE

摄像头视频镜像,此参数作为setVideoRenderMirror 的参数传进去

元素(类型) 说明
localRender(0) 本地镜像类型(不会影响服务器录制)
senderRender(1) 发送给远端数据镜像类型 (服务器录制镜像)
captureMirror(2) localRender和senderRender类型全部镜像。localRender、senderRender类型与captureMirror 不能混合使用,切换会存在闪屏或无镜像效果。全部开启时请使用该类型设置,性能更佳(服务器录制镜像)
remoteMirror(3) 自己看远端镜像(不会影响服务器录制及远端本地数据)

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