Interface NERoomRtcController

  • All Implemented Interfaces:
    com.netease.yunxin.kit.roomkit.api.NEBaseController , com.netease.yunxin.kit.roomkit.api.NERoomRtcBaseController

    
    public interface NERoomRtcController
     implements NERoomRtcBaseController
                        

    音视频控制器

    • Constructor Detail

    • Method Detail

      • joinRtcChannel

         abstract Unit joinRtcChannel(String channelName, NECallback<Unit> callback)

        加入音视频子房间。注意:在加入其他子房间前,需要先通过joinRtcChannel加入主房间。

        Parameters:
        channelName - 频道名称
        callback - 回调
      • muteMyAudio

         abstract Unit muteMyAudio(NECallback<Unit> callback)

        开启本地静音,并关闭本地上行音频流。

        Parameters:
        callback - 回调
      • muteMyAudio

         abstract Unit muteMyAudio(Boolean enableMediaPub, NECallback<Unit> callback)

        开启本地静音,并根据 enableMediaPub 参数决定是否关闭本地上行音频流。

        Parameters:
        enableMediaPub - 开启静音后是否允许发送音频流,默认为false,即不发送。如果设置为true,则本地开启静音后,会继续发送本地音频流(此时为静音包,其他端听不到本端声音)。
        callback - 回调
      • unmuteMyAudio

         abstract Unit unmuteMyAudio(Boolean enableMediaPub, NECallback<Unit> callback)

        关闭本地静音,并根据 enableMediaPub 参数决定是否开启本地上行音频流

        Parameters:
        enableMediaPub - 关闭静音后是否允许发送音频流,默认为true,即发送。如果设置为false,则本地关闭静音后,不会发送本地音频流(此时其他端听不到本端声音)。
        callback - 回调
      • disconnectMyAudio

         abstract Unit disconnectMyAudio(NECallback<Unit> callback)

        断开音频,音频断开后将会中断自己与房间里其他人的音频互通

        Parameters:
        callback - 回调
      • reconnectMyAudio

         abstract Unit reconnectMyAudio(NECallback<Unit> callback)

        恢复音频,恢复音频后将恢复自己与其他人的音频互通,但是具体音频是否可听见还是取决于成员的mute状态

        Parameters:
        callback - 回调
      • enableMediaPub

         abstract Integer enableMediaPub(Integer mediaType, Boolean enable)

        开启或关闭本地媒体流(主流)的发送。 该方法用于开始或停止向网络发送本地音频或视频数据。 该方法不影响接收或播放远端媒体流,也不会影响本地音频或视频的采集状态。 该方法在加入房间前后均可调用。

        Parameters:
        mediaType - 媒体发布类型,暂时仅支持音频。取值参考 NERoomRtcMediaPublishType
        enable - 是否发布本地媒体流。true(默认):发布本地媒体流。false:不发布本地媒体流。
      • enableMediaPub

         abstract Integer enableMediaPub(String channelName, Integer mediaType, Boolean enable)

        开启或关闭对应频道本地媒体流(主流)的发送。 该方法用于开始或停止向网络发送本地音频或视频数据。 该方法不影响接收或播放远端媒体流,也不会影响本地音频或视频的采集状态。 该方法在加入房间前后均可调用。

        Parameters:
        channelName - 频道名称
        mediaType - 媒体发布类型,暂时仅支持音频。取值参考 NERoomRtcMediaPublishType
        enable - 是否发布本地媒体流。true(默认):发布本地媒体流。false:不发布本地媒体流。
      • enableAudioAINS

         abstract Integer enableAudioAINS(Boolean enable)

        开启/关闭 AI 降噪功能,默认不会开启。开启 AI 降噪之后,在嘈杂的环境中可以针对背景人声、键盘声等 非稳态噪声进行定向降噪,同时也会提升对于环境稳态噪声的抑制,保留更纯粹的人声。

        Parameters:
        enable - 开启/关闭 AI 降噪功能。
      • muteMemberAudio

         abstract Unit muteMemberAudio(String userUuid, NECallback<Unit> callback)

        尝试关闭成员音频,会进行权限校验

        Parameters:
        userUuid - 成员账号Id
        callback - 回调
      • muteMemberVideo

         abstract Unit muteMemberVideo(String userUuid, NECallback<Unit> callback)

        尝试关闭成员视频,会进行权限校验

        Parameters:
        userUuid - 成员账号Id
        callback - 回调
      • startScreenShare

         abstract Unit startScreenShare(Intent screenShareResultData, MediaProjection.Callback mediaProjectionCallback, NECallback<Unit> callback)

        开启本端屏幕共享

        Parameters:
        screenShareResultData - Android 的录屏请求结果 Intent,在请求录屏权限时返回
        mediaProjectionCallback - 录屏状态回调,用于监听录屏的结束通知
        callback - 回调
      • enableLoopbackRecording

         abstract Integer enableLoopbackRecording(Boolean enable, Intent mediaProjectionResultIntent, MediaProjection.Callback mediaProjectionCallback)

        开启/关闭本端音频共享。

        Parameters:
        enable - true:开启音频共享;false:关闭音频共享。
        mediaProjectionResultIntent - Android 的录屏请求结果 Intent,在请求录屏权限时返回。如果 enable 为 true,该参数必传。
        mediaProjectionCallback - 录屏状态回调,用于监听录屏的结束通知。
      • stopMemberScreenShare

         abstract Unit stopMemberScreenShare(String userUuid, NECallback<Unit> callback)

        尝试关闭房间内成员的屏幕共享,会进行权限校验。

        Parameters:
        userUuid - 成员账号Id
        callback - 回调
      • setupRemoteVideoRender

         abstract Integer setupRemoteVideoRender(IVideoRender videoRender, String userUuid)

        设置远端用户视图

        Parameters:
        videoRender - 视频画布
        userUuid - 用户id
      • setupRemoteVideoSubStreamRender

         abstract Integer setupRemoteVideoSubStreamRender(IVideoRender videoRender, String userUuid)

        设置远端的辅流视频画布

        Parameters:
        videoRender - 视频画布
        userUuid - 用户id
      • adjustPlaybackSignalVolume

         abstract Integer adjustPlaybackSignalVolume(Integer volume)

        调节本地播放的所有远端用户的信号音量。 通过此接口可以实现调节所有远端用户在本地播放的混音音量。

        Parameters:
        volume - 采集信号音量,取值范围为 0, 400。0:静音。100:(默认)原始音量。400:最大可为原始音量的 4 倍(自带溢出保护)
      • adjustChannelPlaybackSignalVolume

         abstract Integer adjustChannelPlaybackSignalVolume(String channelName, Integer volume)

        调节对应房间本地播放的所有远端用户的信号音量。通过此接口可以实现调节所有远端用户在本地播放的混音音量。

        Parameters:
        channelName - 频道名称
        volume - 采集信号音量,取值范围为 0, 400。0:静音。100:(默认)原始音量。400:最大可为原始音量的 4 倍(自带溢出保护)
      • adjustUserPlaybackSignalVolume

         abstract Integer adjustUserPlaybackSignalVolume(String userUuid, Integer volume)

        调节本地播放的指定远端用户的信号音量 加入房间后,您可以多次调用该方法设置本地播放的不同远端用户的音量;也可以反复调节本地播放的某个远端用户的音量。

        Parameters:
        userUuid - 用户id
        volume - 播放音量,取值范围为 0,100
      • startChannelMediaRelay

         abstract Unit startChannelMediaRelay(NECallback<Unit> callback)

        开始跨房间媒体流转发 该方法可用于实现跨房间连麦等场景。支持同时转发到 4 个房间,同一个房间可以有多个转发进来的媒体流

      • stopChannelMediaRelay

         abstract Integer stopChannelMediaRelay()

        停止跨房间媒体流转发 主播离开房间时,跨房间媒体流转发自动停止,您也可以在需要的时候随时调用 stopChannelMediaRelay 方法,此时主播会退出所有目标房间

      • pushExternalVideoFrame

         abstract Integer pushExternalVideoFrame(NERoomVideoFrame frame)

        推送外部视频帧 该方法主动将视频帧数据用 NERtcVideoFrame 类封装后传递给 SDK (该方法设置内部引擎为启用状态,在 leaveChannel 后不再有效。请确保在你调用本方法前已调用 setExternalVideoSource,并将参数设为 true,否则调用本方法后会一直报错。)

        Parameters:
        frame - 外部视频帧的数据信息
      • setExternalVideoSource

         abstract Integer setExternalVideoSource(Boolean enable)

        开启或关闭外部视频源数据输入 该方法启用外部视频数据输入功能 (该方法设置内部引擎为启用状态,在 leaveChannel 后仍然有效。如果需要关闭该功能,需要在下次通话前调用接口关闭该功能。如果使用了外部视频源,请在调用 startScreenCapture、enableLocalVideo 或 startVideoPreview 之前调用此 API。屏幕共享时,外部输入视频源默认使用辅流通道;非屏幕共享时,外部输入视频源使用主流通道,此时与 Camera 互斥。之前使用主流通道或者当前使用主流通道,且主流已经开启时,请勿更改设置。之前使用辅流通道或者当前使用辅流通道,且辅流已经开启时,请勿更改设置。)

        Parameters:
        enable - 是否使用外部视频源
      • enableAudioVolumeIndication

         abstract Integer enableAudioVolumeIndication(Boolean enable, Integer interval)

        启用说话者音量提示。 该方法允许 SDK 定期向 App 反馈本地发流用户和瞬时音量最高的远端用户(最多 3 位)的音量相关信息, 即当前谁在说话以及说话者的音量。启用该方法后,只要房间内有发流用户,无论是否有人说话, SDK 都会在加入房间后根据预设的时间间隔触发 NERoomListener.onRtcRemoteAudioVolumeIndication 回调

        Parameters:
        enable - 是否启用说话者音量提示。
        interval - 指定音量提示的时间间隔。单位为毫秒。必须设置为 100 毫秒的整数倍值,建议设置为 200 毫秒以上。
      • enableAudioVolumeIndication

         abstract Integer enableAudioVolumeIndication(Boolean enable, Integer interval, Boolean enableVad)

        启用说话者音量提示。 该方法允许 SDK 定期向 App 反馈本地发流用户和瞬时音量最高的远端用户(最多 3 位)的音量相关信息, 即当前谁在说话以及说话者的音量。启用该方法后,只要房间内有发流用户,无论是否有人说话, SDK 都会在加入房间后根据预设的时间间隔触发 NERoomListener.onRtcRemoteAudioVolumeIndication 回调

        Parameters:
        enable - 是否启用说话者音量提示。
        interval - 指定音量提示的时间间隔。单位为毫秒。必须设置为 100 毫秒的整数倍值,建议设置为 200 毫秒以上。
        enableVad - 是否启用本地采集人声监测。
      • enableAudioVolumeIndication

         abstract Integer enableAudioVolumeIndication(String channelName, Boolean enable, Integer interval, Boolean enableVad)

        启用说话者音量提示。 该方法允许 SDK 定期向 App 反馈本地发流用户和瞬时音量最高的远端用户(最多 3 位)的音量相关信息, 即当前谁在说话以及说话者的音量。启用该方法后,只要房间内有发流用户,无论是否有人说话, SDK 都会在加入房间后根据预设的时间间隔触发 NERoomListener.onRtcRemoteAudioVolumeIndication 回调

        Parameters:
        channelName - 频道名称
        enable - 是否启用说话者音量提示。
        interval - 指定音量提示的时间间隔。单位为毫秒。必须设置为 100 毫秒的整数倍值,建议设置为 200 毫秒以上。
        enableVad - 是否启用本地采集人声监测。
      • enableEarBack

         abstract Integer enableEarBack(Integer volume)

        开启耳返功能。 开启耳返功能后,必须连接上耳机或耳麦,才能正常使用耳返功能。

        Parameters:
        volume - 设置耳返音量,可设置为 0~100,默认为 100。
      • startAudioMixing

         abstract Integer startAudioMixing(NERoomCreateAudioMixingOption option)

        开始播放音乐文件。 该方法指定本地或在线音频文件来和录音设备采集的音频流进行混音。 支持的音乐文件类型包括 MP3、M4A、AAC、3GP、WMA 和 WAV 格式,支持本地文件或在线 URL。

        Parameters:
        option - 创建混音任务配置的选项,包括混音任务类型、混音文件全路径或 URL 等,详细信息请参考 audio.
      • playEffect

         abstract Integer playEffect(Integer effectId, NERoomCreateAudioEffectOption option)

        播放指定音效文件。 该方法播放指定的本地或在线音效文件。 支持的音效文件类型包括 MP3、M4A、AAC、3GP、WMA 和 WAV 格式,支持本地 SD 卡中的文件和在线 URL

        Parameters:
        effectId - 指定音效的 ID。每个音效均应有唯一的 ID。
        option - 音效相关参数,包括混音任务类型、混音文件路径等。
      • setEffectPosition

         abstract Integer setEffectPosition(Integer effectId, Long pos)

        设置音乐文件播放位置,该方法可以设置音效文件的播放位置,这样你可以根据实际情况播放文件,而非从头到尾播放整个文件。

        Parameters:
        effectId - 音效ID
        pos - 音效文件的播放位置,单位为毫秒
      • setEffectPositionWithId

         abstract Integer setEffectPositionWithId(Integer effectId, Long pos)

        设置音乐文件播放位置,该方法可以设置音效文件的播放位置,这样你可以根据实际情况播放文件,而非从头到尾播放整个文件。

        Parameters:
        effectId - 音效ID
        pos - 音效文件的播放位置,单位为毫秒
      • stopAudioMixing

         abstract Integer stopAudioMixing()

        停止播放音乐文件及混音。 该方法停止播放伴奏。

      • stopEffect

         abstract Integer stopEffect(Integer effectId)

        停止播放指定音效文件。

        Parameters:
        effectId - 指定音效的 ID。每个音效均有唯一的 ID。
      • setAudioMixingSendVolume

         abstract Integer setAudioMixingSendVolume(Integer volume)

        调节伴奏发送音量。 该方法调节混音里伴奏的发送音量大小。

        Parameters:
        volume - 伴奏发送音量。取值范围为 0~100。默认 100,即原始文件音量。
      • setAudioMixingPlaybackVolume

         abstract Integer setAudioMixingPlaybackVolume(Integer volume)

        调节伴奏播放音量。 该方法调节混音里伴奏的播放音量大小。

        Parameters:
        volume - 伴奏播放音量。取值范围为 0~100。默认 100,即原始文件音量。
      • setEffectSendVolume

         abstract Integer setEffectSendVolume(Integer effectId, Integer volume)

        设置音效文件发送音量。

        Parameters:
        effectId - 指定音效的 ID。每个音效均有唯一的 ID。
        volume - 音效发送音量。范围为0~100,默认为100,表示原始音量。
      • setEffectPlaybackVolume

         abstract Integer setEffectPlaybackVolume(Integer effectId, Integer volume)

        设置音效文件播放音量。

        Parameters:
        effectId - 指定音效的 ID。每个音效均有唯一的 ID。
        volume - 音效播放音量。范围为 0~100,默认为 100。
      • pauseEffect

         abstract Integer pauseEffect(Integer effectId)

        暂停播放 音效文件

        Parameters:
        effectId - 音效文件id
      • setEffectPitch

         abstract Integer setEffectPitch(Integer effectId, Integer pitch)

        调节音效升降key。 发起音效后可调解。伴音结束后再发起需要重新设置。 音调pitch取值范围为 -12,12,每相邻两个值的音高距离相差半音。取值的绝对值越大,音调升高或降低得越多。

        Parameters:
        effectId - 指定音效的 ID。每个音效均有唯一的 ID。
        pitch - 按半音音阶调整本地播放音乐的音调,默认值为0,即不调整音调。取值范围为 -12,12。
      • getEffectPitch

         abstract Integer getEffectPitch(Integer effectId)

        获取当前调节音效升降key。

        Parameters:
        effectId - 指定音效的 ID。每个音效均有唯一的 ID。
      • setAudioMixingPitch

         abstract Integer setAudioMixingPitch(Integer pitch)

        调节伴音升降key。 发起伴音后可调解。伴音结束后再发起需要重新设置。 音调pitch取值范围为 -12,12,每相邻两个值的音高距离相差半音。取值的绝对值越大,音调升高或降低得越多。

        Parameters:
        pitch - 按半音音阶调整本地播放音乐的音调,默认值为0,即不调整音调。取值范围为 -12,12。
      • getParameter

         abstract String getParameter(String parameterKey, String extraInfo)

        以String 的形式获取一些内部参数,此接口为隐藏接口,需要特定参数及特定时机,详情联系技术支持。

      • getNtpTimeOffset

         abstract Long getNtpTimeOffset()

        获取本地系统时间与服务端时间差值。 可以用于做时间对齐,通过 (System.currentTimeMillis() - offset) 可能得到当前服务端时间。 返回本地与服务端时间差值,单位为毫秒(ms)。如果没有成功加入音视频房间,返回 0。

      • setStreamAlignmentProperty

         abstract Unit setStreamAlignmentProperty(Boolean enable)

        对齐本地系统与服务端的时间。 enable 是否开启精准对齐功能。 true:开启精准对齐功能。false:关闭精准对齐功能。

      • setAudioSubscribeOnlyBy

         abstract Unit setAudioSubscribeOnlyBy(List<String> uidList)

        设置自己的音频只能被房间内指定的人订阅。 默认房间所有其他人都可以订阅自己的音频。

      • sendSEIMsg

         abstract Unit sendSEIMsg(String seiMsg)

        通过主流通道发送媒体补充增强信息(SEI)。 在本端推流传输视频流数据同时,发送流媒体补充增强信息来同步一些其他附加信息。 当推流方发送 SEI 后,拉流方可通过监听 onRecvSEIMsg 的回调获取 SEI 内容。

      • setLocalVoiceEqualization

         abstract Integer setLocalVoiceEqualization(Integer bandFrequency, Integer bandGain)

        设置本地语音音效均衡,即自定义设置本地人声均衡波段的中心频率。

        Parameters:
        bandFrequency - 频谱子带索引,取值范围是 0-9,分别代表 10 个频带,对应的中心频率是 31,62,125,250,500,1k,2k,4k,8k,16k Hz
        bandGain - 每个 band 的增益,单位是 dB,每一个值的范围是 -15,15,默认值为 0。
      • adjustRecordingSignalVolume

         abstract Integer adjustRecordingSignalVolume(Integer volume)

        调节人声音量

        Parameters:
        volume - 采集信号音量,取值范围为 0, 400 0:静音。 100:(默认)原始音量。 400:最大可为原始音量的 4 倍(自带溢出保护)
      • setChannelProfile

         abstract Integer setChannelProfile(Integer value)

        设置房间场景 房间场景可设置为通话(默认)或直播场景。针对不同场景采取的优化策略不同, 如通话场景侧重语音流畅度,直播场景侧重视频清晰度。 该方法必须在调用 joinChannel 前使用,进入房间后无法再设置房间场景。 参考NERoomRtcChannelProfile

      • setAudioFrameObserver

         abstract Integer setAudioFrameObserver(NERoomRtcAudioFrameObserver observer)

        注册语音观测器对象。该方法用于设置音频采集/播放 PCM 回调,可用于声音处理等操作。

        Parameters:
        observer - 接口对象实例。 如果传入 NULL,则取消注册。
      • enableLocalAudio

         abstract Integer enableLocalAudio(String channelName, Boolean enable)

        开启/关闭本地音频设备

        Parameters:
        channelName - 频道名称
        enable - 是否开启
      • setClientRole

         abstract Integer setClientRole(Integer role)

        设置 RTC 角色。用户角色支持设置为主播或观众,主播和观众的权限不同。

        • 主播:可以开关摄像头等设备、可以发布流、可以操作互动直播推流相关接口、上下线对其他房间内用户可见

        • 观众:不可以开关摄像头等设备、不可以发布流、不可以操作互动直播推流相关接口、上下线对其他房间内用户不可见。

        默认情况下用户以主播角色加入房间。在加入房间前,用户可以调用本接口切换本端模式为观众。在加入房间后,用户也可以通过本接口切换用户模式。 用户切换为观众角色时,SDK 会自动关闭音视频设备。

        Parameters:
        role - 指定用户角色 NERoomRtcClientRole
      • setParameters

         abstract Unit setParameters(String parameter, Object value)

        设置音视频通话的相关参数。
注意: • 请在调用 init 初始化之前调用此方法。 • 此方法提供技术预览或特别定制功能,若您需要使用此接口,请咨询技术支持获取帮助。参数 • params • 音视频通话的相关参数。

      • enableEncryption

         abstract Integer enableEncryption(String gmEncryptKey, NEEncryptionMode encryptionMode)

        开启媒体流加密

        Parameters:
        gmEncryptKey - 加密密钥,一般由服务器按照规则生成下发
        encryptionMode - 加密模式 return 0 成功 其他 失败