NERtc Windows SDK
V4.6.0
|
#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 |
开启或关闭本地视频采集和渲染。
该方法启用本地视频采集功能。
[in] | enabled | 是否启用本地视频采集和渲染:
|
|
pure virtual |
获取当前房间名。
|
pure virtual |
获取当前房间连接状态。
|
pure virtual |
加入音视频房间。
[in] | token | 安全认证签名(NERTC Token)。可设置为:
|
|
pure virtual |
离开房间,即挂断或退出通话。
结束通话时,必须调用 leaveChannel 结束通话,否则无法开始下一次通话。
成功调用该方法离开房间后,本地会触发 onLeaveChannel 回调,远端会触发 onUserLeave 回调。
|
pure virtual |
开关本地音频发送。该方法用于允许或禁止向网络发送本地音频流。
[in] | mute | 静音/取消静音:
|
|
pure virtual |
取消或恢复发布本地视频流。
[in] | enabled | 是否启用本地视频采集。
|
|
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 |
设置本地摄像头的采集偏好等配置。
在视频通话或直播中,SDK 自动控制摄像头的输出参数。默认情况下,SDK 根据用户的 setVideoConfig 配置匹配最合适的分辨率进行采集。但是在部分业务场景中,如果采集画面质量无法满足实际需求,可以调用该接口调整摄像头的采集配置。
config | 摄像头采集配置。详细说明请参考 nertc::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 |
设置本地视频镜像模式。 该方法用于设置本地视频是否开启镜像模式,即画面是否左右翻转。 本地的视频镜像模式仅影响本地用户所见,不影响远端用户所见。App 可以多次调用此方法更改镜像模式。
[in] | 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 |
注册统计信息观测器。
[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 |
设置本地视频的编码属性。
NERtcVideoConfig
中的 max_profile
可以指定预设的 Profile 模式,但是预设模式往往无法满足实际场景需求,网易云信建议您通过 width
和 height
进行自定义设置。详细信息请参考设置视频属性。 setVideoConfig
为全量参数配置接口,重复调用此接口时,SDK 会刷新此前的所有参数配置,以最新的传参为准。所以每次修改配置时都需要设置所有参数,未设置的参数将取默认值。setVideoConfig
方法实时生效;此前的版本中,setVideoConfig
方法设置成功后,下次开启本端视频时生效。 [in] | 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] | 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 |
在共享屏幕或窗口时,更新共享的区域。
在 Windows 平台中,远端会触发 onScreenCaptureStatus 回调。
region_rect | 指定待共享的区域相对于整个窗口或屏幕的位置。如果设置的共享区域超出了边界,则只共享指定区域中,窗口或屏幕内的内容;如果宽或高为 0,则共享整个窗口或屏幕。 |