io.agora.rtc.AgoraLocalUser类 参考

  • Java

更新时间不可用

构造及析构函数说明

AgoraLocalUser()

io.agora.rtc.AgoraLocalUser.AgoraLocalUser(long cptr)

构造函数。

成员函数说明

getUserRole()

native int io.agora.rtc.AgoraLocalUser.getUserRole()

获取用户角色。

返回值

用户角色。

publishAudio()

native int io.agora.rtc.AgoraLocalUser.publishAudio(AgoraLocalAudioTrack agora_local_audio_track)

发布本地音频轨道至频道。

发布音频轨道时,SDK 默认会将所有音频轨道进行混音。

参数
参数名描述
agora_local_audio_track

待发布的本地音频轨道。

表格内容超出当前宽度,可横向滚动查看更多列。

返回值

  • 0: 方法调用成功。
  • < 0: 方法调用失败。

publishVideo()

native int io.agora.rtc.AgoraLocalUser.publishVideo(AgoraLocalVideoTrack agora_local_video_track)

发布本地视频轨道至频道。

参数
参数名描述
agora_local_video_track

待发布的本地视频轨道。

表格内容超出当前宽度,可横向滚动查看更多列。

返回值

  • 0: 方法调用成功。
  • < 0: 方法调用失败。

registerAudioEncodedFrameObserver()

int io.agora.rtc.AgoraLocalUser.registerAudioEncodedFrameObserver(IAudioEncodedFrameObserver observer)

注册一个编码后的音频数据观测器。

自从

4.4.32。

参数
参数名描述
observer

编码后的音频数据观测器对象:IAudioEncodedFrameObserver。

表格内容超出当前宽度,可横向滚动查看更多列。

返回值

  • 0: 方法调用成功。
  • < 0: 方法调用失败。

registerAudioFrameObserver() [1/2]

native int io.agora.rtc.AgoraLocalUser.registerAudioFrameObserver(IAudioFrameObserver observer)

注册音频数据观测器。

你需要在该方法中实现一个 IAudioFrameObserver 类,并根据具体场景需求,注册以下回调:

  • onRecordAudioFrame: 当 SDK 接收到本地录音设备采集的音频数据时,会触发该回调。
  • onPlaybackAudioFrame: 当 SDK 接收到远端发送过来用于播放的的音频数据时,会触发该回调。
  • onPlaybackAudioFrameBeforeMixing: 当 SDK 接收到远端指定用户发送过来尚未混音的音频数据时,会触发该回调。
  • onMixedAudioFrame: 当 SDK 接收到本地采集的和用于播放的混音后的音频数据时,会触发该回调。
参数
参数名描述
observer

音频数据观测器:IAudioFrameObserver。

表格内容超出当前宽度,可横向滚动查看更多列。

返回值

  • 0: 方法调用成功。
  • < 0: 方法调用失败。

registerAudioFrameObserver() [2/2]

int io.agora.rtc.AgoraLocalUser.registerAudioFrameObserver(IAudioFrameObserver observer, boolean enableVad, AgoraAudioVadConfigV2 vadConfig)

注册一个开启了 VAD (语音活动检测)能力的音频数据观测器对象。

一旦你开启了 VAD 功能,就可以在 onPlaybackAudioFrameBeforeMixing 回调中接收 VAD 相关信息。

参数
参数名描述
observer

待注册的音频数据观测对象:IAudioFrameObserver。

enableVad

是否开启 VAD 功能:

  • true:开启。
  • false:不开启。
vadConfig

VAD 配置信息:AgoraAudioVadConfigV2。

表格内容超出当前宽度,可横向滚动查看更多列。

返回值

  • 0: 方法调用成功。
  • < 0: 方法调用失败。

registerObserver()

native int io.agora.rtc.AgoraLocalUser.registerObserver(ILocalUserObserver observer)

注册本地用户观测器。

你需要在该方法中实现一个 ILocalUserObserver 类。完成注册后,ILocalUserObserver 会接收 AgoraLocalUser 对象的回调事件。

参数
参数名描述
observer

ILocalUserObserver 对象。

