NERtc Windows SDK
V4.6.20
|
#include <nertc_channel.h>
IRtcChannel 类在指定房间中实现实时音视频功能。通过创建多个 IRtcChannel 对象,用户可以同时加入多个房间。
|
pure virtual |
添加房间推流任务,成功添加后当前用户可以收到该直播流的状态通知。
[in] | info | 直播任务信息。详细信息请参考 NERtcLiveStreamTaskInfo |
|
pure virtual |
调节本地播放的指定远端用户的信号音量。
加入房间后,您可以多次调用该方法设置本地播放的不同远端用户的音量;也可以反复调节本地播放的某个远端用户的音量。
uid | 远端用户 ID。 |
volume | 播放音量,取值范围为 [0,100]。
|
|
pure virtual |
设置是否开启视频大小流模式。
该方法设置单流或者双流模式。发送端开启双流模式后,接收端可以选择接收大流还是小流。其中,大流指高分辨率、高码率的视频流,小流指低分辨率、低码率的视频流。
[in] | enable | 指定是否开启双流模式。
|
|
pure virtual |
开启/关闭本地音频采集和发送。
该方法可以重新开启本地语音功能,重新开始本地音频采集及处理。
该方法不影响接收或播放远端音频流。
成功调用该方法后,房间内其他用户触发 onUserAudioStart 或 onUserAudioStop 回调。
[in] | enabled |
|
|
pure virtual |
开启或关闭音频辅流。
开启时远端会收到 onUserSubStreamAudioStart,关闭时远端会收到 onUserSubStreamAudioStop。
[in] | enabled | 是否开启音频辅流。
|
|
pure virtual |
开启或关闭本地视频采集和渲染。
该方法启用本地视频采集功能。
[in] | enabled | 是否启用本地视频采集和渲染:
|
|
pure virtual |
开启或关闭本地视频的采集与发送。
通过主流或辅流视频通道进行本地视频流的采集与发送。
参数名称 | 类型 | 描述 |
---|---|---|
type | NERtcVideoStreamType | 视频通道类型:
|
enabled | bool | 是否开启本地视频采集与发送:
|
|
pure virtual |
@if English Publishes or unpublishes the local audio stream. <br>When a user joins a room, the feature is enabled by default. <br>The method does not affect receiving or playing the remote audio stream. The enableLocalAudio(false) method is suitable for scenarios where clients only receives remote media streams and does not publish any local streams. @note - The method controls data transmitted over the main stream - The method can be called before or after a user joins a room. @since V4.6.10 @param enabled specifies whether to publish the local audio stream. - true(default): publishes the local audio stream. - false: unpublishes the local audio stream. @param mediaType media type. Audio type is supported. @return - 0: success - Others: failure @endif @if Chinese 开启或关闭本地媒体流(主流)的发送。 <br>该方法用于开始或停止向网络发送本地音频或视频数据。 <br>该方法不影响接收或播放远端媒体流,也不会影响本地音频或视频的采集状态。 @since V4.6.10 @note - 该方法暂时仅支持控制音频流的发送。 - 该方法在加入房间前后均可调用。 - 停止发送媒体流的状态会在通话结束后被重置为允许发送。 - 成功调用该方法切换本地用户的发流状态后,房间内其他用户会收到 \ref IRtcChannelEventHandler::onUserAudioStart "onUserAudioStart"(开启发送音频)或 \ref IRtcChannelEventHandler::onUserAudioStop "onUserAudioStop"
(停止发送音频)的回调。
enabled | 是否发布本地媒体流。
|
media_type | 媒体发布类型,暂时仅支持音频。 |
|
pure virtual |
获取当前房间名。
|
pure virtual |
获取当前房间连接状态。
|
pure virtual |
加入音视频房间。
[in] | token | 安全认证签名(NERTC Token)。可设置为:
|
|
pure virtual |
离开房间,即挂断或退出通话。
结束通话时,必须调用 leaveChannel 结束通话,否则无法开始下一次通话。
成功调用该方法离开房间后,本地会触发 onLeaveChannel 回调,远端会触发 onUserLeft 回调。
|
pure virtual |
开启或关闭本地音频主流的发送。
该方法用于向网络发送或取消发送本地音频数据。
该方法不影响接收或播放远端音频流,也不会影响本地音频的采集状态。
mute | 是否开启本地音频的发送。
|
|
pure virtual |
静音或解除静音本地上行的音频辅流。
mute | 是否静音本地音频辅流发送。
|
|
pure virtual |
取消或恢复发布本地视频流。
[in] | mute | 是否启用本地视频采集。
|
|
pure virtual |
取消或恢复发布本地视频。
调用该方法取消发布本地视频主流或辅流后,SDK 不再发送本地视频流。
参数名称 | 类型 | 描述 |
---|---|---|
type | NERtcVideoStreamType | 视频通道类型:
|
mute | bool | 是否取消发布本地视频流:
|
|
pure virtual |
暂停屏幕共享。
|
pure virtual |
销毁 IRtcChannel 实例,释放资源。
|
pure virtual |
删除房间推流任务。
[in] | task_id | 直播任务 ID。 |
|
pure virtual |
恢复屏幕共享。
在 Windows 平台中,远端会触发 onScreenCaptureStatus 回调。
|
pure virtual |
发送媒体补充增强信息(SEI)。 在本端推流传输视频流数据同时,发送流媒体补充增强信息来同步一些其他附加信息。当推流方发送 SEI 后,拉流方可通过监听 IRtcEngineEventHandlerEx::onRecvSEIMsg 的回调获取 SEI 内容。
data | 自定义 SEI 数据。 |
length | 自定义 SEI 数据长度,最大不超过 4096 字节。 |
|
pure virtual |
发送媒体补充增强信息(SEI)。
在本端推流传输视频流数据同时,发送流媒体补充增强信息来同步一些其他附加信息。当推流方发送 SEI 后,拉流方可通过监听 IRtcEngineEventHandlerEx::onRecvSEIMsg 的回调获取 SEI 内容。
data | 自定义 SEI 数据。 |
length | 自定义 SEI 数据长度,最大不超过 4096 字节。 |
type | 发送 SEI 时,使用的流通道类型。详细信息请参考 NERtcVideoStreamType 。 |
|
pure virtual |
设置自己的音频只能被房间内指定的人订阅。
默认房间所有其他人都可以订阅自己的音频。
[in] | uid_array | 可订阅自己音频的用户uid 列表。 |
[in] | size | uid_array 的数组长度。 |
|
pure virtual |
设置本地摄像头的采集偏好等配置。
在视频通话或直播中,SDK 自动控制摄像头的输出参数。默认情况下,SDK 根据用户的 setVideoConfig 配置匹配最合适的分辨率进行采集。但是在部分业务场景中,如果采集画面质量无法满足实际需求,可以调用该接口调整摄像头的采集配置。
需要自定义设置摄像头采集的视频尺寸时,请通过 NERtcCameraCaptureConfig 中的 captureWidth 和 captureHeight 自定义设置本地摄像头采集的视频宽高。
config | 摄像头采集配置。详细说明请参考 nertc::NERtcCameraCaptureConfig 。 |
|
pure virtual |
设置本地摄像头的采集配置。
通过此接口可以设置本地摄像头采集的视频宽度、高度、旋转角度等。
参数名称 | 类型 | 描述 |
---|---|---|
type | NERtcVideoStreamType | 视频通道类型:
|
captureConfig | NERtcCameraCaptureConfig | 本地摄像头采集配置。 |
|
pure virtual |
设置 IRtcChannel 对象的事件句柄。
你可以通过设置的事件句柄,监听当前IRtcChannel对象对应房间的事件,并接收房间中用户视频信息等。
[in] | handler | 事件监听句柄对象 |
|
pure virtual |
在直播场景中设置用户角色。
用户角色支持设置为主播或观众,主播和观众的权限不同。
如果你在加入频道后调用该方法切换角色,调用成功后会收到以下回调:
[in] | role | 用户角色。 NERtcClientRole |
|
pure virtual |
设置共享整个屏幕或屏幕指定区域时,需要屏蔽的窗口列表。
开启屏幕共享时,可以通过 NERtcScreenCaptureParameters 设置需要屏蔽的窗口列表;开发者可以在开启屏幕共享后,通过此方法动态调整需要屏蔽的窗口列表。被屏蔽的窗口不会显示在屏幕共享区域中。
window_list | 需要屏蔽的窗口 ID 列表。 |
count | 需屏蔽的窗口的数量。 |
|
pure virtual |
添加本地视频画布水印。
type | 视频流类型。支持设置为主流或辅流。详细信息请参考 NERtcVideoStreamType 。 |
config | 画布水印设置。支持设置文字水印、图片水印和时间戳水印,设置为 null 表示清除水印。 详细信息请参考 NERtcCanvasWatermarkConfig 。 |
|
pure virtual |
设置本地用户的媒体流优先级。
如果某个用户的优先级为高,那么该用户媒体流的优先级就会高于其他用户,弱网环境下 SDK 会优先保证其他用户收到的、高优先级用户的媒体流的质量。
priority | 本地用户的媒体流优先级,默认为 kNERtcMediaPriorityNormal 。详细信息请参考 NERtcMediaPriorityType 。 |
is_preemptive | 是否开启抢占模式。默认为 false,即不开启。
|
|
pure virtual |
设置弱网条件下发布的音视频流回退选项。
在网络不理想的环境下,发布的音视频质量都会下降。使用该接口并将 option 设置为 kNERtcStreamFallbackAudioOnly 后:
option | 发布音视频流的回退选项,默认为不开启回退 kNERtcStreamFallbackAudioOnly。详细信息请参考 nertc::NERTCStreamFallbackOption 。 |
|
pure virtual |
设置本地视图显示模式。 该方法设置本地视图显示模式。 App 可以多次调用此方法更改显示模式。
[in] | scaling_mode | 视频显示模式: NERtcVideoScalingMode |
|
pure virtual |
设置本端的屏幕共享辅流视频显示模式。
该方法设置本地视图显示模式。 App 可以多次调用此方法更改显示模式。
[in] | scaling_mode | 视频显示模式。 |
|
pure virtual |
设置本地视频镜像模式。
该方法用于设置本地视频是否开启镜像模式,即画面是否左右翻转。
[in] | mirror_mode | 视频镜像模式。详细信息请参考 NERtcVideoMirrorMode。 |
|
pure virtual |
设置本地视频镜像模式。
通过此接口可以设置本地视频是否开启镜像模式,即画面是否左右翻转。
参数名称 | 类型 | 描述 |
---|---|---|
type | NERtcVideoStreamType | 视频通道类型:
|
mirror_mode | NERtcVideoMirrorMode | 视频镜像模式:
|
|
pure virtual |
添加远端视频画布水印。
uid | 远端用户 ID。 |
type | 视频流类型。支持设置为主流或辅流。详细信息请参考 NERtcVideoStreamType 。 |
config | 画布水印设置。支持设置文字水印、图片水印和时间戳水印,设置为 null 表示清除水印。 详细信息请参考 NERtcCanvasWatermarkConfig 。 |
|
pure virtual |
设置远端用户音频流为高优先级。 支持在音频自动订阅的情况下,设置某一个远端用户的音频为最高优先级,可以优先听到该用户的音频。
[in] | enabled | 是否设置音频订阅优先级。
|
[in] | uid | 用户 ID |
|
pure virtual |
设置远端视图显示模式。 该方法设置远端视图显示模式。App 可以多次调用此方法更改显示模式。
[in] | uid | 远端用户 ID。 |
[in] | scaling_mode | 视频显示模式: NERtcVideoScalingMode |
|
pure virtual |
设置弱网条件下订阅的音视频流回退选项。
弱网环境下,订阅的音视频质量会下降。使用该接口并将 option 设置为 kNERtcStreamFallbackVideoStreamLow 或者 kNERtcStreamFallbackAudioOnly 后:
option | 订阅音视频流的回退选项,默认为弱网时回退到视频小流 kNERtcStreamFallbackVideoStreamLow。详细信息请参考 nertc::NERTCStreamFallbackOption 。 |
|
pure virtual |
设置远端的屏幕共享辅流视频显示模式。
在远端开启辅流形式的屏幕共享时使用。App 可以多次调用此方法更改显示模式。
[in] | uid | 远端用户 ID。 |
[in] | scaling_mode | 视频显示模式。 |
|
pure virtual |
在共享屏幕或窗口时,更新是否显示鼠标。
capture_cursor | 屏幕共享时是否捕捉鼠标光标。
|
|
pure virtual |
注册统计信息观测器。
[in] | observer | 统计信息观测器 |
|
pure virtual |
设置本地辅流视频画布。
[in] | canvas | 视频画布信息。 |
|
pure virtual |
设置本地视图。
该方法设置本地视频显示信息。只影响本地用户看到的视频画面,不影响远端。
App 通过调用此接口绑定本地视频流的显示视窗(view)。 在 App 开发中,通常在初始化后调用该方法进行本地视频设置,然后再加入房间。
[in] | canvas | 视频画布信息。详细信息请参考 NERtcVideoCanvas。 |
|
pure virtual |
设置远端的辅流视频画布。
该方法绑定远端用户和辅流显示视图,即指定某个 uid 使用对应的画布显示。
[in] | uid | 远端用户 ID。 |
[in] | canvas | 视频画布设置 |
|
pure virtual |
设置远端用户视图。
该方法绑定远端用户和显示视图,并设置远端用户视图在本地显示时的渲染模式和镜像模式,只影响本地用户看到的视频画面。
[in] | uid | 远端用户 ID。 |
[in] | canvas | 视频画布信息。详细信息请参考 NERtcVideoCanvas。 |
|
pure virtual |
设置本地视频的编码属性。
width
和 height
进行自定义设置摄像头采集视频的编码分辨率。详细信息请参考设置视频属性。 setVideoConfig
为全量参数配置接口,重复调用此接口时,SDK 会刷新此前的所有参数配置,以最新的传参为准。所以每次修改配置时都需要设置所有参数,未设置的参数将取默认值。setVideoConfig
方法实时生效;此前的版本中,setVideoConfig
方法设置成功后,下次开启本端视频时生效。 [in] | config | 视频编码属性配置,详细信息请参考 #NERtcVideoConfig。 |
|
pure virtual |
设置视频编码属性。
通过此接口可以设置视频主流或辅流的编码分辨率、裁剪模式、码率、帧率、带宽受限时的视频编码降级偏好、编码的镜像模式、编码的方向模式参数。
参数名称 | 类型 | 描述 |
---|---|---|
type | NERtcVideoStreamType | 视频通道类型:
|
config | NERtcVideoConfig | 视频编码属性配置。 |
|
pure virtual |
开始跨房间媒体流转发。
onMediaRelayStateChanged
和 onMediaRelayEvent
回调,并在回调中报告当前的跨房间媒体流转发状态和事件。 NERtcChannelMediaRelayConfiguration
中的 dest_infos
设置目标房间。stopChannelMediaRelay
方法退出当前的转发状态。updateChannelMediaRelay
更新目标房间信息。 config | 跨房间媒体流转发参数配置信息。 |
|
pure virtual |
通过指定屏幕 ID 开启屏幕共享,屏幕共享内容以辅流形式发送。
此方法调用成功后,远端触发 onUserSubStreamVideoStart 回调。
display_id | 指定待共享的屏幕 ID。开发者需要自行实现枚举屏幕 ID 的方法,并通过该参数指定需要共享的屏幕。 |
region_rect | 指定待共享的区域相对于整个窗口的位置。如果设置的共享区域超出了窗口的边界,则只共享窗口内的内容;如果宽或高为 0,则共享整个窗口。 |
capture_params | 屏幕共享的参数配置,包括码率、帧率、编码策略、屏蔽窗口列表等。 |
|
pure virtual |
开启屏幕共享,共享范围为指定屏幕的指定区域。
调用该方法时,可以选择共享整个虚拟屏、指定屏幕,或虚拟屏、整个屏幕的某些区域范围。
此方法调用成功后,远端触发 onUserSubStreamVideoStart 和 setExcludeWindowList 回调。
screen_rect | 指定待共享的屏幕相对于虚拟屏的位置。 |
region_rect | 指定待共享区域相对于整个屏幕屏幕的位置。如果设置的共享区域超出了屏幕的边界,则只共享屏幕内的内容;如果将 width 或 height 设为 0, 则共享整个屏幕。 |
capture_params | 屏幕共享的编码参数配置。 |
|
pure virtual |
通过指定窗口 ID 开启屏幕共享,屏幕共享内容以辅流形式发送。
调用该方法时需要指定待共享的屏幕 ID,共享该屏幕的整体画面或指定区域。
此方法调用成功后:
window_id | 指定待共享的窗口 ID。 |
region_rect | 指定待共享的区域相对于整个窗口的位置。如果设置的共享区域超出了窗口的边界,则只共享指定区域中窗口内的内容;如果宽或高为 0,则共享整个窗口。 |
capture_params | 屏幕共享的参数配置,包括码率、帧率、编码策略、屏蔽窗口列表等。 |
|
pure virtual |
停止跨房间媒体流转发。
主播离开房间时,跨房间媒体流转发自动停止,您也可以在需要的时候随时调用 stopChannelMediaRelay
方法,此时主播会退出所有目标房间。
onMediaRelayStateChange
回调。如果报告 NERtcChannelMediaRelayStateIdle
,则表示已停止转发媒体流。onMediaRelayStateChange
回调,并报告状态码 NERtcChannelMediaRelayStateFailure
。
|
pure virtual |
停止屏幕共享。
此方法调用成功后:
|
pure virtual |
取消或恢复订阅所有远端用户音频流。
subscribe | 是否取消订阅所有远端用户的音频流。 |
|
pure virtual |
取消或恢复订阅指定远端用户音频流。
加入房间时,默认订阅所有远端用户的音频流,您可以通过此方法取消或恢复订阅指定远端用户的音频流。
[in] | uid | 指定用户的 ID。 |
[in] | subscribe | 是否订阅远端用户音频流。
|
|
pure virtual |
取消或恢复订阅指定远端用户音频辅流。
加入房间时,默认订阅所有远端用户的音频流,您可以通过此方法取消或恢复订阅指定远端用户的音频辅流。
[in] | uid | 指定用户的 ID。 |
[in] | subscribe | 是否订阅指定音频流。
|
|
pure virtual |
订阅或取消订阅指定远端用户的视频流。
[in] | uid | 指定用户的用户 ID。 |
[in] | type | 订阅的视频流类型。 NERtcRemoteVideoStreamType |
[in] | subscribe | 是否订阅远端用户的视频流。
|
|
pure virtual |
订阅或取消订阅远端的屏幕共享辅流视频,订阅之后才能接收远端的辅流视频数据。
[in] | uid | 指定用户的用户 ID。 |
[in] | subscribe |
|
|
pure virtual |
本地视频画面截图。
调用 takeLocalSnapshot 截取本地主流或本地辅流的视频画面,并通过 NERtcTakeSnapshotCallback::onTakeSnapshotResult 回调返回截图画面的数据。
stream_type | 截图的视频流类型。支持设置为主流或辅流。详细信息请参考 NERtcVideoStreamType 。 |
callback | 截图回调。详细信息请参考 NERtcTakeSnapshotCallback 。 |
|
pure virtual |
远端视频画面截图。
调用 takeRemoteSnapshot 截取指定 uid 远端主流和远端辅流的视频画面,并通过 NERtcTakeSnapshotCallback::onTakeSnapshotResult 回调返回截图画面的数据。
uid | 远端用户 ID。 |
stream_type | 截图的视频流类型。支持设置为主流或辅流。详细信息请参考 NERtcVideoStreamType 。 |
callback | 截图回调。详细信息请参考 NERtcTakeSnapshotCallback 。 |
|
pure virtual |
更新媒体流转发的目标房间。
成功开始跨房间转发媒体流后,如果你希望将流转发到多个目标房间,或退出当前的转发房间,可以调用该方法。
onMediaRelayStateChange
和 onMediaRelayEvent
回调,并在回调中报告当前的跨房间媒体流转发状态和事件。 startChannelMediaRelay
开始跨房间媒体流转发后,调用此方法。调用此方法前需要通过 NERtcChannelMediaRelayConfiguration
中的 dest_infos
设置目标房间。 config | 目标房间配置信息 |
|
pure virtual |
更新修改房间推流任务。
[in] | info | 直播任务信息。详细信息请参考 NERtcLiveStreamTaskInfo |
|
pure virtual |
更新屏幕共享参数。
开始共享屏幕或窗口后,动态更新采集帧率,目标码率,编码分辨率等屏幕共享相关参数。
参数名称 | 类型 | 描述 |
---|---|---|
captureParams | NERtcScreenCaptureParameters | 屏幕共享编码参数配置。 |
|
pure virtual |
在共享屏幕或窗口时,更新共享的区域。
在 Windows 平台中,远端会触发 onScreenCaptureStatus 回调。
region_rect | 指定待共享的区域相对于整个窗口或屏幕的位置。如果设置的共享区域超出了边界,则只共享指定区域中,窗口或屏幕内的内容;如果宽或高为 0,则共享整个窗口或屏幕。 |