腾讯云视频通话功能的主要接口类
Module: ITRTCCloud @ TXLiteAVSDK
Function: 腾讯云视频通话功能的主要接口类
创建/使用/销毁 ITRTCCloud 对象的示例代码:
程序退出或者后续程序流程不需要使用 TRTCCloud 对象时,释放单例对象 ITRTCCloud
class ManageLiteAV::ITRTCCloud |
Public 成员函数 | |||||
~ITRTCCloud () | |||||
void | enableCustomVideoCapture (TRTCVideoStreamType type, bool enable) | ||||
void | sendCustomVideoData (TRTCVideoStreamType type, TRTCVideoFrame^ frame) | ||||
void | enableCustomAudioCapture (bool enable) | ||||
void | sendCustomAudioData (TRTCAudioFrame^ frame) | ||||
void | enableMixExternalAudioFrame (bool enablePublish, bool enablePlayout) | ||||
int | mixExternalAudioFrame (TRTCAudioFrame ^ frame) | ||||
void | setMixExternalAudioVolume (int publishVolume, int playoutVolume) | ||||
UInt64 | generateCustomPTS () | ||||
int | setLocalVideoProcessCallback (TRTCVideoPixelFormat pixelFormat, TRTCVideoBufferType bufferType, ITRTCVideoFrameCallback ^ callback) | ||||
int | setLocalVideoRenderCallback (TRTCVideoPixelFormat pixelFormat, TRTCVideoBufferType bufferType, ITRTCVideoRenderCallback^ callback) | ||||
int | setRemoteVideoRenderCallback (String^ userId, TRTCVideoPixelFormat pixelFormat, TRTCVideoBufferType bufferType, ITRTCVideoRenderCallback^ callback) | ||||
int | setAudioFrameCallback (ITRTCAudioFrameCallback^ callback) | ||||
void | enableCustomAudioRendering (bool enable) | ||||
void | getCustomAudioRenderingFrame (TRTCAudioFrame ^ audioFrame) | ||||
创建与销毁 ITRTCCloud 单例 | |||||
static ITRTCCloud ^ | getTRTCShareInstance () | ||||
static void | destroyTRTCShareInstance () | ||||
设置 TRTCCloudCallback 回调 | |||||
void | addCallback (ITRTCCloudCallback^ callback) | ||||
void | removeCallback (ITRTCCloudCallback^ callback) | ||||
房间相关接口函数 | |||||
进入房间 您会收到来自 TRTCCloudCallback 中的 onEnterRoom(result) 回调:
进房失败的错误码含义请参见错误码。
| |||||
void | enterRoom (TRTCParams^ % params, TRTCAppScene scene) | ||||
void | exitRoom () | ||||
void | switchRole (TRTCRoleType role) | ||||
void | switchRoom (TRTCSwitchRoomConfig ^ % config) | ||||
void | connectOtherRoom (String^ params) | ||||
void | disconnectOtherRoom () | ||||
void | setDefaultStreamRecvMode (bool autoRecvAudio, bool autoRecvVideo) | ||||
CDN 相关接口函数 | |||||
void | startPublishing (String^ streamId, TRTCVideoStreamType type) | ||||
void | stopPublishing () | ||||
void | startPublishCDNStream (TRTCPublishCDNParam^ % param) | ||||
void | stopPublishCDNStream () | ||||
void | setMixTranscodingConfig (TRTCTranscodingConfig^ config) | ||||
视频相关接口函数 | |||||
void | startLocalPreview (IntPtr rendView) | ||||
void | updateLocalView (IntPtr rendView) | ||||
void | stopLocalPreview () | ||||
void | muteLocalVideo (TRTCVideoStreamType streamType, bool mute) | ||||
void | startRemoteView (String ^ userId, TRTCVideoStreamType streamType, IntPtr rendView) | ||||
void | updateRemoteView (String ^ userId, TRTCVideoStreamType streamType, IntPtr rendView) | ||||
void | stopRemoteView (String ^ userId, TRTCVideoStreamType streamType) | ||||
void | stopAllRemoteView () | ||||
void | muteRemoteVideoStream (String ^ userId, TRTCVideoStreamType streamType, bool mute) | ||||
void | muteAllRemoteVideoStreams (bool mute) | ||||
void | setVideoEncoderParam (TRTCVideoEncParam^ % params) | ||||
void | setNetworkQosParam (TRTCNetworkQosParam^ % params) | ||||
void | setLocalRenderParams (TRTCRenderParams^ % params) | ||||
void | setRemoteRenderParams (String^ userId, TRTCVideoStreamType streamType, TRTCRenderParams^ % params) | ||||
void | setVideoEncoderRotation (TRTCVideoRotation rotation) | ||||
void | setVideoEncoderMirror (bool mirror) | ||||
void | enableSmallVideoStream (bool enable, TRTCVideoEncParam^ % smallVideoParam) | ||||
void | setRemoteVideoStreamType (String ^ userId, TRTCVideoStreamType type) | ||||
void | snapshotVideo (String^ userId, TRTCVideoStreamType streamType, TRTCSnapshotSourceType sourceType) | ||||
音频相关接口函数 | |||||
void | startLocalAudio (TRTCAudioQuality quality) | ||||
void | stopLocalAudio () | ||||
void | muteLocalAudio (bool mute) | ||||
void | muteRemoteAudio (String^ userId, bool mute) | ||||
void | muteAllRemoteAudio (bool mute) | ||||
void | setRemoteAudioVolume (String ^ userId, int volume) | ||||
void | setAudioCaptureVolume (int volume) | ||||
int | getAudioCaptureVolume () | ||||
void | setAudioPlayoutVolume (int volume) | ||||
int | getAudioPlayoutVolume () | ||||
void | enableAudioVolumeEvaluation (UInt32 interval) | ||||
int | startAudioRecording (TRTCAudioRecordingParams^ % audioRecordingParams) | ||||
void | stopAudioRecording () | ||||
void | startLocalRecording (TRTCLocalRecordingParams^ % params) | ||||
void | stopLocalRecording () | ||||
设备相关接口函数 | |||||
ITXDeviceManager ^ | getDeviceManager () | ||||
美颜特效和图像水印 | |||||
void | setBeautyStyle (TRTCBeautyStyle style, UInt32 beauty, UInt32 white, UInt32 ruddiness) | ||||
void | setWaterMark (TRTCVideoStreamType streamType, String^ srcData, TRTCWaterMarkSrcType srcType, UInt32 nWidth, UInt32 nHeight, float xOffset, float yOffset, float fWidthRatio) | ||||
音乐特效和人声特效 | |||||
ITXAudioEffectManager ^ | getAudioEffectManager () | ||||
void | startSystemAudioLoopback (String ^ deviceName) | ||||
void | stopSystemAudioLoopback () | ||||
void | setSystemAudioLoopbackVolume (UInt32 volume) | ||||
屏幕分享相关接口函数 | |||||
void | startScreenCapture (IntPtr rendView, TRTCVideoStreamType type, TRTCVideoEncParam^ params) | ||||
void | stopScreenCapture () | ||||
void | pauseScreenCapture () | ||||
void | resumeScreenCapture () | ||||
ITRTCScreenCaptureSourceList ^ | getScreenCaptureSources (SIZE^ % thumbSize, SIZE^ % iconSize) | ||||
void | selectScreenCaptureTarget (TRTCScreenCaptureSourceInfo^ % source, RECT^ % captureRect, TRTCScreenCaptureProperty^ % property) | ||||
void | setSubStreamEncoderParam (TRTCVideoEncParam^% params) | ||||
void | setSubStreamMixVolume (UInt32 volume) | ||||
void | addExcludedShareWindow (IntPtr window) | ||||
void | removeExcludedShareWindow (IntPtr window) | ||||
void | removeAllExcludedShareWindow () | ||||
void | addIncludedShareWindow (IntPtr window) | ||||
void | removeIncludedShareWindow (IntPtr window) | ||||
void | removeAllIncludedShareWindow () | ||||
自定义消息发送 | |||||
bool | sendCustomCmdMsg (UInt32 cmdId, array< Byte >^ data, UInt32 dataSize, bool reliable, bool ordered) | ||||
bool | sendSEIMsg (array< Byte >^ data, Int32 dataSize, Int32 repeatCount) | ||||
网络测试 | |||||
void | startSpeedTest (UInt32 sdkAppId, String^ userId, String^ userSig) | ||||
void | stopSpeedTest () | ||||
LOG 相关接口函数 | |||||
String ^ | getSDKVersion () | ||||
void | setLogLevel (TRTCLogLevel level) | ||||
void | setConsoleEnabled (bool enabled) | ||||
void | setLogCompressEnabled (bool enabled) | ||||
void | setLogDirPath (String^ path) | ||||
void | setLogCallback (ITRTCLogCallback^ callback) | ||||
void | showDebugView (int showType) | ||||
void | callExperimentalAPI (String^ jsonStr) | ||||
弃用接口函数 | |||||
void | setMicVolumeOnMixing (UInt32 volume) | ||||
void | startScreenCapture (IntPtr rendHwnd) | ||||
void | playBGM (String^ path) | ||||
void | stopBGM () | ||||
void | pauseBGM () | ||||
void | resumeBGM () | ||||
UInt32 | getBGMDuration (String^ path) | ||||
void | setBGMPosition (UInt32 pos) | ||||
void | setBGMVolume (UInt32 volume) | ||||
void | setBGMPlayoutVolume (UInt32 volume) | ||||
void | setBGMPublishVolume (UInt32 volume) | ||||
void | playAudioEffect (TRTCAudioEffectParam^ effect) | ||||
void | setAudioEffectVolume (int effectId, int volume) | ||||
void | stopAudioEffect (int effectId) | ||||
void | stopAllAudioEffects () | ||||
void | setAllAudioEffectsVolume (int volume) | ||||
void | pauseAudioEffect (int effectId) | ||||
void | resumeAudioEffect (int effectId) | ||||
void | selectScreenCaptureTarget (TRTCScreenCaptureSourceInfo^ % source, RECT^ % captureRect, bool captureMouse, bool highlightWindow) | ||||
void | startRemoteView (String ^ userId, IntPtr rendHwnd) | ||||
void | stopRemoteView (String ^ userId) | ||||
void | setLocalViewFillMode (TRTCVideoFillMode mode) | ||||
void | setRemoteViewFillMode (String ^ userId, TRTCVideoFillMode mode) | ||||
void | setLocalViewRotation (TRTCVideoRotation rotation) | ||||
void | setRemoteViewRotation (String ^ userId, TRTCVideoRotation rotation) | ||||
void | setLocalViewMirror (bool mirror) | ||||
void | startRemoteSubStreamView (String ^ userId, IntPtr rendHwnd) | ||||
void | stopRemoteSubStreamView (String ^ userId) | ||||
void | setRemoteSubStreamViewFillMode (String ^ userId, TRTCVideoFillMode mode) | ||||
void | setRemoteSubStreamViewRotation (String ^ userId, TRTCVideoRotation rotation) | ||||
void | setPriorRemoteVideoStreamType (TRTCVideoStreamType type) | ||||
void | setAudioQuality (TRTCAudioQuality quality) | ||||
void | startLocalAudio () | ||||
ITRTCDeviceCollection ^ | getCameraDevicesList () | ||||
void | setCurrentCameraDevice (String ^ deviceId) | ||||
ITRTCDeviceInfo ^ | getCurrentCameraDevice () | ||||
ITRTCDeviceCollection ^ | getMicDevicesList () | ||||
ITRTCDeviceInfo ^ | getCurrentMicDevice () | ||||
void | setCurrentMicDevice (String ^ micId) | ||||
UInt32 | getCurrentMicDeviceVolume () | ||||
void | setCurrentMicDeviceVolume (UInt32 volume) | ||||
ITRTCDeviceCollection ^ | getSpeakerDevicesList () | ||||
ITRTCDeviceInfo ^ | getCurrentSpeakerDevice () | ||||
void | setCurrentSpeakerDevice (String ^ speakerId) | ||||
UInt32 | getCurrentSpeakerVolume () | ||||
void | setCurrentSpeakerVolume (UInt32 volume) | ||||
void | startCameraDeviceTest (IntPtr rendHwnd) | ||||
void | stopCameraDeviceTest () | ||||
void | startMicDeviceTest (UInt32 interval) | ||||
void | stopMicDeviceTest () | ||||
void | startSpeakerDeviceTest (String ^ testAudioFilePath) | ||||
void | stopSpeakerDeviceTest () | ||||
自定义采集和渲染 | |||||
启用视频自定义采集模式(已废弃) /// 开启该模式后,SDK 不再运行原有的视频采集流程,只保留编码和发送能力。 您需要用 sendCustomVideoData() 不断地向 SDK 塞入自己采集的视频画面。
| |||||
void | enableCustomVideoCapture (bool enable) | ||||
void | muteRemoteVideoStream (String ^ userId, bool mute) | ||||
void | sendCustomVideoData (TRTCVideoFrame^ frame) | ||||
void | muteLocalVideo (bool mute) | ||||
~ITRTCCloud | ( | ) |
析构函数,C# 代码中要求显示调用 Dispose 函数,来触发托管 C++ 类析构函数。
void addCallback | ( | ITRTCCloudCallback^ | callback | ) |
设置回调接口 ITRTCCloudCallback
您可以通过 ITRTCCloudCallback 获得来自 SDK 的各种状态通知,详见 ITRTCCloudCallback.h 中的定义
callback | 事件回调 |
void addExcludedShareWindow | ( | IntPtr | window | ) |
将指定窗口加入屏幕分享的排除列表中,加入排除列表中的窗口不会被分享出去
支持启动屏幕分享前设置过滤窗口,也支持屏幕分享过程中动态添加过滤窗口。
window | 不希望分享出去的窗口 |
void addIncludedShareWindow | ( | IntPtr | window | ) |
将指定窗口加入屏幕分享的包含列表中,加入包含列表中的窗口如果在采集窗口区域内会被分享出去
支持启动屏幕分享前设置包含的窗口,也支持屏幕分享过程中动态添加包含的窗口
该方法只有在 TRTCScreenCaptureSourceInfo 中的 type 指定为 TRTCScreenCaptureSourceTypeWindow 时生效,即分享窗口时生效
该方法添加的窗口列表会在退房后清除
window | 窗口句柄 |
void callExperimentalAPI | ( | String^ | jsonStr | ) |
调用实验性 API 接口
该接口用于调用一些实验性功能
jsonStr | 接口及参数描述的 JSON 字符串 |
void connectOtherRoom | ( | String^ | params | ) |
请求跨房通话(主播 PK)
TRTC 中两个不同音视频房间中的主播,可以通过“跨房通话”功能拉通连麦通话功能。使用此功能时, 两个主播无需退出各自原来的直播间即可进行“连麦 PK”。
例如:当房间“001”中的主播 A 通过 connectOtherRoom() 跟房间“002”中的主播 B 拉通跨房通话后, 房间“001”中的用户都会收到主播 B 的 onUserEnter(B) 回调和 onUserVideoAvailable(B, true) 回调。 房间“002”中的用户都会收到主播 A 的 onUserEnter(A) 回调和 onUserVideoAvailable(A, true) 回调。
简言之,跨房通话的本质,就是把两个不同房间中的主播相互分享,让每个房间里的观众都能看到两个主播。
房间 001 房间 002
----------— ---------—
跨房通话前: | 主播 A | | 主播 B |
| 观众 U V W | | 观众 X Y Z |
----------— ---------—
房间 001 房间 002
----------— ---------—
跨房通话后: | 主播 A B | | 主播 B A |
| 观众 U V W | | 观众 X Y Z |
----------— ---------—
跨房通话的参数考虑到后续扩展字段的兼容性问题,暂时采用了 JSON 格式的参数,要求至少包含两个字段:
- roomId:房间“001”中的主播 A 要跟房间“002”中的主播 B 连麦,主播 A 调用 connectOtherRoom() 时 roomId 应指定为“002”。
- userId:房间“001”中的主播 A 要跟房间“002”中的主播 B 连麦,主播 A 调用 connectOtherRoom() 时 userId 应指定为 B 的 userId。
跨房通话的请求结果会通过 TRTCCloudCallback 中的 onConnectOtherRoom() 回调通知给您。
此处用到 json 库来格式化json字符串
dynamic jsonObj = new JObject();
jsonObj["roomId"] = 002;
jsonObj["userId"] = "userB";
string params = JsonConvert.SerializeObject(jsonObj);
trtc.connectOtherRoom(params);
params | JSON 字符串连麦参数,roomId 代表目标房间号,userId 代表目标用户 ID。 |
|
static |
释放 ITRTCCloud 单例对象。
void disconnectOtherRoom | ( | ) |
关闭跨房连麦
跨房通话的退出结果会通过 ITRTCCloudCallback 中的 onDisconnectOtherRoom 回调通知给您。
void enableAudioVolumeEvaluation | ( | UInt32 | interval | ) |
启用或关闭音量大小提示
开启此功能后,SDK 会在 onUserVoiceVolume() 中反馈对每一路声音音量大小值的评估。
我们在 Demo 中有一个音量大小的提示条,就是基于这个接口实现的。
如希望打开此功能,请在 startLocalAudio() 之前调用。
interval | 设置 onUserVoiceVolume 回调的触发间隔,单位为ms,最小间隔为100ms,如果小于等于0则会关闭回调,建议设置为300ms |
void enableCustomAudioCapture | ( | bool | enable | ) |
启用音频自定义采集模式
开启该模式后,SDK 停止运行原有的音频采集流程,只保留编码和发送能力。
您需要用 sendCustomAudioData() 不断地向 SDK 塞入自己采集的音频数据。
enable | 是否启用,默认值:false |
void enableCustomAudioRendering | ( | bool | enable | ) |
设置推流时混入外部音频的推流音量和播放音量
如果您需要外接一些特定的音频设备,或者希望自己掌控音频的播放逻辑,您可以通过该接口启用音频自定义播放。
启用音频自定义播放后,SDK 将不再调用系统的音频接口播放数据,您需要通过 getCustomAudioRenderingFrame 获取 SDK 要播放的音频帧并自行播放。
enable | 是否启用音频自定义播放,默认为关闭状态。 |
需要您在进入房间前设置才能生效,暂不支持进入房间后再设置。
void enableCustomVideoCapture | ( | bool | enable | ) |
void enableCustomVideoCapture | ( | TRTCVideoStreamType | type, |
bool | enable | ||
) |
启用视频自定义采集模式
开启该模式后,SDK 不再运行原有的视频采集流程,只保留编码和发送能力。
您需要用 sendCustomVideoData() 不断地向 SDK 塞入自己采集的视频画面。
type | 指定视频流类型 |
enable | 是否启用,默认值:false |
void enableMixExternalAudioFrame | ( | bool | enablePublish, |
bool | enablePlayout | ||
) |
控制外部音频是否要混入推流和混入播放
通过 mixExternalAudioFrame() 增加一路音频混合到推流的音频流,同时可以支持本地播放
enablePublish = false, enablePlayout = false时,表示完全关闭这个额外的音频流,即不推流,也不播放
enablePublish | 是否混入推流 true:混入推流;false:不混入推流,默认值:false |
enablePlayout | 是否混入播放 true:混入播放;false:不混入播放,默认值:false |
void enableSmallVideoStream | ( | bool | enable, |
TRTCVideoEncParam^ % | smallVideoParam | ||
) |
开启大小画面双路编码模式
如果当前用户是房间中的主要角色(例如主播、老师、主持人等),并且使用 PC 或者 Mac 环境,可以开启该模式。
开启该模式后,当前用户会同时输出【高清】和【低清】两路视频流(但只有一路音频流)。
对于开启该模式的当前用户,会占用更多的网络带宽,并且会更加消耗 CPU 计算资源。
对于同一房间的远程观众而言:
- 如果用户的下行网络很好,可以选择观看【高清】画面
- 如果用户的下行网络较差,可以选择观看【低清】画面
enable | 是否开启小画面编码,默认值:false |
smallVideoParam | 小流的视频参数 |
void enterRoom | ( | TRTCParams^ % | params, |
TRTCAppScene | scene | ||
) |
void exitRoom | ( | ) |
离开房间
调用 exitRoom() 接口会执行退出房间的相关逻辑,例如释放音视频设备资源和编解码器资源等。
待资源释放完毕,SDK 会通过 TRTCCloudCallback 中的 onExitRoom() 回调通知您。
如果您要再次调用 enterRoom() 或者切换到其他的音视频 SDK,请等待 onExitRoom() 回调到来后再执行相关操作。
否则可能会遇到如摄像头、麦克风设备被强占等各种异常问题。
UInt64 generateCustomPTS | ( | ) |
生成自定义采集时间戳
此函数仅适合自定义视频采集时使用,当您的 App 自己或由第三方美颜 SDK 调用摄像头 API 采集视频时,由于可能引入一些耗时的外部操作(比
为避免发生音画不同步的问题,请按照如下步骤正确使用该接口:
1. 在调用系统相机 API 采集到一帧视频时,额外调用一次 generateCustomPTS() 获得 pts 时间戳。
2. 在调用 sendCustomVideoData() 时,将该帧采集时记录的 pts 时间戳赋值给入参 TRTCVideoFrame 中的 timestamp 字段。
int getAudioCaptureVolume | ( | ) |
获取 SDK 采集音量
ITXAudioEffectManager ^ getAudioEffectManager | ( | ) |
获取音效管理类 ITXAudioEffectManager
该模块是整个 SDK 的音效管理模块,支持如下功能:
- 耳机耳返:麦克风捕捉的声音实时通过耳机播放。
- 混响效果:KTV、小房间、大会堂、低沉、洪亮...
- 变声特效:萝莉、大叔、重金属、外国人...
- 背景音乐:支持在线音乐和本地音乐,支持变速、变调等特效、支持原生和伴奏并播放和循环播放。
- 短音效:鼓掌声、欢笑声等简短的音效文件,对于小于10秒的文件,请将 isShortFile 参数设置为 YES。
int getAudioPlayoutVolume | ( | ) |
获取 SDK 播放音量
UInt32 getBGMDuration | ( | String^ | path | ) |
获取音乐文件总时长,单位毫秒
v7.3 版本弃用,请使用 TXAudioEffectManager getMusicDurationInMS 接口
path | 音乐文件路径,如果 path 为空,那么返回当前正在播放的 music 时长 |
ITRTCDeviceCollection ^ getCameraDevicesList | ( | ) |
获取摄像头设备列表
示例代码:
SDK 维护 ITRTCDeviceCollection 对象的生命周期,使用完毕后请调用 release 方法释放资源。
v8.0 版本弃用,请使用 ITXDeviceManager::getDevicesList 接口
ITRTCDeviceInfo ^ getCurrentCameraDevice | ( | ) |
获取当前使用的摄像头
v8.0 版本弃用,请使用 ITXDeviceManager::getCurrentDevice 接口
ITRTCDeviceInfo ^ getCurrentMicDevice | ( | ) |
获取当前选择的麦克风
v8.0 版本弃用,请使用 ITXDeviceManager::getCurrentDevice 接口
UInt32 getCurrentMicDeviceVolume | ( | ) |
获取系统当前麦克风设备音量
查询的是系统硬件音量大小。
v8.0 版本弃用,请使用 ITXDeviceManager::getCurrentDeviceVolume 接口
ITRTCDeviceInfo ^ getCurrentSpeakerDevice | ( | ) |
获取当前的扬声器设备
v8.0 版本弃用,请使用 ITXDeviceManager::getCurrentDevice 接口
UInt32 getCurrentSpeakerVolume | ( | ) |
获取系统当前扬声器设备音量
查询的是系统硬件音量大小。
v8.0 版本弃用,请使用 ITXDeviceManager::getCurrentVolume 接口
void getCustomAudioRenderingFrame | ( | TRTCAudioFrame ^ | audioFrame | ) |
获取可播放的音频数据
调用该接口之前,您需要先通过 enableCustomAudioRendering 开启音频自定义播放。
参数 TRTCAudioFrame 推荐下列填写方式(其他字段不需要填写):
- sampleRate:采样率,必填,支持 16000、24000、32000、44100、48000。
- channel:声道数,必填,单声道请填1,双声道请填2,双声道时数据是交叉的。
- data 于获取音频数据的 buffer。需要您根据一阵音频帧的帧长度分配好 date 的内存大小。
获取的 PCM 数据支持 10ms 或 20ms 两种帧长,推荐使用 20ms 的帧长。
计算公式为:48000采样率、单声道、且播放时长为 20ms 的一帧音频帧的 buffer
大小为 48000 × 0.02s × 1 × 16bit = 15360bit = 1920字节。
audioFrame | 音频数据帧 |
1. 参数 audioFrame 中的 sampleRate、channel 需提前设置好,同时分配好所需读取帧长的 data 空间。
2. SDK 内部会根据 sampleRate 和 channel 自动填充 data 数据。
3. 建议由系统的音频播放线程直接驱动该函数的调用,在播放完一帧音频之后,即调用该接口获取下一帧可播放的音频数据。
ITXDeviceManager ^ getDeviceManager | ( | ) |
获取设备管理模块
ITRTCDeviceCollection ^ getMicDevicesList | ( | ) |
获取麦克风设备列表
示例代码:
SDK 维护 ITRTCDeviceCollection 对象的生命周期,使用完毕后请调用 release 方法释放资源。
v8.0 版本弃用,请使用 ITXDeviceManager::getDevicesList 接口
ITRTCScreenCaptureSourceList ^ getScreenCaptureSources | ( | SIZE^ % | thumbSize, |
SIZE^ % | iconSize | ||
) |
枚举可分享的屏幕窗口,建议在 startScreenCapture 之前调用
如果您要给您的 App 增加屏幕分享功能,一般需要先显示一个窗口选择界面,这样用户可以选择希望分享的窗口。
通过如下函数,您可以获得可分享窗口的 ID、类型、窗口名称以及缩略图。
拿到这些信息后,您就可以实现一个窗口选择界面,当然,您也可以使用我们在 Demo 源码中已经实现好的一个界面。
返回的列表中包括屏幕和应用窗口,屏幕会在列表的前面几个元素中。
SDK 维护 ITRTCScreenCaptureSourceList 对象的生命周期。
thumbSize | 指定要获取的窗口缩略图大小,缩略图可用于绘制在窗口选择界面上 |
iconSize | 指定要获取的窗口图标大小 |
String ^ getSDKVersion | ( | ) |
获取 SDK 版本信息
ITRTCDeviceCollection ^ getSpeakerDevicesList | ( | ) |
获取扬声器设备列表
示例代码:
SDK 维护 ITRTCDeviceCollection 对象的生命周期,使用完毕后请调用 release 方法释放资源。
v8.0 版本弃用,请使用 ITXDeviceManager::getDevicesList 接口
|
static |
获取 ITRTCCloud 单例对象。
int mixExternalAudioFrame | ( | TRTCAudioFrame ^ | frame | ) |
向 SDK 发送自定义辅流音频数据
RTCAudioFrame 推荐如下填写方式(其他字段不需要填写):
- audioFormat:仅支持 TRTCAudioFrameFormatPCM.
- data:音频帧 buffer。
- length:音频帧数据长度,推荐每帧20ms采样数。【PCM格式、48000采样率、单声道的帧长度:48000 ×
0.02s × 1 × 16bit = 15360bit = 1920字节】。
- sampleRate:采样率,仅支持48000。
- channel:频道数量(如果是立体声,数据是交叉的),单声道:1; 双声道:2。
可以设置 frame 中的 timestamp 为 0,相当于让 SDK 自己设置时间戳,但请“均匀”地控制
mixExternalAudioFrame 的调用间隔,否则会导致声音断断续续。
frame | 音频帧,仅支持 TRTCAudioFrameFormatPCM格式。目前只支持单声道,仅支持48K采样率,TRTCAudioFrameFormatPCM 格式< / param> |
void muteAllRemoteAudio | ( | bool | mute | ) |
静音/取消静音所有用户的声音
mute | true:静音;false:取消静音 |
静音时会停止接收所有用户的远端音频流并停止播放,取消静音时会自动拉取所有用户的远端音频流并进行播放。
void muteAllRemoteVideoStreams | ( | bool | mute | ) |
暂停/恢复接收所有远端视频流
该接口仅暂停/恢复接收所有远端用户的视频流,但并不释放显示资源,所以如果暂停,视频画面会冻屏在 mute 前的最后一帧。
mute | 是否停止接收 |
void muteLocalAudio | ( | bool | mute | ) |
静音/取消静音本地的音频
当静音本地音频后,房间里的其它成员会收到 onUserAudioAvailable(userId, false) 回调通知。
当取消静音本地音频后,房间里的其它成员会收到 onUserAudioAvailable(userId, true) 回调通知。
与 stopLocalAudio 不同之处在于,muteLocalAudio(true) 并不会停止发送音视频数据,而是继续发送码率极低的静音包。
由于 MP4 等视频文件格式,对于音频的连续性是要求很高的,使用 stopLocalAudio 会导致录制出的 MP4 不易播放。
因此在对录制质量要求很高的场景中,建议选择 muteLocalAudio,从而录制出兼容性更好的 MP4 文件。
mute | true:静音;false:取消静音,默认值:false |
void muteLocalVideo | ( | bool | mute | ) |
暂停/恢复推送本地的视频数据(已废弃)
v9.0 版本弃用,请使用 muteLocalVideo(streamType, mute) 接口
void muteLocalVideo | ( | TRTCVideoStreamType | streamType, |
bool | mute | ||
) |
暂停/恢复推送本地的视频数据
当暂停推送本地视频后,房间里的其它成员将会收到 onUserVideoAvailable(userId, false) 回调通知
当恢复推送本地视频后,房间里的其它成员将会收到 onUserVideoAvailable(userId, true) 回调通知
mute | true:暂停;false:恢复,默认值:false |
void muteRemoteAudio | ( | String^ | userId, |
bool | mute | ||
) |
静音/取消静音指定的远端用户的声音
userId | 用户 ID |
mute | true:静音;false:取消静音 |
静音时会停止接收该用户的远端音频流并停止播放,取消静音时会自动拉取该用户的远端音频流并进行播放。
void muteRemoteVideoStream | ( | String ^ | userId, |
bool | mute | ||
) |
暂停/恢复接收指定的远端视频流
v9.0 版本弃用,请使用 muteRemoteVideoStream(userId, streamType, mute) 接口
void muteRemoteVideoStream | ( | String ^ | userId, |
TRTCVideoStreamType | streamType, | ||
bool | mute | ||
) |
暂停/恢复接收指定的远端视频流
该接口仅暂停/恢复接收指定的远端用户的视频流,但并不释放显示资源,所以如果暂停,视频画面会冻屏在 mute 前的最后一帧。
userId | 对方的用户标识 |
streamType | 要暂停/恢复的视频流类型(仅支持 TRTCVideoStreamTypeBig 和 TRTCVideoStreamTypeSub) |
mute | 是否暂停接收 |
该接口支持您在进入房间(enterRoom)前调用,暂停状态会在退出房间(exitRoom)在之后会被重置。
void pauseAudioEffect | ( | int | effectId | ) |
暂停音效
v7.3 版本弃用,请使用 TXAudioEffectManager pausePlayMusic 接口
effectId | 音效 Id |
void pauseBGM | ( | ) |
暂停播放背景音乐
v7.3 版本弃用,请使用 TXAudioEffectManager pausePlayMusic 接口
void pauseScreenCapture | ( | ) |
暂停屏幕分享
void playAudioEffect | ( | TRTCAudioEffectParam^ | effect | ) |
播放音效
v7.3 版本弃用,请使用 TXAudioEffectManager startPlayMusic 接口
每个音效都需要您指定具体的 ID,您可以通过该 ID 对音效的开始、停止、音量等进行设置。
支持的文件格式:aac, mp3。
若您想同时播放多个音效,请分配不同的 ID 进行播放。因为使用同一个 ID 播放不同音效,SDK 将会停止上一个 ID 对应的音效播放,再启动新的音效播放。
effect | 音效 |
void playBGM | ( | String^ | path | ) |
启动播放背景音乐
v7.3 版本弃用,请使用 TXAudioEffectManager startPlayMusic 接口,支持并发播放多个 BGM
path | 音乐文件路径,支持的文件格式:aac, mp3。 |
void removeAllExcludedShareWindow | ( | ) |
将所有窗口从屏幕分享的排除列表中移除
void removeAllIncludedShareWindow | ( | ) |
将所有窗口从屏幕分享的包含列表中移除
该方法只有在 TRTCScreenCaptureSourceInfo 中的 type 指定为 TRTCScreenCaptureSourceTypeWindow 时生效,即分享窗口时生效
void removeCallback | ( | ITRTCCloudCallback^ | callback | ) |
移除事件回调
callback | 事件回调 |
void removeExcludedShareWindow | ( | IntPtr | window | ) |
将指定窗口从屏幕分享的排除列表中移除
window | 不希望分享出去的窗口 |
void removeIncludedShareWindow | ( | IntPtr | window | ) |
将指定窗口从屏幕分享的包含列表中移除
该方法只有在 TRTCScreenCaptureSourceInfo 中的 type 指定为 TRTCScreenCaptureSourceTypeWindow 时生效,即分享窗口时生效
window | 窗口句柄 |
void resumeAudioEffect | ( | int | effectId | ) |
恢复音效
v7.3 版本弃用,请使用 TXAudioEffectManager resumePlayMusic 接口
effectId | 音效 Id |
void resumeBGM | ( | ) |
继续播放背景音乐
v7.3 版本弃用,请使用 TXAudioEffectManager resumePlayMusic 接口
void resumeScreenCapture | ( | ) |
恢复屏幕分享
void selectScreenCaptureTarget | ( | TRTCScreenCaptureSourceInfo^ % | source, |
RECT^ % | captureRect, | ||
bool | captureMouse, | ||
bool | highlightWindow | ||
) |
设置屏幕共享参数
v7.9 版本弃用,请使用 selectScreenCaptureTarget(TRTCScreenCaptureSourceInfo,RECT,TRTCScreenCaptureProperty) 接口
source | 指定分享源 |
captureRect | 指定捕获的区域 |
captureMouse | 指定是否捕获鼠标指针 |
highlightWindow | 指定是否高亮正在共享的窗口,以及当捕获图像被遮挡时高亮遮挡窗口提示用户移走遮挡 |
void selectScreenCaptureTarget | ( | TRTCScreenCaptureSourceInfo^ % | source, |
RECT^ % | captureRect, | ||
TRTCScreenCaptureProperty^ % | property | ||
) |
设置屏幕共享参数,该方法在屏幕共享过程中也可以调用
如果您期望在屏幕分享的过程中,切换想要分享的窗口,可以再次调用这个函数而不需要重新开启屏幕分享。
支持如下四种情况:
-共享整个屏幕:sourceInfoList 中 type 为 Screen 的 source,captureRect 设为{ 0, 0, 0, 0 }
-共享指定区域:sourceInfoList 中 type 为 Screen 的 source,captureRect 设为非 NULL,例如{ 100, 100, 300, 300 }
-共享整个窗口:sourceInfoList 中 type 为 Window 的 source,captureRect 设为{ 0, 0, 0, 0 }
-共享窗口区域:sourceInfoList 中 type 为 Window 的 source,captureRect 设为非 NULL,例如{ 100, 100, 300, 300 }
source | 指定分享源 |
captureRect | 指定捕获的区域 |
property | 指定屏幕分享目标的属性,包括捕获鼠标,高亮捕获窗口等,详情参考 TRTCScreenCaptureProperty 定义 |
void sendCustomAudioData | ( | TRTCAudioFrame^ | frame | ) |
向 SDK 投送自己采集的音频数据
TRTCAudioFrame 推荐如下填写方式:
-audioFormat:音频数据格式,仅支持 TRTCAudioFrameFormatPCM。
-data:音频帧 buffer。
-length:音频帧数据长度,支持[5ms ~ 100ms]帧长,推荐使用20 ms帧长,【48000采样率、单声道的帧长度:48000 × 0.02s × 1 × 16bit = 15360bit = 1920字节】。
-sampleRate:采样率,支持:16000、24000、32000、44100、48000。
-channel:声道数(如果是立体声,数据是交叉的),单声道:1; 双声道:2。
-timestamp:时间戳,单位毫秒(ms),可以设置 timestamp 为0,相当于让 SDK 自己设置时间戳。
参考文档:自定义采集和渲染。
需精准的按每帧时长的间隔调用 sendCustomAudioData,否则会容易触发声音卡顿。
frame | 音频数据 |
bool sendCustomCmdMsg | ( | UInt32 | cmdId, |
array< Byte >^ | data, | ||
UInt32 | dataSize, | ||
bool | reliable, | ||
bool | ordered | ||
) |
发送自定义消息给房间内所有用户
该接口可以借助音视频数据通道向当前房间里的其他用户广播您自定义的数据,但因为复用了音视频数据通道, 请务必严格控制自定义消息的发送频率和消息体的大小,否则会影响音视频数据的质量控制逻辑,造成不确定性的问题。
本接口有以下限制:
-发送消息到房间内所有用户(暂时不支持 Web/小程序端),每秒最多能发送30条消息。
-每个包最大为1KB,超过则很有可能会被中间路由器或者服务器丢弃。
-每个客户端每秒最多能发送总计8KB数据。
-将 reliable 和 ordered 同时设置为 true 或 false,暂不支持交叉设置。
-强烈建议不同类型的消息使用不同的 cmdID,这样可以在要求有序的情况下减小消息时延。
cmdId | 消息 ID,取值范围为1 - 10 |
data | 待发送的消息,最大支持1KB(1000字节)的数据大小 |
dataSize | 待发送的数据大小 |
reliable | 是否可靠发送,可靠发送的代价是会引入一定的延时,因为接收端要暂存一段时间的数据来等待重传 |
ordered | 是否要求有序,即是否要求接收端接收的数据顺序和发送端发送的顺序一致,这会带来一定的接收延时,因为在接收端需要暂存并排序这些消息 |
void sendCustomVideoData | ( | TRTCVideoFrame^ | frame | ) |
向 SDK 投送自己采集的视频数据(已废弃)
v9.0 版本弃用,请使用 sendCustomVideoData(streamType, frame) 接口
void sendCustomVideoData | ( | TRTCVideoStreamType | type, |
TRTCVideoFrame^ | frame | ||
) |
向 SDK 投送自己采集的视频数据
TRTCVideoFrame 推荐如下填写方式(其他字段不需要填写):
-pixelFormat:仅支持 LiteAVVideoPixelFormat_I420。
-bufferType:仅支持 LiteAVVideoBufferType_Buffer。
-data:视频帧 buffer。
-length:视频帧数据长度,I420 格式下,其值等于:width × height × 3 / 2。
-width:视频图像长度。
-height:视频图像宽度。
-timestamp:如果 timestamp 间隔不均匀,会严重影响音画同步和录制出的 MP4 质量。
参考文档:自定义采集和渲染。
- 可以设置 frame 中的 timestamp 为 0,相当于让 SDK 自己设置时间戳,但请“均匀”地控制 sendCustomVideoData 的调用间隔,否则会导致视频帧率不稳定。
type | 视频流类型 |
frame | 视频数据,支持 I420 格式数据。 |
bool sendSEIMsg | ( | array< Byte >^ | data, |
Int32 | dataSize, | ||
Int32 | repeatCount | ||
) |
将小数据量的自定义数据嵌入视频帧中
跟 sendCustomCmdMsg 的原理不同,sendSEIMsg 是将数据直接塞入视频数据头中。因此,即使视频帧被旁路到了直播 CDN 上, 这些数据也会一直存在。但是由于要把数据嵌入视频帧中,所以数据本身不能太大,推荐几个字节就好。
最常见的用法是把自定义的时间戳(timstamp)用 sendSEIMsg 嵌入视频帧中,这种方案的最大好处就是可以实现消息和画面的完美对齐。
本接口有以下限制:
-数据在接口调用完后不会被即时发送出去,而是从下一帧视频帧开始带在视频帧中发送。
-发送消息到房间内所有用户,每秒最多能发送30条消息(与 sendCustomCmdMsg 共享限制)。
-每个包最大为1KB,若发送大量数据,会导致视频码率增大,可能导致视频画质下降甚至卡顿(与 sendCustomCmdMsg 共享限制)。
-每个客户端每秒最多能发送总计8KB数据(与 sendCustomCmdMsg 共享限制)。
-若指定多次发送(repeatCount > 1),则数据会被带在后续的连续 repeatCount 个视频帧中发送出去,同样会导致视频码率增大。
-如果 repeatCount > 1,多次发送,接收消息 onRecvSEIMsg 回调也可能会收到多次相同的消息,需要去重。
data | 待发送的数据,最大支持1kb(1000字节)的数据大小 |
dataSize | 待发送的数据大小 |
repeatCount | 发送数据次数 |
void setAllAudioEffectsVolume | ( | int | volume | ) |
设置所有音效的音量
v7.3 版本弃用,请使用 TXAudioEffectManager setMusicPublishVolume / setMusicPlayoutVolume 接口
该操作会覆盖通过 setAudioEffectVolume 指定的单独音效音量。
volume | 音量大小,取值范围为0 - 100;默认值:100 |
void setAudioCaptureVolume | ( | int | volume | ) |
设置 SDK 采集音量
volume | 音量大小,取值0 - 100,默认值为100 |
void setAudioEffectVolume | ( | int | effectId, |
int | volume | ||
) |
设置音效音量
v7.3 版本弃用,请使用 TXAudioEffectManager setMusicPublishVolume / setMusicPlayoutVolume 接口
会覆盖通过 setAllAudioEffectsVolume 指定的整体音效音量。
effectId | 音效 ID |
volume | 音量大小,取值范围为0 - 100;默认值:100 |
int setAudioFrameCallback | ( | ITRTCAudioFrameCallback^ | callback | ) |
设置音频数据回调
设置此方法,SDK 内部会把声音模块的数据(PCM 格式)回调出来,包括:
-onCapturedAudioFrame:本机麦克风采集到的音频数据
-onPlayAudioFrame:混音前的每一路远程用户的音频数据
-onMixedPlayAudioFrame:各路音频数据混合后送入扬声器播放的音频数据
callback | 声音帧数据(PCM 格式)的回调,callback = nullptr 则停止回调数据 |
void setAudioPlayoutVolume | ( | int | volume | ) |
设置 SDK 播放音量。
该函数会控制最终交给系统播放的声音音量
会影响本地录制的音量大小。
不会影响耳返的音量。
volume | 音量大小,取值0 - 100,默认值为100 |
void setAudioQuality | ( | TRTCAudioQuality | quality | ) |
设置音频质量
主播端的音质越高,观众端的听感越好,但传输所依赖的带宽也就越高,在带宽有限的场景下也更容易出现卡顿。
TRTCCloudDef::TRTCAudioQualitySpeech},流畅:采样率:16k;单声道;音频裸码率:16kbps;适合语音通话为主的场景,比如在线会议,语音通话。
TRTCCloudDef::TRTCAudioQualityDefault},默认:采样率:48k;单声道;音频裸码率:50kbps;SDK 默认的音频质量,如无特殊需求推荐选择之。
TRTCCloudDef::TRTCAudioQualityMusic},高音质:采样率:48k;双声道 + 全频带;音频裸码率:128kbps;适合需要高保真传输音乐的场景,比如K歌、音乐直播等。
v8.0 版本弃用,请使用 startLocalAudio(TRTCAudioQuality) 接口
该方法需要在 startLocalAudio 之前进行设置,否则不会生效。
void setBeautyStyle | ( | TRTCBeautyStyle | style, |
UInt32 | beauty, | ||
UInt32 | white, | ||
UInt32 | ruddiness | ||
) |
设置美颜、美白、红润效果级别
SDK 内部集成了两套风格不同的磨皮算法,一套我们取名叫“光滑”,适用于美女秀场,效果比较明显。
另一套我们取名“自然”,磨皮算法更多地保留了面部细节,主观感受上会更加自然。
style | 美颜风格,光滑或者自然,光滑风格磨皮更加明显,适合娱乐场景。 |
beauty | 美颜级别,取值范围0 - 9,0表示关闭,1 - 9值越大,效果越明显 |
white | 美白级别,取值范围0 - 9,0表示关闭,1 - 9值越大,效果越明显 |
ruddiness | 红润级别,取值范围0 - 9,0表示关闭,1 - 9值越大,效果越明显,该参数暂未生效 |
void setBGMPlayoutVolume | ( | UInt32 | volume | ) |
设置背景音乐本地播放音量的大小
v7.3 版本弃用,请使用 TXAudioEffectManager setMusicPlayoutVolume 接口
播放背景音乐混音时使用,用来控制背景音乐在本地播放时的音量大小。
volume | 音量大小,100为正常音量,取值范围为0 - 100;默认值:100 |
void setBGMPosition | ( | UInt32 | pos | ) |
设置 BGM 播放进度
v7.3 版本弃用,请使用 TXAudioEffectManager seekMusicToPosInMS 接口
pos | 单位毫秒 |
void setBGMPublishVolume | ( | UInt32 | volume | ) |
设置背景音乐远端播放音量的大小
v7.3 版本弃用,请使用 TXAudioEffectManager setMusicPublishVolume 接口
播放背景音乐混音时使用,用来控制背景音乐在远端播放时的音量大小。
volume | 音量大小,100为正常音量,取值范围为0 - 100;默认值:100 |
void setBGMVolume | ( | UInt32 | volume | ) |
设置背景音乐播放音量的大小
v7.3 版本弃用,请使用 TXAudioEffectManager setMusicPublishVolume / setMusicPlayoutVolume 接口
播放背景音乐混音时使用,用来控制背景音乐播放音量的大小,
该接口会同时控制远端播放音量的大小和本地播放音量的大小,
因此调用该接口后,setBGMPlayoutVolume 和 setBGMPublishVolume 设置的音量值会被覆盖
volume | 音量大小,100为正常音量,取值范围为0 - 100;默认值:100 |
void setConsoleEnabled | ( | bool | enabled | ) |
启用或禁用控制台日志打印
enabled | 指定是否启用,默认为禁止状态 |
void setCurrentCameraDevice | ( | String ^ | deviceId | ) |
设置要使用的摄像头
v8.0 版本弃用,请使用 ITXDeviceManager::setCurrentDevice 接口
deviceId | 从 getCameraDevicesList 中得到的设备 ID |
void setCurrentMicDevice | ( | String ^ | micId | ) |
设置要使用的麦克风
选择指定的麦克风作为录音设备,不调用该接口时,默认选择索引为0的麦克风
v8.0 版本弃用,请使用 ITXDeviceManager::setCurrentDevice 接口
micId | 从 getMicDevicesList 中得到的设备 ID |
void setCurrentMicDeviceVolume | ( | UInt32 | volume | ) |
设置系统当前麦克风设备的音量
该接口的功能是调节系统采集音量,如果用户直接调节 WIN 系统设置的采集音量时,该接口的设置结果会被用户的操作所覆盖。
v8.0 版本弃用,请使用 ITXDeviceManager::setCurrentDeviceVolume 接口
volume | 麦克风音量值,范围[0 - 100] |
void setCurrentSpeakerDevice | ( | String ^ | speakerId | ) |
设置要使用的扬声器
v8.0 版本弃用,请使用 ITXDeviceManager::setCurrentDevice 接口
speakerId | 从 getDevicesList 中得到的设备 ID |
void setCurrentSpeakerVolume | ( | UInt32 | volume | ) |
设置系统当前扬声器设备音量
v8.0 版本弃用,请使用 ITXDeviceManager::setCurrentVolume 接口
该接口的功能是调节系统播放音量,如果用户直接调节 WIN 系统设置的播放音量时,该接口的设置结果会被用户的操作所覆盖。
volume | 设置的扬声器音量,范围0 - 100 |
void setDefaultStreamRecvMode | ( | bool | autoRecvAudio, |
bool | autoRecvVideo | ||
) |
设置音视频数据接收模式(需要在进房前设置才能生效)
为实现进房秒开的绝佳体验,SDK 默认进房后自动接收音视频。即在您进房成功的同时,您将立刻收到远端所有用户的音视频数据。
若您没有调用 startRemoteView,视频数据将自动超时取消。
若您主要用于语音聊天等没有自动接收视频数据需求的场景,您可以根据实际需求选择接收模式,以免产生预期之外的视频时长费用。
autoRecvAudio | true:自动接收音频数据;false:需要调用 muteRemoteAudio 进行请求或取消。默认值:true |
autoRecvVideo | true:自动接收视频数据;false:需要调用 startRemoteView/stopRemoteView 进行请求或取消。默认值:true |
需要在进房前设置才能生效。
void setLocalRenderParams | ( | TRTCRenderParams^ % | params | ) |
设置本地图像(主流)的渲染参数
params | 本地图像的参数,详情请参考 TRTCTypeDef.h 中的 TRTCRenderParams 定义 |
int setLocalVideoProcessCallback | ( | TRTCVideoPixelFormat | pixelFormat, |
TRTCVideoBufferType | bufferType, | ||
ITRTCVideoFrameCallback ^ | callback | ||
) |
设置第三方美颜的视频数据回调
设置该回调之后,SDK 会把采集到的视频帧通过您设置的 callback 回调出来,用于第三方美颜组件进行二次处理,之后 SDK 会将处理后的视频帧进行编码和发送。
pixelFormat | 指定回调的像素格式 |
bufferType | 指定视频数据结构类型 |
callback | 自定义美颜回调 |
int setLocalVideoRenderCallback | ( | TRTCVideoPixelFormat | pixelFormat, |
TRTCVideoBufferType | bufferType, | ||
ITRTCVideoRenderCallback^ | callback | ||
) |
设置本地视频自定义渲染
设置此方法,SDK 内部会把采集到的数据回调出来,SDK 跳过 HWND 渲染逻辑
调用 setLocalVideoRenderCallback(TRTCVideoPixelFormat_Unknown, TRTCVideoBufferType_Unknown, nullptr) 停止回调
pixelFormat | 指定回调的像素格式 |
bufferType | 指定视频数据结构类型 |
callback | 自定义渲染回调 |
void setLocalViewFillMode | ( | TRTCVideoFillMode | mode | ) |
设置本地图像的渲染模式
v8.0 版本弃用,请使用 setLocalRenderParams(TRTCRenderParams) 接口
mode | 填充(画面可能会被拉伸裁剪)或适应(画面可能会有黑边),默认值:TRTCVideoFillMode_Fit |
void setLocalViewMirror | ( | bool | mirror | ) |
设置本地摄像头预览画面的镜像模式
v8.0 版本弃用,请使用 setLocalRenderParams(TRTCRenderParams) 接口
mirror | 镜像模式,默认值:false(非镜像模式) |
void setLocalViewRotation | ( | TRTCVideoRotation | rotation | ) |
设置本地图像的顺时针旋转角度
v8.0 版本弃用,请使用 setLocalRenderParams(TRTCRenderParams) 接口
rotation | 支持 TRTCVideoRotation90 、 TRTCVideoRotation180 以及 TRTCVideoRotation270 旋转角度,默认值:TRTCVideoRotation0 |
void setLogCallback | ( | ITRTCLogCallback^ | callback | ) |
设置日志回调
callback | 日志回调 |
void setLogCompressEnabled | ( | bool | enabled | ) |
启用或禁用 Log 的本地压缩
开启压缩后,Log 存储体积明显减小,但需要腾讯云提供的 Python 脚本解压后才能阅读。
禁用压缩后,Log 采用明文存储,可以直接用记事本打开阅读,但占用空间较大。
enabled | 指定是否启用,默认为禁止状态 |
void setLogDirPath | ( | String^ | path | ) |
设置日志保存路径
日志文件默认保存在 C:/Users/[系统用户名]/AppData/Roaming/Tencent/liteav/log,即 appdata%/Tencent/liteav/log 下,如需修改,必须在所有方法前调用。
path | 存储日志的文件夹,例如 "D:\\Log",UTF-8 编码 |
void setLogLevel | ( | TRTCLogLevel | level | ) |
设置 Log 输出级别
level | level 参见 TRTCLogLevel,默认值:TRTCLogLevelNone |
void setMicVolumeOnMixing | ( | UInt32 | volume | ) |
设置麦克风的音量大小
从 v6.9 版本开始废弃,请使用 setAudioCaptureVolume 接口替代。
void setMixExternalAudioVolume | ( | int | publishVolume, |
int | playoutVolume | ||
) |
设置推流时混入外部音频的推流音量和播放音量
publishVolume | 设置的推流音量大小,范围0 - 100, -1表示不改变 |
playoutVolume | 设置的播放音量大小,范围0 - 100, -1表示不改变 |
void setMixTranscodingConfig | ( | TRTCTranscodingConfig^ | config | ) |
设置云端的混流转码参数
如果您在实时音视频 控制台 中的功能配置页开启了“启用旁路推流”功能, 房间里的每一路画面都会有一个默认的直播 CDN 地址。 一个直播间中可能有不止一位主播,而且每个主播都有自己的画面和声音,但对于 CDN 观众来说,他们只需要一路直播流, 所以您需要将多路音视频流混成一路标准的直播流,这就需要混流转码。
当您调用 setMixTranscodingConfig() 接口时,SDK 会向腾讯云的转码服务器发送一条指令,目的是将房间里的多路音视频流混合为一路, 您可以通过 mixUsers 参数来调整每一路画面的位置,以及是否只混合声音,也可以通过 videoWidth、videoHeight、videoBitrate 等参数控制混合音视频流的编码参数。
【画面1】=> 解码 ====> \
\
【画面2】=> 解码 => 画面混合 => 编码 => 【混合后的画面】
/
【画面3】=> 解码 ====> /
【声音1】=> 解码 ====> \
\
【声音2】=> 解码 => 声音混合 => 编码 => 【混合后的声音
/
【声音3】=> 解码 ====> /
参考文档:云端混流转码。
关于云端混流的注意事项:
config | 请参考 TRTCCloudDef.h 中关于 TRTCTranscodingConfig 的介绍。如果传入 NULL 取消云端混流转码。 |
void setNetworkQosParam | ( | TRTCNetworkQosParam^ % | params | ) |
设置网络流控相关参数
该设置决定了 SDK 在各种网络环境下的调控策略(例如弱网下是“保清晰”还是“保流畅”)
params | 网络流控参数,详情请参考 TRTCCloudDef.h 中 TRTCNetworkQosParam 的定义 |
void setPriorRemoteVideoStreamType | ( | TRTCVideoStreamType | type | ) |
设定观看方优先选择的视频质量
低端设备推荐优先选择低清晰度的小画面。
如果对方没有开启双路视频模式,则此操作无效。
v8.0 版本弃用,请使用 startRemoteView(userId,streamType,rendView) 接口
type | 默认观看大画面还是小画面,默认为 TRTCVideoStreamTypeBig |
void setRemoteAudioVolume | ( | String ^ | userId, |
int | volume | ||
) |
设置某个远程用户的播放音量
userId | 远程用户 ID |
volume | 音量大小,100为原始音量,范围是:[0 ~ 150],默认值为100 |
void setRemoteRenderParams | ( | String^ | userId, |
TRTCVideoStreamType | streamType, | ||
TRTCRenderParams^ % | params | ||
) |
设置远端图像的渲染模式
userId | 对应的远端视频流用户ID |
streamType | 远端图像的视频流类型,详见 TRTCVideoStreamType 定义 |
params | 远端图像的参数,详情请参考 TRTCTypeDef.h 中的 TRTCRenderParams 定义 |
void setRemoteSubStreamViewFillMode | ( | String ^ | userId, |
TRTCVideoFillMode | mode | ||
) |
设置辅路画面(TRTCVideoStreamTypeSub,一般用于屏幕分享)的显示模式
v8.0 版本弃用,请使用 setRemoteRenderParams(userId,streamType,param) 接口
- setRemoteViewFillMode() 用于设置远端主路画面(TRTCVideoStreamTypeBig,一般用于摄像头)的显示模式。
- setRemoteSubStreamViewFillMode() 用于设置远端辅路画面(TRTCVideoStreamTypeSub,一般用于屏幕分享)的显示模式。
userId | 用户的 ID |
mode | 填充(画面可能会被拉伸裁剪)或适应(画面可能会有黑边),默认值:TRTCVideoFillMode_Fit |
void setRemoteSubStreamViewRotation | ( | String ^ | userId, |
TRTCVideoRotation | rotation | ||
) |
设置辅路画面(TRTCVideoStreamTypeSub,一般用于屏幕分享)的顺时针旋转角度
v8.0 版本弃用,请使用 setRemoteRenderParams(userId,streamType,param) 接口
- setRemoteViewRotation() 用于设置远端主路画面(TRTCVideoStreamTypeBig,一般用于摄像头)的旋转角度。
- setRemoteSubStreamViewRotation() 用于设置远端辅路画面(TRTCVideoStreamTypeSub,一般用于屏幕分享)的旋转角度。
userId | 用户的 ID |
rotation | 支持90、180、270旋转角度 |
int setRemoteVideoRenderCallback | ( | String^ | userId, |
TRTCVideoPixelFormat | pixelFormat, | ||
TRTCVideoBufferType | bufferType, | ||
ITRTCVideoRenderCallback^ | callback | ||
) |
设置远端视频自定义渲染
此方法同 setLocalVideoRenderDelegate,区别在于一个是本地画面的渲染回调, 一个是远程画面的渲染回调。
设置此方法,SDK 内部会把远端的数据解码后回调出来,SDK 跳过 HWND 渲染逻辑
调用 setRemoteVideoRenderCallback(userId, TRTCVideoPixelFormat_Unknown, TRTCVideoBufferType_Unknown, nullptr) 停止回调。
userId | 用户标识 |
pixelFormat | 指定回调的像素格式 |
bufferType | 指定视频数据结构类型 |
callback | 自定义渲染回调 |
void setRemoteVideoStreamType | ( | String ^ | userId, |
TRTCVideoStreamType | type | ||
) |
选定观看指定 userId 的大画面还是小画面
此功能需要该 userId 通过 enableEncSmallVideoStream 提前开启双路编码模式。
如果该 userId 没有开启双路编码模式,则此操作无效。
userId | 用户 ID |
type | 视频流类型,即选择看大画面还是小画面,默认为 TRTCVideoStreamTypeBig |
void setRemoteViewFillMode | ( | String ^ | userId, |
TRTCVideoFillMode | mode | ||
) |
设置远端图像的渲染模式
v8.0 版本弃用,请使用 setRemoteRenderParams(userId,streamType,param) 接口
userId | 用户 ID |
mode | 填充(画面可能会被拉伸裁剪)或适应(画面可能会有黑边),默认值:TRTCVideoFillMode_Fit |
void setRemoteViewRotation | ( | String ^ | userId, |
TRTCVideoRotation | rotation | ||
) |
设置远端图像的顺时针旋转角度
v8.0 版本弃用,请使用 setRemoteRenderParams(userId,streamType,param) 接口
userId | 用户 ID |
rotation | 支持 TRTCVideoRotation90 、 TRTCVideoRotation180 以及 TRTCVideoRotation270 旋转角度,默认值:TRTCVideoRotation0 |
void setSubStreamEncoderParam | ( | TRTCVideoEncParam^% | params | ) |
设置屏幕分享的编码器参数
- setVideoEncoderParam() 用于设置远端主路画面(TRTCVideoStreamTypeBig,一般用于摄像头)的编码参数。
- setSubStreamEncoderParam() 用于设置远端辅路画面(TRTCVideoStreamTypeSub,一般用于屏幕分享)的编码参数。
该设置决定远端用户看到的画面质量,同时也是云端录制出的视频文件的画面质量。
即使使用主路传输屏幕分享的数据(在调用 startScreenCapture 时设置 type=TRTCVideoStreamTypeBig),依然要使用此接口更新屏幕分享的编码参数。
params | 辅流编码参数,详情请参考 TRTCCloudDef.h 中的 TRTCVideoEncParam 定义 |
void setSubStreamMixVolume | ( | UInt32 | volume | ) |
设置屏幕分享的混音音量大小
这个数值越高,屏幕分享音量的占比就越高,麦克风音量占比就越小,所以不推荐设置得太大,否则麦克风的声音就被压制了。
volume | 设置的混音音量大小,范围0 - 100 |
void setSystemAudioLoopbackVolume | ( | UInt32 | volume | ) |
设置系统声音采集的音量。
volume | 音量大小,取值范围为0 - 100。 |
void setVideoEncoderMirror | ( | bool | mirror | ) |
设置编码器输出的画面镜像模式
该接口不改变本地摄像头的预览画面,但会改变另一端用户看到的(以及服务器录制的)画面效果。
mirror | 是否开启远端镜像, true:远端画面镜像;false:远端画面非镜像。默认值:false |
void setVideoEncoderParam | ( | TRTCVideoEncParam^ % | params | ) |
设置视频编码器相关参数
该设置决定了远端用户看到的画面质量(同时也是云端录制出的视频文件的画面质量)
params | 视频编码参数,详情请参考 TRTCCloudDef.h 中 TRTCVideoEncParam 的定义 |
void setVideoEncoderRotation | ( | TRTCVideoRotation | rotation | ) |
设置视频编码输出的画面方向,即设置远端用户观看到的和服务器录制的画面方向
rotation | 目前支持 TRTCVideoRotation0 和 TRTCVideoRotation180 旋转角度,默认值:TRTCVideoRotation0 |
void setWaterMark | ( | TRTCVideoStreamType | streamType, |
String^ | srcData, | ||
TRTCWaterMarkSrcType | srcType, | ||
UInt32 | nWidth, | ||
UInt32 | nHeight, | ||
float | xOffset, | ||
float | yOffset, | ||
float | fWidthRatio | ||
) |
设置水印
水印的位置是通过 xOffset, yOffset, fWidthRatio 来指定的。
-xOffset:水印的坐标,取值范围为0 - 1的浮点数。
-yOffset:水印的坐标,取值范围为0 - 1的浮点数。
-fWidthRatio:水印的大小比例,取值范围为0 - 1的浮点数。
只支持主路视频流
streamType | 要设置水印的流类型(TRTCVideoStreamTypeBig、TRTCVideoStreamTypeSub) |
srcData | 水印图片源数据(传 NULL 表示去掉水印) |
srcType | 水印图片源数据类型(传 NULL 时忽略该参数) |
nWidth | 水印图片像素宽度(源数据为文件路径时忽略该参数) |
nHeight | 水印图片像素高度(源数据为文件路径时忽略该参数) |
xOffset | 水印显示的左上角 x 轴偏移 |
yOffset | 水印显示的左上角 y 轴偏移 |
fWidthRatio | 水印显示的宽度占画面宽度比例(水印按该参数等比例缩放显示) |
void showDebugView | ( | int | showType | ) |
显示仪表盘
仪表盘是状态统计和事件消息浮层 view,方便调试。
showType | 0:不显示;1:显示精简版;2:显示全量版,默认为不显示 |
void snapshotVideo | ( | String^ | userId, |
TRTCVideoStreamType | streamType, | ||
TRTCSnapshotSourceType | sourceType | ||
) |
视频画面截图
截取本地主路、本地辅路、远程主路和远端辅流的视频画面,并通过 ITRTCCloudCallback 的 onSnapshotComplete 回调返回截图画面的数据给您。
userId | 用户 ID,空字符串表示截取本地画面 |
streamType | 视频流类型,支持摄像头画面(TRTCVideoStreamTypeBig)和屏幕分享画面(TRTCVideoStreamTypeSub) |
sourceType | 视频截图来源类型,Windows 端只支持 TRTCSnapshotSourceTypeStream |
int startAudioRecording | ( | TRTCAudioRecordingParams^ % | audioRecordingParams | ) |
开始录音
该方法调用后,SDK 会将通话过程中的所有音频(包括本地音频,远端音频,BGM等)录制到一个文件里。
无论是否进房,调用该接口都生效。
如果调用 exitRoom 时还在录音,录音会自动停止。
audioRecordingParams | 录音参数,请参考 TRTCAudioRecordingParams |
void startCameraDeviceTest | ( | IntPtr | rendHwnd | ) |
开始进行摄像头测试
会触发 onFirstVideoFrame 回调接口
v8.0 版本弃用,请使用 ITXDeviceManager::startCameraDeviceTest 接口
在测试过程中可以使用 setCurrentCameraDevice 接口切换摄像头。
rendHwnd | 承载预览画面的窗口句柄 |
void startLocalAudio | ( | ) |
开启本地音频的采集和上行
该函数会启动麦克风采集,并将音频数据传输给房间里的其他用户。
SDK 不会默认开启本地音频采集和上行,您需要调用该函数开启,否则房间里的其他用户将无法听到您的声音。
v8.0 版本弃用,请使用 startLocalAudio(TRTCAudioQuality) 接口
TRTC SDK 并不会默认打开本地的麦克风采集。
void startLocalAudio | ( | TRTCAudioQuality | quality | ) |
开启本地音频的采集和上行
该函数会启动麦克风采集,并将音频数据传输给房间里的其他用户。
SDK 并不会默认开启本地的音频上行,也就说,如果您不调用这个函数,房间里的其他用户就听不到您的声音。
TRTC SDK 并不会默认打开本地的麦克风采集。
quality | 声音质量,参见 TRTCAudioQuality |
void startLocalPreview | ( | IntPtr | rendView | ) |
开启本地视频的预览画面
这个接口会启动默认的摄像头,可以通过 setCurrentCameraDevice 接口选用其他摄像头
当开始渲染首帧摄像头画面时,您会收到 ITRTCCloudCallback 中的 onFirstVideoFrame(null) 回调。
rendView | 承载预览画面的控件 |
void startLocalRecording | ( | TRTCLocalRecordingParams^ % | params | ) |
开启本地录制
volume | 录制参数 |
void startMicDeviceTest | ( | UInt32 | interval | ) |
开启麦克风测试
回调接口 onTestMicVolume 获取测试数据
该方法测试麦克风是否能正常工作,volume 的取值范围为0 - 100。
v8.0 版本弃用,请使用 ITXDeviceManager::startMicDeviceTest 接口
interval | 反馈音量提示的时间间隔(ms),建议设置到大于 200 毫秒 |
void startPublishCDNStream | ( | TRTCPublishCDNParam^ % | param | ) |
开始向友商云的直播 CDN 转推
该接口跟 startPublishing() 类似,但 startPublishCDNStream() 支持向非腾讯云的直播 CDN 转推。
使用 startPublishing() 绑定腾讯云直播 CDN 不收取额外的费用,但使用 startPublishCDNStream() 绑定非腾讯云直播 CDN 需要收取转推费用。
param | param param CDN 转推参数,请参考 TRTCTypeDef.h 中关于 TRTCPublishCDNParam 的介绍。 |
void startPublishing | ( | String^ | streamId, |
TRTCVideoStreamType | type | ||
) |
开始向腾讯云的直播 CDN 推流
该接口会指定当前用户的音视频流在腾讯云 CDN 所对应的 StreamId,进而可以指定当前用户的 CDN 播放地址。
例如:如果我们采用如下代码设置当前用户的主画面 StreamId 为 user_stream_001,那么该用户主画面对应的 CDN 播放地址为:
“http://yourdomain/live/user_stream_001.flv”,其中 yourdomain 为您自己备案的播放域名,
您可以在直播控制台 配置您的播放域名,腾讯云不提供默认的播放域名。
您也可以在设置 enterRoom 的参数 TRTCParams 时指定 streamId, 而且我们更推荐您采用这种方案。
您需要先在实时音视频 控制台 中的功能配置页开启“启用旁路推流”才能生效。
streamId | 自定义流 ID |
type | 仅支持 TRTCVideoStreamTypeBig 和 TRTCVideoStreamTypeSub。 |
void startRemoteSubStreamView | ( | String ^ | userId, |
IntPtr | rendHwnd | ||
) |
开始显示远端用户的辅路画面(TRTCVideoStreamTypeSub,一般用于屏幕分享)
v8.0 版本弃用,请使用 startRemoteView(userId,streamType,rendView) 接口
- startRemoteView() 用于显示主路画面(TRTCVideoStreamTypeBig,一般用于摄像头)。
- startRemoteSubStreamView() 用于显示辅路画面(TRTCVideoStreamTypeSub,一般用于屏幕分享)。
请在 onUserSubStreamAvailable 回调后再调用这个接口。
userId | 对方的用户标识 |
rendHwnd | 渲染画面的 HWND |
void startRemoteView | ( | String ^ | userId, |
IntPtr | rendHwnd | ||
) |
开始显示远端视频画面
v8.0 版本弃用,请使用 startRemoteView(userId,streamType,rendView) 接口
userId | 对方的用户标识 |
rendHwnd | 承载预览画面的窗口句柄 |
void startRemoteView | ( | String ^ | userId, |
TRTCVideoStreamType | streamType, | ||
IntPtr | rendView | ||
) |
开始拉取并显示指定用户的远端画面
该函数会拉取指定 userid 的视频流显示在您指定的 view 控件上,您可以通过 setRemoteRenderParams 设置显示模式。
- 如果您提前知道房间中某个 userid 正在推流,可以直接调用 startRemoteView 显示该用户的远端画面。
- 如果您不知道房间中有哪些用户开启了视频,可以在 enterRoom 后等待来自 SDK 的 onUserVideoAvailable(userId, true) 回调通知。
调用 startRemoteView 只是启动拉取,此时画面还需要加载,当加载完毕后 ITRTCCloudCallback 会通过 onFirstVideoFrame(userId) 通知您。
userId | 指定远端用户的 userId |
streamType | 指定要观看 userId 的视频流类型: |
- 高清大画面:(TRTCVideoStreamTypeBig)
- 低清小画面:(TRTCVideoStreamTypeSmall)
- 辅流(屏幕分享):(TRTCVideoStreamTypeSub)
rendView | 承载视频画面的控件 |
注意几点规则需要您关注:
1. SDK 支持同时观看某 userid 的大画面和辅路,或者小画面和辅路,但不支持同时观看大画面和小画面。
2. 只有当指定的 userid 通过 enableEncSmallVideoStream 开启双路编码后,才能观看该用户的小画面。
3. 如果该用户的小画面不存在,则默认切换到大画面。
void startScreenCapture | ( | IntPtr | rendHwnd | ) |
启动屏幕分享
从 v7.2 版本开始废弃,请使用 startScreenCapture(HWND rendHwnd, TRTCVideoStreamType type, TRTCVideoEncParam* params) 接口替代。
void startScreenCapture | ( | IntPtr | rendView, |
TRTCVideoStreamType | type, | ||
TRTCVideoEncParam^ | params | ||
) |
启动屏幕分享
一个用户同时最多只能上传一条主路(TRTCVideoStreamTypeBig)画面和一条辅路(TRTCVideoStreamTypeSub)画面, 默认情况下,屏幕分享使用辅路画面,如果使用主路画面,建议您提前停止摄像头采集(stopLocalPreview)避免相互冲突。 /remarks>
rendView | 承载预览画面的 HWND,可以设置为 nullptr,表示不显示屏幕分享的预览效果。 |
type | 屏幕分享使用的线路,可以设置为主路(TRTCVideoStreamTypeBig)或者辅路(TRTCVideoStreamTypeSub),默认使用辅路。 |
params | 屏幕分享的画面编码参数,可以设置为 nullptr,表示让 SDK 选择最佳的编码参数(分辨率、码率等)。 |
void startSpeakerDeviceTest | ( | String ^ | testAudioFilePath | ) |
开启扬声器测试
回调接口 onTestSpeakerVolume 获取测试数据
该方法播放指定的音频文件测试播放设备是否能正常工作。如果能听到声音,说明播放设备能正常工作。
v8.0 版本弃用,请使用 ITXDeviceManager::startSpeakerDeviceTest 接口
testAudioFilePath | 音频文件的绝对路径,路径字符串使用 UTF-8 编码格式,支持文件格式:WAV、MP3 |
void startSpeedTest | ( | UInt32 | sdkAppId, |
String^ | userId, | ||
String^ | userSig | ||
) |
开始进行网络测速(视频通话期间请勿测试,以免影响通话质量)
测速结果将会用于优化 SDK 接下来的服务器选择策略,因此推荐您在用户首次通话前先进行一次测速,这将有助于我们选择最佳的服务器。
同时,如果测试结果非常不理想,您可以通过醒目的 UI 提示用户选择更好的网络。
测速本身会消耗一定的流量,所以也会产生少量额外的流量费用。
sdkAppId | 应用标识 |
userId | 用户标识 |
userSig | 用户签名 |
void startSystemAudioLoopback | ( | String ^ | deviceName | ) |
打开系统声音采集
该接口会从电脑的声卡中采集音频数据,并将其混入到 SDK 当前的音频数据流中,从而使房间中的其他用户也能听到主播的电脑所播放出的声音。
在线教育场景中,老师可以使用此功能让 SDK 采集教学影片中的声音,并广播给同房间中的学生。
音乐直播场景中,主播可以使用此功能让 SDK 采集音乐播放器中的音乐,从而为自己的直播间增加背景音乐。
deviceName | deviceName 您可以指定该参数为空置(nullptr),代表让 SDK 采集整个系统的声音。在 Windows 平台下,您也可以将参数 deviceName设置为某个应用程序的可执行文件(如 QQMuisc.exe)的绝对路径,此时 SDK只会采集该应用程序的声音(仅支持 32 位版本的 SDK)。您也可以指定该参数为某个扬声器设备的名称或PID来采集特定扬声器声音(通过接口 {@linkXDeviceManager} 中的 getDevicesList 接口,可以获取类型为 {@linkTXMediaDeviceTypeSpeaker} 的扬声器设备) |
void stopAllAudioEffects | ( | ) |
停止所有音效
v7.3 版本弃用,请使用 TXAudioEffectManager stopPlayMusic 接口
void stopAllRemoteView | ( | ) |
停止显示所有远端视频画面,同时不再拉取远端用户的视频数据流
如果有屏幕分享的画面在显示,则屏幕分享的画面也会一并被关闭
void stopAudioEffect | ( | int | effectId | ) |
停止音效
v7.3 版本弃用,请使用 TXAudioEffectManager stopPlayMusic 接口
effectId | 音效 ID |
void stopAudioRecording | ( | ) |
停止录音
如果调用 exitRoom 时还在录音,录音会自动停止。
void stopBGM | ( | ) |
停止播放背景音乐
v7.3 版本弃用,请使用 TXAudioEffectManager stopPlayMusic 接口
void stopCameraDeviceTest | ( | ) |
停止摄像头测试
v8.0 版本弃用,请使用 ITXDeviceManager::stopCameraDeviceTest 接口
void stopLocalAudio | ( | ) |
关闭本地音频的采集和上行
当关闭本地音频的采集和上行,房间里的其它成员会收到 onUserAudioAvailable(false) 回调通知。
void stopLocalPreview | ( | ) |
停止本地视频采集及预览
void stopLocalRecording | ( | ) |
停止本地录制
void stopMicDeviceTest | ( | ) |
停止麦克风测试
v8.0 版本弃用,请使用 ITXDeviceManager::stopMicDeviceTest 接口
void stopPublishCDNStream | ( | ) |
停止向非腾讯云地址转推
void stopPublishing | ( | ) |
停止向腾讯云的直播 CDN 推流
void stopRemoteSubStreamView | ( | String ^ | userId | ) |
停止显示远端用户的辅路画面(TRTCVideoStreamTypeSub,一般用于屏幕分享)。
v8.0 版本弃用,请使用 stopRemoteView(userId,streamType) 接口
userId | 对方的用户标识 |
void stopRemoteView | ( | String ^ | userId | ) |
停止显示远端视频画面,同时不再拉取远端用户的视频数据流
v8.0 版本弃用,请使用 stopRemoteView(userId,streamType) 接口
调用此接口后,SDK 会停止接收该用户的远程视频流,同时会清理相关的视频显示资源。
userId | 对方的用户标识 |
void stopRemoteView | ( | String ^ | userId, |
TRTCVideoStreamType | streamType | ||
) |
停止显示远端视频画面,同时不再拉取远端用户的视频数据流
调用此接口后,SDK 会停止接收该用户的远程视频流,同时会清理相关的视频显示资源。
userId | 指定远端用户的 userId |
streamType | 指定要停止观看的 userId 的视频流类型 |
void stopScreenCapture | ( | ) |
停止屏幕采集
void stopSpeakerDeviceTest | ( | ) |
停止扬声器测试
v8.0 版本弃用,请使用 ITXDeviceManager::stopSpeakerDeviceTest 接口
void stopSpeedTest | ( | ) |
停止网络测速
void stopSystemAudioLoopback | ( | ) |
关闭系统声音采集。
void switchRole | ( | TRTCRoleType | role | ) |
切换角色,仅适用于直播场景(TRTCAppSceneLIVE 和 TRTCAppSceneVoiceChatRoom)
在直播场景下,一个用户可能需要在“观众”和“主播”之间来回切换。
您可以在进房前通过 TRTCParams 中的 role 字段确定角色,也可以通过 switchRole 在进房后切换角色。
role | 目标角色,默认为主播:
|
void switchRoom | ( | TRTCSwitchRoomConfig ^ % | config | ) |
切换房间
调用该接口后,用户会先退出原来的房间并快速进入 TRTCSwitchRoomConfig 中指定的新房间:
相比于直接调用 exitRoom + enterRoom 的方式,switchRoom 接口对主播更加友好,因为 switchRoom 不会停止主播端视频的采集和预览。
接口调用结果会通过 ITRTCCloudCallback 中的 onSwitchRoom(errCode, errMsg) 回调通知给您。
config | 房间切换参数,请参考 TRTCSwitchRoomConfig |
void updateLocalView | ( | IntPtr | rendView | ) |
更新本地视频预览画面的窗口
rendView | 承载预览画面的控件 |
void updateRemoteView | ( | String ^ | userId, |
TRTCVideoStreamType | streamType, | ||
IntPtr | rendView | ||
) |
更新远端视频渲染的窗口
userId | 对方的用户标识 |
streamType | 要设置预览窗口的流类型(TRTCVideoStreamTypeBig、TRTCVideoStreamTypeSub) |
rendView | 承载预览画面的控件 |