表格内容超出当前宽度,可横向滚动查看更多列。

返回值

  • 0: 方法调用成功。
  • < 0: 方法调用失败。

registerVideoEncodedFrameObserver()

int io.agora.rtc.AgoraLocalUser.registerVideoEncodedFrameObserver(AgoraVideoEncodedFrameObserver agoraVideoEncodedFrameObserver)

注册一个编码后的视频数据观测器。

参数
参数名描述
agoraVideoEncodedFrameObserver

编码后的视频数据观测器对象:AgoraVideoEncodedFrameObserver。

表格内容超出当前宽度,可横向滚动查看更多列。

返回值

  • 0: 方法调用成功。
  • < 0: 方法调用失败。

registerVideoFrameObserver()

int io.agora.rtc.AgoraLocalUser.registerVideoFrameObserver(AgoraVideoFrameObserver2 agoraVideoFrameObserver2)

注册视频数据观测器。

参数
参数名描述
agoraVideoFrameObserver2

视频数据观测器:AgoraVideoFrameObserver2。

表格内容超出当前宽度,可横向滚动查看更多列。

返回值

  • 0: 方法调用成功。
  • < 0: 方法调用失败。

sendAudioMetaData()

int io.agora.rtc.AgoraLocalUser.sendAudioMetaData(byte[] metaData)

发送音频 Metadata 数据。

成功调用该方法后,远端会触发 onAudioMetaDataReceived 回调,远端用户可以在该回调中获取接收到的音频 Metadata 数据。

参数
参数名描述
metaData

音频 Metadata 数据。

表格内容超出当前宽度,可横向滚动查看更多列。

返回值

  • 0: 方法调用成功。
  • < 0: 方法调用失败。

sendIntraRequest()

native int io.agora.rtc.AgoraLocalUser.sendIntraRequest(String uid)

向指定主播发送关键帧请求。

你成功发送请求后,主播会收到 onIntraRequestReceived 回调。

参数
参数名描述
uid

主播的用户 ID。

表格内容超出当前宽度,可横向滚动查看更多列。

返回值

  • 0: 方法调用成功。
  • < 0: 方法调用失败。

setAudioEncoderConfig()

native int io.agora.rtc.AgoraLocalUser.setAudioEncoderConfig(AudioEncoderConfig config)

配置音频编码属性。

完成配置后,SDK 会将音频编码属性应用到所有音频轨道。

参数
参数名描述
config

音频编码属性 AudioEncoderConfig。

表格内容超出当前宽度,可横向滚动查看更多列。

返回值

  • 0: 方法调用成功。
  • < 0: 方法调用失败。

setAudioScenario()

native int io.agora.rtc.AgoraLocalUser.setAudioScenario(int scenarioType)

设置音频应用场景。

该方法适用于各种音频场景,你可以按需选择。例如,在音乐教学等高音质需求的场景中,建议将 scenarioType 设置为 AUDIO_SCENARIO_GAME_STREAMING(3)。

参数
参数名描述
scenarioType

音频场景。不同的音频场景下,设备的音量类型是不同的。

  • AUDIO_SCENARIO_DEFAULT(0):(默认)自动场景,根据用户角色和音频路由自动匹配合适的音质。
  • AUDIO_SCENARIO_GAME_STREAMING(3): 高音质场景,适用于音乐为主的场景。
  • AUDIO_SCENARIO_CHATROOM(5): 聊天室场景,适用于用户需要频繁上下麦的场景。
  • AUDIO_SCENARIO_CHORUS(7): 合唱场景。适用于网络条件良好,要求极低延时的实时合唱场景。
  • AUDIO_SCENARIO_MEETING(8): 会议场景,适用于人声为主的多人会议。
表格内容超出当前宽度,可横向滚动查看更多列。

返回值

  • 0: 方法调用成功。
  • < 0: 方法调用失败。

setAudioVolumeIndicationParameters()

native int io.agora.rtc.AgoraLocalUser.setAudioVolumeIndicationParameters(int interval_in_ms, int smooth, boolean report_vad)

setMixedAudioFrameParameters()

