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
-
简要描述
播放用户音频 无需播放自己的音频,若playAudio传入参数是自己的ID,函数会直接return。
调用此接口后,会有播放音频的相关回调通知: 1、收到第一帧数据的回调 onFirstAudioFrame(tk_uid peerId, TK_MEDIATYPE mediaType) 2、播放视频的过程中,出现音频中断的回调 onAudioStateChanged(std::string connectionId, TK_MEDIATYPE mediaType, TK_MEDIA_STATE state) 3、播放用户音频时,音量大小变化的回调(远端音频的音量): onRemoteAudioVolume(tk_uid peerId, int vol)
-
函数原型
int playAudio(tk_uid peerID)
返回值:return 0 success 参数 peerID: 用户ID
unPlayAudio
-
简要描述
停止播放用户音频
-
函数原型
int unplayAudio(tk_uid peerID)
返回值:return 0 success 参数peerID :用户ID
备注
更多返回错误代码请看 TKRoomErrorCode 错误代码描述