推流任务信息。
使用前提 请先通过 NERtc#setChannelProfile 接口设置房间模式为直播模式。
class CustomCallback extends NERtcCallbackEx {
//... 其他回调
onAddLiveStreamTask(taskId: string, url: string, errorCode: number): void {
//添加推流任务回调
}
onUpdateLiveStreamTask(taskId: string, url: string, errorCode: number): void {
//更新推流任务回调
}
onRemoveLiveStreamTask(taskId: string, errorCode: number): void {
//删除推流任务回调
}
}
let taskInfo: NERtcConstants.NERtcLiveStreamTaskInfo = {
taskID: "xxxx",
streamURL: 'xxxx'
//其他更多参数
}
//添加推流任务
NERtcSDK.getInstance().addLiveStreamTask(taskInfo)
相关回调
NERtcCallback.NERtcCallbackEx#onAddLiveStreamTask :推流任务已成功删除回调。
NERtcCallback.NERtcCallbackEx#onLiveStreamState:推流任务状态已改变回调。
NERtcCallback.NERtcCallbackEx#onRemoveLiveStreamTask: 推流任务状态已更新
调节本地播放的所有远端用户的信号音量。
通过此接口可以实现调节所有远端用户在本地播放的混音音量。
播放音量,取值范围为 [0,400]。
调节采集信号音量。 通过本接口可以实现设置录制声音的信号幅度,从而达到调节采集音量的目的。
采集信号音量,取值范围为 0 ~ 400。
调节本地播放的指定远端用户的信号音量。
通过此接口可以实现在通话过程中随时调节指定远端用户在本地播放的混音音量。
远端用户 ID。
播放音量,取值范围为 0 ~ 400。
AI 手动打断
通过此接口可以触发手动打断。
请在引擎初始化之后调用此接口,且该方法在接入房间之后才可以调用。
目标用户ID,即远端的UserId。默认可以传0,SDK会选择当前房间里的第一个远端用户ID。
检查音视频相关的多媒体设备权限。
通过本接口可以实现在音视频通话前,检查多媒体设备的权限,如相机、麦克风、网络权限等。
请在初始化后调用该方法,且该方法在加入房间前后均可调用。
返回缺失的权限,如果返回 null 表示接口调用过程中发生异常。
创建并获取一个 NERtcChannel 对象。
房间名称,设置相同房间名称的用户会进入同一个通话房间。
方法调用成功,返回 NERtcChannel 对象。方法调用失败,返回 null。
启用说话者音量提示。
通过此接口可以实现允许 SDK 定期向 App 反馈房间内发音频流的用户和瞬时音量最高的远端用户(最多 3 位,包括本端)的音量相关信息,即当前谁在说话以及说话者的音量。
是否启用说话者音量提示:
指定音量提示的时间间隔。单位为毫秒。必须设置为 100 毫秒的整数倍值,建议设置为 200 毫秒以上。
OptionalenableVad: boolean是否启用本地采集人声监测:
//设置间隔为500ms的人声音量提示
NERtcSDK.getInstance().enableAudioVolumeIndication(true, BigInt(500), true);
相关回调
启用该方法后,只要房间内有发流用户,无论是否有人说话,SDK 都会在加入房间后根据预设的时间间隔触发 NERtcCallback.NERtcCallbackEx#onRemoteAudioVolumeIndication 回调。
相关接口
若您希望在返回音量相关信息的同时检测是否有真实人声存在,请调用 NERtc#enableAudioVolumeIndication 方法。
设置是否开启视频大小流模式。
通过本接口可以实现设置单流或者双流模式。发送端开启双流模式后,接收端可以选择接收大流还是小流。其中,大流指高分辨率、高码率的视频流,小流指低分辨率、低码率的视频流。
设置是否开启耳返功能。
请在初始化后调用该方法,且该方法仅可在加入房间后调用。
是否开启耳返功能:
Optionalvolume: number设置耳返音量。取值范围为 0 ~ 100,默认值为 100。
开启或关闭媒体流加密。 在金融行业等安全性要求较高的场景下,您可以在加入房间前通过此方法设置媒体流加密模式。
是否开启媒体流加密 - true: 开启 - false: 关闭(默认)
媒体流加密方案,详细信息请参考 NERtcConstants.NERtcEncryptionConfig
开启或关闭本地音频的采集和发送。
通过本接口可以实现开启或关闭本地语音功能,进行本地音频采集及处理。
开启或关闭音频辅流。
开启时远端会收到 NERtcCallbackEx#onUserSubStreamAudioStart,关闭时远端会收到NERtcCallbackEx#onUserSubStreamAudioStop
开启或关闭本地视频的采集与发送。
通过本接口可以实现开启或关闭本地视频,不影响接收远端视频。
是否开启本地视频采集与发送:
开启或关闭音频共享
是否开启音频共享
开启或关闭本地媒体流(主流)的发送。
该方法用于开始或停止向网络发送本地音频或视频数据。
该方法不影响接收或播放远端媒体流,也不会影响本地音频或视频的采集状态。
媒体发布类型,暂时仅支持音频。
是否发布本地媒体流。
相关接口 NERtc#muteLocalAudioStream
启用/关闭视频降噪功能。
是否启用视频降噪。
视频流类型。
启用/关闭视频低光增强功能。
是否启用低光增强。
低光增强级别。
视频流类型。
开启/关闭虚拟背景。
启用虚拟背景功能后,您可以使用自定义背景图片替换本地用户的原始背景图片。
替换后,频道内所有用户都可以看到自定义背景图片。
设置是否开启虚拟背景
自定义背景图片
获取音乐文件的播放进度。
该方法获取当前伴奏播放进度,单位为毫秒。请在房间内调用该方法。
音乐文件的播放位置,单位为毫秒。
获取当前伴音文件的音调。
请先调用 NERtc#startAudioMixing 方法开启伴音。
请在引擎初始化之后调用此接口,且该方法仅可在加入房间后调用。
获取当前摄像头缩放比例。
当前缩放比例。
获取摄像头支持的最大缩放比例。
该方法需要在相机启动后调用,例如调用 startVideoPreview 或 joinChannel 后。
摄像头支持的最大视频缩放比例。
获取指定音效文件的音调。
指定音效文件的 ID。每个音效文件均对应唯一的 ID。
indicates the ID of the specified audio effect. Each audio effect has a unique ID.
{@code 0} A value of 0 returned indicates that the method call is successful. Otherwise, the method call fails.
查询当前设备支持的 NERtc SDK 的某项功能的级别。以虚拟背景为例,在用户跳转 UI 至直播之前,您可调用此接口查询设备支持虚拟背景的级别。
RTC 功能类型。
获取本地系统时间与服务端时间差值。
可以用于做时间对齐,通过当前 UTC 时间减去 offset) 可能得到当前服务端时间。
本地与服务端时间差值,单位为毫秒(ms)。如果没有成功加入音视频房间,返回 0。
以string的形式获取一些内部参数,此接口为隐藏接口,需要特定参数及特定时机,详情联系技术支持。
参数key
额外的信息
如果查询到相关参数,以string形式返回,否则返回null
创建 NERtc 实例。
通过本接口可以实现创建 NERtc 实例并初始化 NERTC SDK 服务。
传入的 RTC engine context 对象。
应用的 App Key。在 云信控制台 创建应用后,可以查看对应的 App Key。
回调函数。所有接口均在主线程上回调,您可继承简易实现 NERtcCallback.NERtcCallbackEx 类,或自行选择实现 NERtcCallback.NERtcCallback 类。
Optionaloption: NERtcOption其他可选配置。可设置为 null。
无返回值。
检测设备是否支持手动曝光功能。
该方法需要在相机启动后调用,例如调用 startVideoPreview 或 joinChannel 后。
true:设置支持手动曝光功能;false:设备不支持手动曝光功能。
检测设备是否支持手动对焦功能。
该方法需要在相机启动后调用,例如调用 startVideoPreview 或 joinChannel 后。
true:设备支持手动对焦功能;false:设备不支持手动对焦功能。
检测设备当前使用的摄像头是否支持缩放功能。
该方法需要在相机启动后调用,例如调用 startVideoPreview 或 joinChannel 后。
true: 设备支持摄像头缩放功能; false: 设备不支持摄像头缩放功能。
查看当前音频播放设备是否静音。
true:静音;- false:未静音。
查看当前音频采集设备是否静音。
true:静音;false:未静音。
检查扬声器状态启用状态。
该方法可在加入房间前后调用。
扬声器是否开启。
加入音视频房间。
通过本接口可以实现加入音视频房间,加入房间后可以与房间内的其他用户进行音视频通话。
安全认证签名(NERTC Token),可以设置为:
房间名称,设置相同房间名称的用户会进入同一个通话房间。
用户的唯一标识 ID。
OptionalchannelOptions: NERtcJoinChannelOptions离开音视频房间。
通过本接口可以实现挂断或退出通话,并释放本房间内的相关资源。
相关回调 成功调用该方法离开房间后,本地会触发 NERtcCallback#onLeaveChannel 回调,远端会触发 NERtcCallback#onUserLeave 回调。
静音推流数据中的音频数据
开启或关闭本地音频主流的发送。
该方法用于向网络发送或取消发送本地音频数据,不影响本地音频的采集状态,也不影响接收或播放远端音频流。
是否关闭本地音频的发送:
该方法设置内部引擎为启用状态,在 NERtc#leaveChannel 后恢复至默认(非静音)。
示例代码
//不发送本地音频
NERtcSDK.getInstance().muteLocalAudioStream(true);
//发送本地音频
NERtcSDK.getInstance().muteLocalAudioStream(false);
相关接口
enableMediaPub:
- 在需要开启本地音频采集(监测本地用户音量)但不发送音频流的情况下,您也可以调用 enableMeidaPub(false) 方法。
- 两者的差异在于,muteLocalAudioStream(true) 仍然保持与服务器的音频通道连接,而 enableMediaPub(false) 表示断开此通道,因此若您的实际业务场景为多人并发的大房间,建议您调用 enableMediaPub 方法。
取消或恢复发布本地视频。
调用该方法取消发布本地视频主流或辅流后,SDK 不再发送本地视频流。
使用前提 一般在通过 (NERtcVideoStreamType streamType, boolean enable)(true) 接口开启本地视频采集并发送后调用该方法。
参数说明
| **参数名称** | **类型** | **描述** |
|---|---|---|
| streamType | NERtcConstants.NERtcVideoStreamType | 视频通道类型:
|
| mute | boolean | 是否取消发布本地视频流:
|
//取消发布本地视频主流 NERtcSDK.getInstance().muteLocalVideo(NERtcConstants.NERtcVideoStreamType.kNERtcVideoStreamTypeMain, true); //恢复发布本地视频主流 NERtcSDK.getInstance().muteLocalVideo(NERtcConstants.NERtcVideoStreamType.kNERtcVideoStreamTypeMain, false); //取消发布本地视频辅流 NERtcSDK.getInstance().muteLocalVideo(NERtcConstants.NERtcVideoStreamType.kNERtcVideoStreamTypeSub, true); //恢复发布本地视频辅流 NERtcSDK.getInstance().muteLocalVideo(NERtcConstants.NERtcVideoStreamType.kNERtcVideoStreamTypeSub, false);
静音推流中的视频数据
暂停伴音。
通过此接口可以实现暂停播放伴音文件。
使用前提
请先调用 NERtc#startAudioMixing 开启伴音。
暂停推流
流的唯一id
播放指定音效文件。 通过此接口可以实现播放指定的本地或在线音效文件。
指定音效的 ID。每个音效均应有唯一的 ID。
音效相关参数,包括混音任务类型、混音文件路径等。
支持的音效文件类型包括 MP3、M4A、AAC、3GP、WMA 和 WAV 格式,支持本地文件和在线 URL。 您可以多次调用该方法,通过传入不同音效文件的 effectId 和 option,同时播放多个音效文件,实现音效叠加;但是为获得最佳用户体验,建议同时播放不超过 3 个音效文件。 若通过此接口成功播放某指定音效文件后,反复停止或重新播放该 effectId 对应的音效文件,仅首次播放时设置的 option 有效,后续的 option 设置无效。
示例代码
let option: NERtcConstants.NERtcCreateAudioEffectOption = {
path: 'xxxx',
loopCount: 1,
sendEnabled: true,
playbackEnabled: true,
sendVolume: 100,
playbackVolume: 100,
startTimeStamp: BigInt(0),
sendWithAudioType: NERtcConstants.NERtcAudioStreamType.kNERtcAudioStreamTypeMain,
progressInterval: BigInt(1000)
}
let mAudioEffectId = 1
NERtcSDK.getInstance().playEffect(mAudioEffectId, option)
相关接口 NERtcCallback.NERtcCallback#onAudioEffectTimestampUpdate:本地音效文件播放进度回调。 NERtcCallback.NERtcCallbackEx#onAudioEffectFinished:本地音效文件播放已结束回调。
推送混合外部视频帧。
视频流类型。
外部视频帧。
推送外部音频主流编码帧。
通过此接口可以实现通过主流音频通道推送外部音频编码后的数据。
编码后的音频帧数据。
推送外部音频帧。
将外部音频数据帧推送给内部引擎。 通过 setExternalAudioSource 启用外部音频数据输入功能成功后,可以使用 pushExternalAudioFrame 接口发送音频 PCM 数据。
外部音频帧数据;数据长度不能超过 7680 字节,和调用周期时长一致。
推送外部音频辅流编码帧。
通过此接口可以实现通过辅流音频通道推送外部音频编码后的数据。
编码后的音频帧数据。
推送外部音频辅流数据帧。
将外部音频辅流帧数据帧主动推送给内部引擎。通过 NERtc#enableLocalSubStreamAudio 启用音频辅流后,可以调用此接口发送音频辅流 PCM 数据。
音频帧数据。
推送外部音频编码帧
通过此接口可以实现通过主流或辅流视频通道推送外部视频编码后的数据。
视频通道类型:
编码后的视频帧数据。
推送外部视频帧。
该方法主动将视频帧数据用 NERtcVideoFrame 类封装后传递给 SDK。
外部视频帧的数据信息。详细信息请参考 NERtcConstants.NERtcVideoFrame。
销毁 NERtc 实例,释放资源。
该方法释放 NERTC SDK 使用的所有资源。有些 App 只在用户需要时才进行实时音视频通信,完成音视频通话后,则将资源释放出来用于其他操作,该方法适用于此类情况。
leaveChannel、并收到 onUserLeave 回调后调用。或收到 onDisconnect 回调、重连失败时调用此接口销毁实例,并释放资源。release 方法后,您将无法再使用 SDK 的其它方法和回调。如需再次使用实时音视频通话功能,您必须等待 release 方法执行结束后,重新创建一个新的 NERtc 实例。删除房间内指定推流任务。
推流任务 ID。
使用前提 请先调用 NERtc#addLiveStreamTask 方法添加推流任务。
class CustomCallback extends NERtcCallbackEx {
//... 其他回调
onAddLiveStreamTask(taskId: string, url: string, errorCode: number): void {
//添加推流任务回调
}
onUpdateLiveStreamTask(taskId: string, url: string, errorCode: number): void {
//更新推流任务回调
}
onRemoveLiveStreamTask(taskId: string, errorCode: number): void {
//删除推流任务回调
}
}
//移除推流任务
NERtcSDK.getInstance().removeLiveStreamTask(taskId)
相关回调
NERtcCallback.NERtcCallbackEx#onAddLiveStreamTask :推流任务已成功删除回调。
NERtcCallback.NERtcCallbackEx#onLiveStreamState:推流任务状态已改变回调。
NERtcCallback.NERtcCallbackEx#onRemoveLiveStreamTask: 推流任务状态已更新
用户自定义上报事件
事件名 不能为空
OptionalcustomIdentify: string自定义标识,比如产品或业务类型,如不需要填null
Optionalparam: Map<string, Object>参数键值对 ,参数值支持String 及java基本类型(int 、bool....) , 如不需要填null
恢复播放伴奏。
该方法恢复混音,继续播放伴奏。请在房间内调用该方法。
恢复推流
流的唯一id
seek到指定位置
毫秒级时间戳
指定主流或辅流通道发送媒体增强补充信息(SEI)。
在本端推流传输视频流数据同时,发送流媒体补充增强信息来同步一些其他附加信息。当推流方发送 SEI 后,拉流方可通过监听 onRecvSEIMsg 的回调获取 SEI 内容。
自定义 SEI 数据。
自定义 SEI 的数据长度。
OptionalstreamType: NERtcVideoStreamType发送 SEI 时,使用的流通道类型。详细信息请参考 NERtcConstants.NERtcVideoStreamType。
预设变声效果。
通过此接口可以实现将人声原音调整为多种特殊效果,改变声音特性。
预设的变声音效。默认关闭变声音效。NERtcConstants.NERtcVoiceChangerType
请在引擎初始化之后调用此接口,且该方法在加入房间前后均可调用。
注册语音观测器对象。
通过此接口可以设置音频采集/播放 PCM 回调,可用于声音处理等操作。
接口对象示例,如果传入的是 null 则取消注册。
设置当前伴音文件的音调。
通过此接口可以实现当本地人声和播放的音乐文件混音时,仅调节音乐文件的音调。
请在引擎初始化之后调用此接口,且该方法仅可在加入房间后调用。
当前伴音文件的音调。默认值为 0,即不调整音调,取值范围为 -12 ~ 12,按半音音阶调整。每相邻两个值的音高距离相差半音;取值的绝对值越大,音调升高或降低得越多。
请先调用 NERtc#startAudioMixing 方法开启伴音。
调节伴奏播放音量。
该方法调节混音里伴奏的播放音量大小。请在房间内调用该方法。
伴奏发送音量。取值范围为 0~200。默认 100,即原始文件音量。
调节伴奏发送音量。
该方法调节混音里伴奏的发送音量大小。请在房间内调用该方法。
音乐文件的播放位置,单位为毫秒。
调节伴奏发送音量。
该方法调节混音里伴奏的发送音量大小。请在房间内调用该方法。
伴奏发送音量。取值范围为 0~200。默认 100,即原始文件音量。
设置音频编码属性。
通过此接口可以实现设置音频编码的采样率、码率、编码模式、声道数等,也可以设置音频属性的应用场景,包括聊天室场景、语音场景、音乐场景等。
设置采样率、码率、编码模式和声道数。详细信息请参考 NERtcConstants.AudioProfile
设置音频应用场景。详细信息请参考 NERtcConstants.AudioScenario
音乐场景下,建议将 profile 设置为 HIGH_QUALITY。 若您通过 NERtc#setChannelProfile 接口设置房间场景为直播模式,即 LIVE_BROADCASTING,但未调用此方法设置音频编码属性,或仅设置 profile 为 DEFAULT,则 SDK 会自动设置 profile 为 HIGH_QUALITY,且设置 scenario 为 MUSIC。
设置本地摄像头的视频主流采集配置。
通过此接口可以设置本地摄像头采集的主流视频宽度、高度、旋转角度等。
本地摄像头采集配置。
视频通道类型
设置手动对焦位置。
该方法需要在相机启动后调用,例如调用 startVideoPreview 或 joinChannel 后。
成功调用该方法后,本地会触发 onCameraFocusChanged 回调。
触摸点相对于视图的横坐标。
触摸点相对于视图的纵坐标。
设置手动对焦位置。
该方法需要在相机启动后调用,例如调用 startVideoPreview 或 joinChannel 后。
成功调用该方法后,本地会触发 onCameraFocusChanged 回调。
触摸点相对于视图的横坐标。
触摸点相对于视图的纵坐标。
设置是否打开闪光灯。
该方法需要在相机启动后调用,例如调用 startVideoPreview 或 joinChannel 后。
是否打开闪光灯。
0:成功 1: 失败 2:设备不支持闪光灯。
设置房间场景。
通过此接口可以实现设置房间场景为通话(默认)或直播场景。针对不同场景采取的优化策略不同,如通话场景侧重语音流畅度,直播场景侧重视频清晰度。
参数说明
| **参数名称** | **类型** | **描述** |
|---|---|---|
| profile | NERtcConstants.NERtcChannelProfile | 设置房间场景:
|
设置直播场景下的用户角色。
通过本接口可以实现将用户角色在“主播”(CLIENT_ROLE_BROADCASTER)和“观众“(CLIENT_ROLE_AUDIENCE)之间的切换,用户加入房间后默认为“主播”。
用户角色:
使用前提 该方法仅在通过 setChannelProfile 方法设置房间场景为直播场景(LIVE_BROADCASTING)时调用有效。
//切换用户角色为主播 NERtcSDK.getInstance().setClientRole(NERtcConstants.NERtcClientRole.CLIENT_ROLE_BROADCASTER); //切换用户角色为观众 NERtcSDK.getInstance().setClientRole(NERtcConstants.NERtcClientRole.CLIENT_ROLE_AUDIENCE);
相关回调
开启并设置云代理服务。
在内网环境下,如果用户防火墙开启了网络限制,请参考《使用云代理》将指定 IP 地址和端口号加入防火墙白名单,然后调用此方法开启云代理,并将 proxyType 参数设置为 TRANSPORT_TYPE_UDP_PROXY(1),即指定使用 UDP 协议的云代理。
onConnectionStateChanged(CONNECTION_STATE_CONNECTING, CONNECTION_CHANGED_SETTING_PROXY_SERVER) 回调。setCloudProxy(NONE_PROXY)。云代理类型。详细信息请参考 NERtcConstants.NERtcTransportType。该参数是必填参数,若未赋值 SDK 会报错。
设置耳返音量。
设置耳返音量,可设置为 0~100,默认为 100。
方法调用成功,其他失败。
设置指定音效文件的音调。
通过此接口可以实现当本地人声和播放的音乐文件混音时,仅调节音乐文件的音调。
指定音效文件的 ID。每个音效文件均对应唯一的 ID。
指定音效文件的音调。默认值为 0,即不调整音调,取值范围为 -12 ~ 12,按半音音阶调整。每相邻两个值的音高距离相差半音;取值的绝对值越大,音调升高或降低得越多。
开启或关闭外部音频源数据输入。
通过本接口可以实现创建自定义的外部音频源,并通过主流通道传输该外部音频源的数据。
是否开启外部音频输入:
外部音频源的数据采样率,单位为 Hz。建议设置为 8000,16000,32000,44100 或 48000。
外部音频源的数据声道数:
使用前提 建议在通过 NERtc#enableLocalAudio 接口关闭本地音频设备采集之后调用该方法。
示例代码
//第一步 先关闭设备采集(若已经开启了本地设备采集)
NERtcSDK.getInstance().enableLocalAudio(false);
//第二步 打开外部音频输入
NERtcSDK.getInstance().setExternalAudioSource(true, 44100, 2);
//第三步 打开音频通道
NERtcSDK.getInstance().enableLocalAudio(true);
//第四步 推入外部音频输入数据,这里只推一帧作为参考
let frame: NERtcConstants.NERtcAudioExternalFrame = {
data: sampleData, //(Uint8Array)
sampleRate: mSampleRate, //采样率
channels: mChannels, //通道数
samplesPerChannel: mSampleRate * CUSTOM_AUDIO_TIME_DUR / 1000, //单个通道中采集点个数
syncTimestamp: lastSyncTimestamp //同步音频主辅流的时间戳,一般只在同时开启外部音频主流及辅流输入时用到
}
NERtcSDK.getInstance().pushExternalAudioFrame(frame)
开启或关闭外部音频辅流输入。
调用成功后可以使用 NERtc#pushExternalSubStreamAudioFrame 接口发送音频辅流 PCM 数据。
是否开启外部音频辅流数据输入。 - true:开启外部音频辅流输入,使用外部音频源,音频辅流由用户驱动。 - false(默认):关闭外部数据输入,不使用外部音频源,音频辅流由 SDK 驱动。
外部音频源的数据声道数。 - 1:单声道。 - 2:双声道。
开启或关闭外部视频源数据输入。
通过本接口可以实现创建自定义的外部视频源,并通过主流通道传输该外部视频源的数据。
使用前提 请在通过 () 接口关闭本地视频设备采集之后调用该方法。
调用时机 请在通过 (NERtcVideoStreamType streamType) 接口开启本地视频预览或通过 (NERtcVideoStreamType streamType, boolean enable) 接口开启视频流传输通道之前调用该方法,且必须使用同一种视频通道,即同为主流。
//第一步 先关闭视频设备采集 NERtcSDK.getInstance().enableLocalVideo(false, NERtcConstants.NERtcVideoStreamType.kNERtcVideoStreamTypeMain); //第二步 设置为外部视频 NERtcSDK.getInstance().setExternalVideoSource(true); //第三步 打开视频通道 NERtcSDK.getInstance().enableLocalVideo(true, NERtcConstants.NERtcVideoStreamType.kNERtcVideoStreamTypeMain); //第四步 推送视频帧 NERtcVideoFrame videoFrame = new NERtcVideoFrame(); videoFrame.format = NERtcVideoFrame.Format.I420; //视频数据空间格式 videoFrame.data = mBuffer.array(); //视频数据 videoFrame.width = mWidth; videoFrame.height = mHeight; videoFrame.rotation = mRotation; NERtcSDK.getInstance().pushExternalVideoFrame(videoFrame);
相关接口
自定义本地视频渲染器。
该方法设置本地视频渲染器。只影响本地用户看到的视频画面,不影响远端。
在 App 开发中,通常在初始化后调用该方法进行本地自定义渲染器设置,然后再加入房间。
视频流通道类型。
自定义的本地视频渲染器。
设置本地用户的媒体优先级。
如果某个用户的优先级为高,那么该用户媒体流的优先级就会高于其他用户,弱网环境下 SDK 会优先保证高优先级用户收到的媒体流的质量。
本地用户的媒体流优先级,默认为 NERtcConstants.MediaPriority#kNERtcMediaPriorityNormal,详细信息请参考 NERtcConstants.MediaPriority。
是否开启抢占模式。
设置弱网条件下发布的音视频流回退选项。 在网络不理想的环境下,发布的音视频质量都会下降。使用该接口并将 option 设置为 NERtcConstants.StreamFallbackOption#AUDIO_ONLY 后:
本地发布流回退处理选项。 默认为不回退处理 NERtcConstants.StreamFallbackOption#DISABLED。
设置视频编码属性。
通过此接口可以设置视频的编码分辨率、裁剪模式、码率、帧率、带宽受限时的视频编码降级偏好、编码的镜像模式、编码的方向模式参数,详细信息请参考设置视频属性。
本地视频编码配置
本地视频流类型
设置本地视频马赛克。
是否启用马赛克效果。
视频流类型。
马赛克作用的视频帧归一化区域。
设置视频水印,水印在本地预览及发送过程中均生效。
是否打开水印
水印设置,详细请参考 NERtcConstants.NERtcVideoWatermarkConfig
水印的视频类型,支持设置为主流或辅流,详细请参考 NERtcConstants.NERtcVideoStreamType
设置本地语音音调。
该方法改变本地说话人声音的音调。
语音频率。可以在 [0.5, 2.0] 范围内设置。取值越小,则音调越低。默认值为 1.0,表示不需要修改音调。
设置采集和播放声音混音后的音频数据格式。
通过本接口可以实现设置 NERtcAudioFrameObserver#onMixedAudioFrame 回调的混音音频格式。
指定 NERtcAudioFrameObserver#onMixedAudioFrame() 中返回数据的采样率和数据的通道数。
设置事件通知回调。
通过本接口可以实现根据自身业务场景,监听相应的主回调。
主回调。设置为 null 表示清空回调。
设置音视频通话的相关参数。
此接口提供技术预览或特别定制功能,详情请咨询技术支持。
参数说明
| **参数名称** | **类型** | **描述** |
|---|---|---|
| parameters | object | 音视频通话的参数集合。参考key请参考NERtcConstants.NERtcParameterKey |
设置音频播放回调的声音格式。
通过此接口可以实现 SDK 播放音频 PCM 回调 NERtcAudioFrameObserver#onPlaybackFrame 的采样率及声道数,
同时还可以设置读写模式。在写模式下,您可以通过 NERtcAudioFrameObserver#onPlaybackFrame 回调修改 PCM 数据,
后续将播放修改后的音频数据。
指定 NERtcAudioFrameObserver#onPlaybackFrame 中返回数据的采样率和数据的通道数。
设置播放远端混音前的音频数据格式。
通过本接口可以实现设置 NERtcAudioFrameObserver#onUserPlaybackSubStreamFrameBeforeMixing 回调的音频格式。
指定 () 中返回数据的采样率和数据的通道数。
注册解码前媒体数据观测器。
通过此接口可以设置 NERtcPredecodeObserver#onFrame() 回调监听,返回相关解码前媒体数据。
note: 请在引擎初始化之后调用此接口,且该方法在加入房间前后均可调用。
适用于需要自行处理音、视频数据的解码与渲染的场景。
目前仅支持传输 OPUS 格式的音频数据和 H.264 格式的视频数据。
接口对象实例。可以传 null 表示取消注册。
设置是否静音音频采集设备。
是否静音音频采集设备:true:静音音频采集设备。false:取消静音音频采集设备。
//静音设备<
NERtcSDK.getInstance().setRecordDeviceMute(true);
//解除设备静音
NERtcSDK.getInstance().setRecordDeviceMute(false);
相关接口
设置采集的音频格式。
通过本接口可以实现设置 NERtcAudioFrameObserver#onRecordFrame 回调的录制声音格式。
指定 NERtcAudioFrameObserver#onRecordFrame 中返回数据的采样率和数据的通道数。
自定义远端视频渲染器。
该方法绑定远端用户和显示视图,并设置远端用户视图在本地显示时的渲染模式和镜像模式,只影响本地用户看到的视频画面。
远端用户 ID
视频流通道类型。
自定义的远端视频渲染器,详细信息请参考 NERtcConstants.NERtcExternalVideoCanvas
设置弱网条件下订阅的音视频流回退选项。 弱网环境下,订阅的音视频质量会下降。调用该接口并将 option 设置为 NERtcConstants.StreamFallbackOption#VIDEO_STREAM_LOW 或者 NERtcConstants.StreamFallbackOption#AUDIO_ONLY 后:
订阅音视频流的回退选项,默认为 NERtcConstants.StreamFallbackOption#VIDEO_STREAM_LOW 弱网时回退到视频小流。
设置远端视频马赛克。
是否启用马赛克效果。
目标用户ID。
视频流类型。
马赛克作用的视频帧归一化区域。
设置是否由扬声器播放声音。
通过本接口可以实现设置是否将语音路由到扬声器,即设备外放。
是否将音频路由到扬声器:
注册统计信息观测器,设置统计信息回调。
统计信息观测器。详细信息请参考 NERtcStatsObserver。
开启精准对齐。 通过此接口可以实现精准对齐功能,对齐本地系统与服务端的时间。
是否开启精准对齐功能:
相关接口 可以调用 () 方法获取本地系统时间与服务端时间的差值。
你可以调用该方法指定不订阅的音频流。
不订阅此 用户uid列表 的音频。此列表为全量列表。如果列表为空或 null,取消订阅黑名单。
音频流类型
设置本端用户的视频辅流画布。
通过此接口可以实现设置本端用户的辅流显示视图。
视频画布,详细信息请参考 NERtcConstants.NERtcVideoCanvas
设置本地用户视图。
通过本接口可以实现绑定本地用户和显示视图,并设置本地用户视图在本地显示时的镜像模式和裁减比例,只影响本地用户看到的视频画面。
本地用户视频的画布。设置为 NULL 表示取消并释放已设置的画布,详细信息请参考 NERtcConstants.NERtcVideoCanvas
示例代码
let canvas: NERtcConstants.NERtcVideoCanvas = {
xComponentId: 'xxx', //画布唯一id
mirrorMode: NERtcConstants.NERtcVideoMirrorMode.kNERtcVideoMirrorModeEnabled, //开启镜像
scalingMode: NERtcConstants.NERtcVideoScalingMode.kNERtcVideoScaleFit //自适应
}
NERtcSDK.getInstance().setupLocalVideoCanvas(canvas)
设置远端用户的视频辅流画布。
通过此接口可以实现绑定远端用户和对应辅流的显示视图,即指定某个 uid 使用对应的画布显示。
视频画布,详细信息请参考 NERtcConstants.NERtcVideoCanvas
远端用户ID
使用前提 建议在收到远端用户加入房间的 () 回调后,再调用此接口通过回调返回的 uid 设置对应视图。
设置远端用户视图。
通过本接口可以实现绑定远端用户和显示视图,并设置远端用户视图在本地显示时的镜像模式和裁减比例,只影响本地用户看到的视频画面。
接口对象实例。可以传 null 表示取消注册。
设置视频采集回调的数据格式。
通过此接口可以对视频数据进行额外处理,例如美颜等操作。
接口对象实例。如果传入参数为 null,取消注册。
设置是视频流的模式。
通过本接口可以实现设置视频流的模式:单流、双流或者三流。发送端开启多流模式后,接收端可以选择接收对应的流。其中,大流指高分辨率、高码率的视频流,中流指标清分辨率、中码率的视频流,小流指低分辨率、低码率的视频流。
视频流类型,NERtcConstants.NERtcVideoStreamLayerCount。
预设美声效果。
通过此接口可以实现为本地发流用户设置 SDK 预设的人声美声效果。
请在引擎初始化之后调用此接口,且该方法在加入房间前后均可调用。
预设的美声效果模式。默认值为 kNERtcVoiceBeautifierOFF,即关闭美声效果。详细信息请参考 NERtcConstants.NERtcVoiceBeautifierType
该方法设置内部引擎为启用状态,在 NERtc#leaveChannel 后设置失效,将恢复至默认。
开启实时字幕。
通过本接口可以开启实时字幕。
请在引擎初始化之后调用此接口,且该方法在加入房间前后都可以调用。
ASR Caption 参数,参考 NERtcConstants.NERtcASRCaptionConfig
开始记录音频 dump。
音频 dump 可用于分析音频问题。
方法调用成功,其他失败。
开始记录音频 dump。
音频 dump 可用于分析音频问题。
类型 详细信息请参考 NERtcConstants#NERtcAudioDumpType。
开启伴音。
通过本接口可以实现指定本地或在线音频文件和录音设备采集的音频流进行混音。
创建伴音任务的配置选项,包括伴音任务类型、伴音文件的绝对路径或 URL 等。
使用前提
发送伴音前必须前调用 NERtc#enableLocalAudio 方法开启本地音频采集(V4.4.0 版本除外)。
let option: NERtcConstants.NERtcCreateAudioMixingOption = {
path: '', //伴音文件路径
loopCount: 1, //循环次数
sendEnabled: true, //是否编码发送
playbackEnabled: true, //是否本地播放
sendVolume: 100, //发送音量
playbackVolume: 100, //本地播放音量
startTimeStamp: BigInt(0), //音乐文件开始播放的时间,UTC 时间戳
sendWithAudioType: NERtcConstants.NERtcAudioStreamType.kNERtcAudioStreamTypeMain, //伴音跟随音频主流还是辅流,默认跟随主流
progressInterval: BigInt(1000), //播放进度回调间隔,单位ms,取值范围为 100~10000, 默认1000ms
}
let ret = NERtcSDK.getInstance().startAudioMixing(option)
if(ret == NERtcConstants.ErrorCode.NO_ERROR) {
//创建伴音任务成功
} else {
//创建伴音任务失败
}
相关回调
开启客户端本地录音。 通过此接口可以实现录制客户端房间内所有用户混音后的音频流,并将其保存在一个本地录音文件中。
客户端只能同时运行一个录音任务;若您在录音过程中重复调用 NERtcEx#startAudioRecording() 方法,会结束当前录制任务,并重新开始新的录音任务。 本端用户离开房间时,自动停止录音;也可以在通话中随时调用 NERtcEx#stopAudioRecording() 方法以实现手动停止录音。 请保证录音文件的保存路径存在并且可写,目前支持 WAV(音质保真度高,文件大)、AAC(音质保真度低,文件小)格式的文件。
参数说明
| **参数名称** | **类型** | **描述** |
|---|---|---|
| filePath | string | 录音文件在本地保存的绝对路径,需要精确到文件名及格式,例如:sdcard/xxx/audio.aac。 |
| sampleRate | number | 录音采样率。单位为赫兹(Hz),可以设置为 16000、32000(默认)、44100 或 48000。 |
| quality | NERtcConstants.NERtcAudioRecordingQuality | 录音音质。此参数仅在 AAC 格式下有效。详细信息请参考 NERtcConstants.NERtcAudioRecordingQuality。 |
开始客户端录音。 调用该方法后,客户端会录制房间内所有用户混音后的音频流,并将其保存在本地一个录音文件中。录制开始或结束时,自动触发 onAudioRecording() 回调。 指定的录音音质不同,录音文件会保存为不同格式:
开始混合外部视频。
视频流类型。
混合配置信息。
开始跨房间媒体流转发。
跨房间媒体流转发参数配置信息。详细信息请参考 NERtcConstants.NERtcChannelMediaRelayConfiguration
开始通话前网络质量探测。
启用该方法后,SDK 会通过回调方式反馈上下行网络的质量状态与质量探测报告,包括带宽、丢包率、网络抖动和往返时延等数据。一般用于通话前的网络质量探测场景,用户加入房间之前可以通过该方法预估音视频通话中本地用户的主观体验和客观网络状态。
相关回调如下:
onLastmileQuality:网络质量状态回调,以打分形式描述上下行网络质量的主观体验。该回调视网络情况在约 5 秒内返回。onLastmileProbeResult:网络质量探测报告回调,报告中通过客观数据反馈上下行网络质量。该回调视网络情况在约 30 秒内返回。开始推流。
通过本接口可以实现将音视频流(RTMP 流)推送到 CDN。观众端可以通过指定的 CDN 推流地址(streamingUrl)进行拉流观看。
用于单人直播、PK 直播、连麦等场景。
推流参数
开启屏幕共享,屏幕共享内容以辅流形式发送。
如果您在加入房间后调用该方法开启辅流,调用成功后,远端触发 {NERtcCallback#onUserSubStreamVideoStart} 回调
开启视频预览。
通过本接口可以实现在加入房间前启动本地视频预览,支持预览本地摄像头或外部输入视频。
使用前提 请在通过 (canvas : NERtcConstants.NERtcVideoCanvas) 接口设置视频画布后调用该方法。
参数说明
| **参数名称** | **类型** | **描述** |
|---|---|---|
| streamType | NERtcConstants.NERtcVideoStreamType | 视频通道类型:
|
停止播放所有音效文件。
通过此接口可以实现在同时播放多个音效文件时,可以一次性停止播放所有文件(含暂停播放的文件)。
使用前提
请先调用 NERtc#playEffect 接口播放音效文件。
相关接口
可以调用 NERtc#stopEffect 方法停止播放指定音效文件。
停止实时字幕。
通过此接口可以停止实时字幕。
建议在调用 NERtc.startASRCaption 接口开启实时字幕后调用此方法。
结束记录音频 dump。
{@code 0} 方法调用成功,其他失败。
停止通话前网络质量探测。
停止推流
流的唯一id
停止推流。
通过此接口可以停止当前正在进行的 RTMP 推流。
使用前提 建议在通过 NERtc.NERtc.startPushStreaming 接口开启推流后调用此方法。
相关回调 推流成功后,房间内的用户会收到 NERtcCallback.NERtcCallbackEx.onStopPushStreaming 的回调。
关闭辅流形式的屏幕共享。
如果您在加入房间后调用该方法关闭辅流,调用成功后,远端触发 {NERtcCallback#onUserSubStreamVideoStop} 回调。
停止视频预览。
通过本接口可以实现在预览本地视频后关闭预览。
使用前提 建议在通过 (streamType: NERtcConstants.NERtcVideoStreamType) 接口开启视频预览后调用该方法。
纯音频 SDK 禁用该接口,如需使用请前往云信官网下载并替换成视频 SDK。
参数说明
| **参数名称** | **类型** | **描述** |
|---|---|---|
| streamType | NERtcConstants.NERtcVideoStreamType | 视频通道类型:
|
取消或恢复订阅所有远端用户的音频主流。
加入房间时,默认订阅所有远端用户的音频主流,即 NERtc#setParameters 方法的
kNERtcKeyAutoSubscribeAudio 参数默认设置为 true;只有当该参数的设置为 false 时,此接口的调用才会生效。
是否订阅所有用户的音频主流, true:订阅音频主流 false:取消订阅音频主流
取消或恢复订阅指定远端用户的音频主流。
加入房间时,默认订阅所有远端用户的音频主流,您也可以通过此方法取消或恢复订阅指定远端用户的音频主流。
指定用户的 ID。
是否订阅指定用户的音频主流:
该方法设置内部引擎为启用状态,在 NERtc#leaveChannel 后设置失效,将恢复至默认。 在开启音频自动订阅且未打开服务端 ASL 自动选路的情况下,调用该接口无效。
设置是否订阅指定远端用户的音频辅流。
远端用户 ID。
是否订阅指定音频辅流:
订阅或取消订阅远端用户的视频辅流。
远端用户ID。
是否订阅远端的视频辅流,true:订阅远端视频辅流 false:取消订阅远端视频辅流
订阅或取消订阅指定远端用户的视频主流。
加入房间后,默认不订阅所有远端用户的视频主流;若您希望看到指定远端用户的视频,可以在监听到对方加入房间或发布视频流之后,通过此方法订阅该用户的视频主流。
参数说明
| **参数名称** | **类型** | **描述** |
|---|---|---|
| uid | bigint | 指定用户的 ID。 |
| subscribe | boolean | 是否订阅远端用户的视频流:
|
| subscribeType | NERtcConstants.NERtcRemoteVideoSubscribeType | 订阅的视频大小流类型:
|
切换前置或后置摄像头。
使用前提 请在调用 () 或 (string token,string channelName,bigint uid) 方法且开启摄像头之后调用此接口。
指定前置/后置摄像头。
该方法需要在相机启动后调用,例如调用 (NERtcVideoStreamType streamType) 或 () 后。
相机类型,该参数为必填参数,若未赋值,SDK会报错。
快速切换音视频房间。
通过此接口可以实现当房间场景为直播场景时,用户从当前房间快速切换至另一个房间。
在服务器端生成的用于鉴权的安全认证签名(Token),可设置为:
期望切换到的目标房间名称。
本地视频画面截图。 调用 takeLocalSnapshot 截取本地主流或本地辅流的视频画面,并通过 NERtcTakeSnapshotCallback 的 onTakeSnapshotResult 回调返回截图画面的数据。
截图的视频流类型。详细信息请参考 NERtcConstants.NERtcVideoStreamType。
截图回调。详细信息请参考 NERtcCallback.NERtcTakeSnapshotCallback。
远端视频画面截图。 调用 takeRemoteSnapshot 截取指定 uid 远端主流和远端辅流的视频画面,并通过 NERtcTakeSnapshotCallback 的 onTakeSnapshotResult 回调返回截图画面的数据。
远端用户 ID。
截图的视频流类型。支持设置为主流或辅流。详细信息请参考 NERtcConstants.NERtcVideoStreamType。
截图回调。详细信息请参考 NERtcCallback.NERtcTakeSnapshotCallback。
更新媒体流转发的目标房间。
成功开始跨房间转发媒体流后,如果您希望将流转发到多个目标房间,或退出当前的转发房间,可以调用该方法。
跨房间媒体流转发参数配置信息。详细信息请参考 NERtcConstants.NERtcChannelMediaRelayConfiguration。
更新房间内指定推流任务。 通过此接口可以实现调整指定推流任务的编码参数、画布布局、推流模式等。
推流任务信息。
使用前提 请先调用 NERtc#addLiveStreamTask 方法添加推流任务。
class CustomCallback extends NERtcCallbackEx {
//... 其他回调
onAddLiveStreamTask(taskId: string, url: string, errorCode: number): void {
//添加推流任务回调
}
onUpdateLiveStreamTask(taskId: string, url: string, errorCode: number): void {
//更新推流任务回调
}
onRemoveLiveStreamTask(taskId: string, errorCode: number): void {
//删除推流任务回调
}
}
let taskInfo: NERtcConstants.NERtcLiveStreamTaskInfo = {
taskID: "xxxx",
streamURL: 'xxxx'
//其他更多参数
}
//更新推流任务
NERtcSDK.getInstance().updateLiveStreamTask(taskInfo)
相关回调
NERtcCallback.NERtcCallbackEx#onAddLiveStreamTask :推流任务已成功删除回调。
NERtcCallback.NERtcCallbackEx#onLiveStreamState:推流任务状态已改变回调。
NERtcCallback.NERtcCallbackEx#onRemoveLiveStreamTask: 推流任务状态已更新
上传 SDK 信息。
只能在加入房间后调用。上传的信息包括 log 和 Audio dump 等文件。
添加房间内推流任务。
通过此接口可以实现增加一路旁路推流任务;若需推送多路流,则需多次调用该方法。