native int io.agora.rtc.AgoraLocalUser.setMixedAudioFrameParameters(int channels, int sample_rate_hz, int mode, int samples_per_call)

设置 onMixedAudioFrame 回调中返回的音频数据的参数。

参数
参数名描述
channels

onMixedAudioFrame 回调中音频数据的声道数。

  • 1: 单声道
  • 2: 双声道
sample_rate_hz

onMixedAudioFrame 中音频数据的采样率(Hz)。可设为 8000, 16000, 32000, 44100, 或 48000。

mode

onMixedAudioFrame 中音频数据的使用模式:

  • 0: 只读模式,即仅读取回调中的 AudioFrame 音频数据,而不进行修改。
  • 1: 只写模式,即使用自己的数据代替回调中的 AudioFrame 音频数据。例如,如果你希望使用自己采集的音频数据时,可以使用该模式。
  • 2: 读写模式,即读取回调中的 AudioFrame 音频数据,对其进行修改,然后播放。例如,如果你希望应用自己的音频处理模块,进行音频后处理,达到变声的效果,可以设置该模式。
samples_per_call

onMixedAudioFram 回调中的采样点数。在 RTMP 或 RTMPS 推流场景中,将该值设为 1024。

表格内容超出当前宽度,可横向滚动查看更多列。

返回值

  • 0: 方法调用成功。
  • < 0: 方法调用失败。

setPlaybackAudioFrameBeforeMixingParameters()

native int io.agora.rtc.AgoraLocalUser.setPlaybackAudioFrameBeforeMixingParameters(int channels, int sample_rate_hz)

设置 onPlaybackAudioFrameBeforeMixing 回调中返回的音频数据的参数。

参数
参数名描述
channels

onPlaybackAudioFrameBeforeMixing 回调中音频数据的声道数。

  • 1: 单声道
  • 2: 双声道
sample_rate_hz

onPlaybackAudioFrameBeforeMixing 中音频数据的采样率(Hz)。可设为 8000、16000、32000、44100 或 48000。

表格内容超出当前宽度,可横向滚动查看更多列。

返回值

  • 0: 方法调用成功。
  • < 0: 方法调用失败。

setPlaybackAudioFrameParameters()

native int io.agora.rtc.AgoraLocalUser.setPlaybackAudioFrameParameters(int channels, int sample_rate_hz, int mode, int samples_per_call)

设置 onPlaybackAudioFrame 回调中返回的音频数据的参数。

参数
参数名描述
channels

onPlaybackAudioFrame 回调中音频数据的声道数。

  • 1: 单声道
  • 2: 双声道
sample_rate_hz

onPlaybackAudioFrame 中音频数据的采样率(Hz)。可设为 8000, 16000, 32000, 44100, 或 48000。

mode

onPlaybackAudioFrame 中音频数据的使用模式:

  • 0: 只读模式,即仅读取回调中的 AudioFrame 音频数据,而不进行修改。
  • 1: 只写模式,即使用自己的数据代替回调中的 AudioFrame 音频数据。例如,如果你希望使用自己采集的音频数据时,可以使用该模式。
  • 2: 读写模式,即读取回调中的 AudioFrame 音频数据,对其进行修改,然后播放。例如,如果你希望应用自己的音频处理模块,进行音频后处理,达到变声的效果,可以设置该模式。
samples_per_call

onPlaybackAudioFram 回调中的采样点数。在 RTMP 或 RTMPS 推流场景中,将该值设为 1024。

表格内容超出当前宽度,可横向滚动查看更多列。

返回值

  • 0: 方法调用成功。
  • < 0: 方法调用失败。

setRecordingAudioFrameParameters()

native int io.agora.rtc.AgoraLocalUser.setRecordingAudioFrameParameters(int channels, int sample_rate_hz, int mode, int samples_per_call)

设置 onRecordAudioFrame 回调中返回的音频数据的参数。

参数
参数名描述
channels

onPlaybackAudioFrame 回调中音频数据的声道数。

  • 1: 单声道
  • 2: 双声道
sample_rate_hz

