- 房间参数
- 通知者
- 踢人原因
- TK_ERROR
- TK_RECORDSTATE
- TK_INFORMATION
- TK_INTERFACE_TYPE
- TK_ROOM_PROFILE
- TK_PUBLISH_STATUS
- TK_MEDIA_STATUS
- TK_RENDER_MODE
- TK_MEDIATYPE
- TK_SOURCETYPE
- TK_SAMPLEFMT
- TK_LOG_LEVEL
- TK_KICKOUT_REASON
- TK_SERVER_REC_TYPE
- TK_SERVER_REC_CONVERSION
- TK_SERVER_REC_LAYOUT
- TK_AUDIO_DEVICE
- TK_DEVICE_STATE
- TK_MEDIA_STATE
- TK_VIDEO_STREAM_TYPE
- TK_ROOM_TYPE
- VideoProfile
- VideoCanvas
- DesktopSource
- ValidWindow
- ITKValidWindowList
- tk_thumbImageSize
- VideoFrame
- AudioFrame
- VideoParam
- AudioParam
- LoggerInfo
- VideoStats
- ExtendedVideoStats
- AudioStats
- ExtendedAudioStats
- RtcStats
- MediaFileInfo
- ServerInfo
- Camera
- ScreenCaptureParameters
- TK_SHARESCREENE_STATE
- TKSystemResourceInfo
- TK_VIDEORENDER_MIRROR_TYPE
房间参数
调用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 |
|
通知者
调用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) | 自己看远端镜像(不会影响服务器录制及远端本地数据) |