onRecordAudioFrame 中音频数据的采样率(Hz)。可设为 8000, 16000, 32000, 44100, 或 48000。

mode

onRecordAudioFrame 中音频数据的使用模式:

  • 0: 只读模式,即仅读取回调中的 AudioFrame 音频数据,而不进行修改。
  • 1: 只写模式,即使用自己的数据代替回调中的 AudioFrame 音频数据。例如,如果你希望使用自己采集的音频数据时,可以使用该模式。
  • 2: 读写模式,即读取回调中的 AudioFrame 音频数据,对其进行修改,然后播放。例如,如果你希望应用自己的音频处理模块,进行音频后处理,达到变声的效果,可以设置该模式。
samples_per_call

onRecordAudioFram 回调中的采样点数。在 RTMP 或 RTMPS 推流场景中,将该值设为 1024。

表格内容超出当前宽度,可横向滚动查看更多列。

返回值

  • 0: 方法调用成功。
  • < 0: 方法调用失败。

setUserRole()

native void io.agora.rtc.AgoraLocalUser.setUserRole(int role)

设置用户角色。

在加入频道前后,你都可以调用该方法:

  • 加入频道前调用,可以设置用户角色为发流者(主播)或收流者(观众)。
  • 加入频道后调用,可以切换用户角色为发流者或收流者。

你可以通过 onChangeRoleSuccess 或 onChangeRoleFailure 获取该方法的调用结果。

注解

调用 connect 加入频道时,如果填入的 token 与你在该方法中设置的 role 不匹配,则加入 频道失败,SDK 触发 onConnectionFailure 回调。

参数
参数名描述
role

用户角色。

表格内容超出当前宽度,可横向滚动查看更多列。

subscribeAllAudio()

native int io.agora.rtc.AgoraLocalUser.subscribeAllAudio()

订阅频道内所有用户的音频。

成功调用该方法后,SDK 自动订阅在调用该方法后加入频道的用户的音频。

返回值

  • 0: 方法调用成功。
  • < 0: 方法调用失败。

subscribeAllVideo()

native int io.agora.rtc.AgoraLocalUser.subscribeAllVideo(VideoSubscriptionOptions options)

订阅频道中所有用户的视频。

成功调用该方法后,SDK 自动订阅在调用该方法后加入频道的用户的视频。

参数
参数名描述
options

视频订阅选项:VideoSubscriptionOptions。

表格内容超出当前宽度,可横向滚动查看更多列。

返回值

  • 0: 方法调用成功。
  • < 0: 方法调用失败。

subscribeAudio()

native int io.agora.rtc.AgoraLocalUser.subscribeAudio(String user_id)

订阅频道内指定用户的音频。

参数
参数名描述
user_id

想要订阅的用户 ID。

表格内容超出当前宽度,可横向滚动查看更多列。

返回值

  • 0: 方法调用成功。
  • < 0: 方法调用失败。

subscribeVideo()

native int io.agora.rtc.AgoraLocalUser.subscribeVideo(String user_id, VideoSubscriptionOptions options)

订阅远端指定用户的视频。

参数
参数名描述
user_id

带订阅视频的远端用户的 ID。

options

视频订阅选项:VideoSubscriptionOptions,例如,仅订阅编码后的视频数据,或仅订阅视频小流。

表格内容超出当前宽度,可横向滚动查看更多列。

返回值

  • 0: 方法调用成功。
  • < 0: 方法调用失败。

unpublishAudio()

native int io.agora.rtc.AgoraLocalUser.unpublishAudio(AgoraLocalAudioTrack agora_local_audio_track)

停止向频道内发布本地音频轨道。

参数
参数名描述
agora_local_audio_track

待停止发布的本地音频轨道。

表格内容超出当前宽度,可横向滚动查看更多列。

返回值

  • 0: 方法调用成功。
  • < 0: 方法调用失败。

unpublishVideo()

native int io.agora.rtc.AgoraLocalUser.unpublishVideo(AgoraLocalVideoTrack agora_local_video_track)

停止发布本地视频轨道至频道。

参数
参数名描述
agora_local_video_track

待停止发布的本地视频轨道。

表格内容超出当前宽度,可横向滚动查看更多列。

返回值

  • 0: 方法调用成功。
  • < 0: 方法调用失败。

unregisterAudioEncodedFrameObserver()

int io.agora.rtc.AgoraLocalUser.unregisterAudioEncodedFrameObserver(IAudioEncodedFrameObserver observer)

取消注册编码后的音频数据观测器。

自从

4.4.32。

参数
参数名描述
observer

取消注册的 IAudioEncodedFrameObserver 对象。

表格内容超出当前宽度,可横向滚动查看更多列。

返回值

  • 0: 方法调用成功。
  • < 0: 方法调用失败。

unregisterAudioFrameObserver()

native int io.agora.rtc.AgoraLocalUser.unregisterAudioFrameObserver()

释放音频数据观测器。

参数
参数名描述
observer

音频数据观测器:IAudioFrameObserver。

表格内容超出当前宽度,可横向滚动查看更多列。

返回值

  • 0: 方法调用成功。
  • < 0: 方法调用失败。

unregisterObserver()

native int io.agora.rtc.AgoraLocalUser.unregisterObserver()

释放本地用户观测器 ILocalUserObserver 对象。

参数
参数名描述
observer

ILocalUserObserver 对象。

表格内容超出当前宽度,可横向滚动查看更多列。

返回值

  • 0: 方法调用成功。
  • < 0: 方法调用失败。

unregisterVideoEncodedFrameObserver()

int io.agora.rtc.AgoraLocalUser.unregisterVideoEncodedFrameObserver(AgoraVideoEncodedFrameObserver agoraVideoEncodedFrameObserver)

取消注册编码后的视频数据观测器。

参数
参数名描述
agoraVideoEncodedFrameObserver

观测器对象:AgoraVideoEncodedFrameObserver。

表格内容超出当前宽度,可横向滚动查看更多列。

返回值

  • 0: 方法调用成功。
  • < 0: 方法调用失败。

unregisterVideoFrameObserver()

int io.agora.rtc.AgoraLocalUser.unregisterVideoFrameObserver(AgoraVideoFrameObserver2 agoraVideoFrameObserver2)

取消注册视频数据观测器。

参数
参数名描述
agoraVideoFrameObserver2

视频数据观测器:AgoraVideoFrameObserver2。

表格内容超出当前宽度,可横向滚动查看更多列。

返回值

  • 0: 方法调用成功。
  • < 0: 方法调用失败。

unsubscribeAllAudio()

native int io.agora.rtc.AgoraLocalUser.unsubscribeAllAudio()

停止订阅频道内所有远端音频。

成功调用该方法后,如未再调用 subscribeAudio 或 subscribeAllAudio,SDK 自动停止订阅在调用该方法后加入频道的用户的音频。

返回值

  • 0: 方法调用成功。
  • < 0: 方法调用失败。

unsubscribeAllVideo()

native int io.agora.rtc.AgoraLocalUser.unsubscribeAllVideo()

停止订阅频道内所有用户的视频。

成功调用该方法后,除非再调用 subscribeVideo 或 subscribeAllVideo,否则 SDK 自动停止订阅在调用该方法后加入频道的用户视频。

返回值

  • 0: 方法调用成功。
  • < 0: 方法调用失败。

unsubscribeAudio()

native int io.agora.rtc.AgoraLocalUser.unsubscribeAudio(String user_id)

停止订阅频道内指定用户的音频。

参数
参数名描述
user_id

待停止订阅的用户 ID。

表格内容超出当前宽度,可横向滚动查看更多列。

返回值

  • 0: 方法调用成功。
  • < 0: 方法调用失败。

unsubscribeVideo()

native int io.agora.rtc.AgoraLocalUser.unsubscribeVideo(String user_id)

停止订阅频道内指定用户的视频。

参数
参数名描述
user_id

待停止订阅视频的用户的 ID。

表格内容超出当前宽度,可横向滚动查看更多列。

返回值

  • 0: 方法调用成功。
  • < 0: 方法调用失败。

该类的文档由以下文件生成:

  • AgoraLocalUser.java