Public 成员函数 | |
abstract int | setChannelProfile (int profile) |
abstract int | setClientRole (int role) |
abstract int | joinChannel (String token, String channelName, String optionalInfo, int optionalUid) |
abstract int | leaveChannel () |
abstract int | renewToken (String token) |
abstract int | enableWebSdkInteroperability (boolean enabled) |
abstract int | getConnectionState () |
abstract int | enableAudio () |
abstract int | disableAudio () |
abstract int | pauseAudio () |
abstract int | resumeAudio () |
abstract int | setAudioProfile (int profile, int scenario) |
abstract int | setHighQualityAudioParameters (boolean fullband, boolean stereo, boolean fullBitrate) |
abstract int | adjustRecordingSignalVolume (int volume) |
abstract int | adjustPlaybackSignalVolume (int volume) |
abstract int | enableAudioVolumeIndication (int interval, int smooth) |
abstract int | enableAudioQualityIndication (boolean enabled) |
abstract int | enableLocalAudio (boolean enabled) |
abstract int | muteLocalAudioStream (boolean muted) |
abstract int | muteRemoteAudioStream (int uid, boolean muted) |
abstract int | muteAllRemoteAudioStreams (boolean muted) |
abstract int | setDefaultMuteAllRemoteAudioStreams (boolean muted) |
abstract int | enableVideo () |
abstract int | disableVideo () |
abstract int | setVideoProfile (int profile, boolean swapWidthAndHeight) |
abstract int | setVideoProfile (int width, int height, int frameRate, int bitrate) |
abstract int | setVideoEncoderConfiguration (VideoEncoderConfiguration config) |
abstract int | setupLocalVideo (VideoCanvas local) |
abstract int | setupRemoteVideo (VideoCanvas remote) |
abstract int | setLocalRenderMode (int mode) |
abstract int | setRemoteRenderMode (int uid, int mode) |
abstract int | startPreview () |
abstract int | stopPreview () |
abstract int | enableLocalVideo (boolean enabled) |
abstract int | muteLocalVideoStream (boolean muted) |
abstract int | muteRemoteVideoStream (int uid, boolean muted) |
abstract int | muteAllRemoteVideoStreams (boolean muted) |
abstract int | setDefaultMuteAllRemoteVideoStreams (boolean muted) |
abstract int | setDefaultAudioRoutetoSpeakerphone (boolean defaultToSpeaker) |
abstract int | setEnableSpeakerphone (boolean enabled) |
abstract boolean | isSpeakerphoneEnabled () |
abstract int | enableInEarMonitoring (boolean enabled) |
abstract int | setInEarMonitoringVolume (int volume) |
abstract int | useExternalAudioDevice () |
abstract int | setLocalVoicePitch (double pitch) |
abstract int | setLocalVoiceEqualization (int bandFrequency, int bandGain) |
abstract int | setLocalVoiceReverb (int reverbKey, int value) |
abstract int | startAudioMixing (String filePath, boolean loopback, boolean replace, int cycle) |
abstract int | stopAudioMixing () |
abstract int | pauseAudioMixing () |
abstract int | resumeAudioMixing () |
abstract int | adjustAudioMixingVolume (int volume) |
abstract int | adjustAudioMixingPlayoutVolume (int volume) |
abstract int | adjustAudioMixingPublishVolume (int volume) |
abstract int | getAudioMixingDuration () |
abstract int | getAudioMixingCurrentPosition () |
abstract int | setAudioMixingPosition (int pos) |
abstract IAudioEffectManager | getAudioEffectManager () |
abstract int | startAudioRecording (String filePath, int quality) |
abstract int | stopAudioRecording () |
abstract int | startEchoTest () |
abstract int | stopEchoTest () |
abstract int | enableLastmileTest () |
abstract int | disableLastmileTest () |
abstract int | setVideoSource (IVideoSource source) |
abstract int | setLocalVideoRenderer (IVideoSink render) |
abstract int | setRemoteVideoRenderer (int uid, IVideoSink render) |
abstract int | setExternalAudioSource (boolean enabled, int sampleRate, int channels) |
abstract int | pushExternalAudioFrame (byte[] data, long timestamp) |
abstract void | setExternalVideoSource (boolean enable, boolean useTexture, boolean pushMode) |
abstract boolean | pushExternalVideoFrame (AgoraVideoFrame frame) |
abstract boolean | isTextureEncodeSupported () |
abstract int | registerAudioFrameObserver (IAudioFrameObserver observer) |
abstract int | setRecordingAudioFrameParameters (int sampleRate, int channel, int mode, int samplesPerCall) |
abstract int | setPlaybackAudioFrameParameters (int sampleRate, int channel, int mode, int samplesPerCall) |
abstract int | setMixedAudioFrameParameters (int sampleRate, int samplesPerCall) |
abstract int | addVideoWatermark (AgoraImage watermark) |
abstract int | clearVideoWatermarks () |
abstract int | setLocalPublishFallbackOption (int option) |
abstract int | setRemoteSubscribeFallbackOption (int option) |
abstract int | enableDualStreamMode (boolean enabled) |
abstract int | setRemoteVideoStreamType (int uid, int streamType) |
abstract int | setRemoteDefaultVideoStreamType (int streamType) |
abstract int | setEncryptionSecret (String secret) |
abstract int | setEncryptionMode (String encryptionMode) |
abstract int | addInjectStreamUrl (String url, LiveInjectStreamConfig config) |
abstract int | removeInjectStreamUrl (String url) |
abstract int | addPublishStreamUrl (String url, boolean transcodingEnabled) |
abstract int | removePublishStreamUrl (String url) |
abstract int | setLiveTranscoding (LiveTranscoding transcoding) |
abstract int | configPublisher (PublisherConfiguration config) |
abstract int | setVideoCompositingLayout (VideoCompositingLayout layout) |
abstract int | clearVideoCompositingLayout () |
abstract int | createDataStream (boolean reliable, boolean ordered) |
abstract int | sendStreamMessage (int streamId, byte[] message) |
abstract int | setVideoQualityParameters (boolean preferFrameRateOverImageQuality) |
abstract int | setLocalVideoMirrorMode (int mode) |
abstract int | switchCamera () |
abstract boolean | isCameraZoomSupported () |
abstract boolean | isCameraTorchSupported () |
abstract boolean | isCameraFocusSupported () |
abstract boolean | isCameraExposurePositionSupported () |
abstract boolean | isCameraAutoFocusFaceModeSupported () |
abstract int | setCameraZoomFactor (float factor) |
abstract float | getCameraMaxZoomFactor () |
abstract int | setCameraFocusPositionInPreview (float positionX, float positionY) |
abstract int | setCameraExposurePosition (float positionXinView, float positionYinView) |
abstract int | setCameraTorchOn (boolean isOn) |
abstract int | setCameraAutoFocusFaceModeEnabled (boolean enabled) |
abstract String | getCallId () |
abstract int | rate (String callId, int rating, String description) |
abstract int | complain (String callId, String description) |
abstract int | setLogFile (String filePath) |
abstract int | setLogFilter (int filter) |
abstract long | getNativeHandle () |
void | addHandler (IRtcEngineEventHandler handler) |
abstract boolean | enableHighPerfWifiMode (boolean enable) |
abstract void | monitorHeadsetEvent (boolean monitor) |
abstract void | monitorBluetoothHeadsetEvent (boolean monitor) |
abstract void | setPreferHeadset (boolean enabled) |
abstract int | setParameters (String parameters) |
abstract String | getParameter (String parameter, String args) |
静态 Public 成员函数 | |
static synchronized RtcEngine | create (Context context, String appId, IRtcEngineEventHandler handler) throws Exception |
static synchronized void | destroy () |
static SurfaceView | CreateRendererView (Context context) |
static int | getRecommendedEncoderType () |
static String | getSdkVersion () |
static String | getMediaEngineVersion () |
static String | getErrorDescription (int error) |
|
static |
创建 RtcEngine 实例。
目前 Agora Native SDK 只支持一个 RtcEngine 实例,每个 App 仅创建一个 RtcEngine 对象。RtcEngine 类的所有接口函数,如无特殊说明,都是异步调用,对接口的调用建议在同一个线程进行。所有返回值为 int 型的 API,如无特殊说明,返回值 0 为调用成功,返回值小于 0 为调用失败。
context | 安卓活动 (Android Activity) 的上下文 |
appId | Agora 为 App 开发者签发的 APP ID |
handler | io.agora.rtc.IRtcEngineEventHandler 是一个提供了缺省实现的抽象类,SDK 通过该抽象类向 App 报告 SDK 运行时的各种事件 |
Exception | 调用该方法时可能会发生的异常说明 |
|
static |
销毁 RtcEngine 实例。
该方法释放 Agora SDK 使用的所有资源。有些 App 只在用户需要时才进行语音通话,不需要时则将资源释放出来用于其他操作,该方法对这类程序可能比较有用。只要调用了 destroy 方法,用户将无法再使用和回调该 SDK 内的其它方法。如需再次使用通信功能,必须重新创建 create 一个 RtcEngine 实例(instance)。
|
abstract |
设置频道模式。
该方法用于设置频道模式 (Profile)。Agora RtcEngine 需知道 App 的使用场景(例如通信模式或直播模式),从而使用不同的优化手段。
profile | 频道模式:
|
|
abstract |
设置直播场景下的用户角色。
在加入频道前,用户需要通过本方法设置观众(默认)或主播模式。在加入频道后,用户可以通过本方法切换用户模式。
role | 用户角色。详细定义见 Client Role |
|
abstract |
加入频道。
该方法让用户加入通话频道,在同一个频道内的用户可以互相通话,多个用户加入同一个频道,可以群聊。使用不同 App ID 的 App 是不能互通的。如果已在通话中,用户必须调用 leaveChannel 退出当前通话,才能进入下一个频道。
token | 在 App 服务器端生成的用于鉴权的 Token。该参数为可选,如果用户启用的是 App ID,可以将该值设为 null。如果用户想使用 Token,Agora 还会给开发者分发一个 App Certificate,并结合 Token 的算法在 App 的服务器端生成 Token。与 App ID 相比,Token 适用于安全要求较高的开发环境
|
channelName | 标识通话的频道名称,长度在 64 字节以内的字符串。以下为支持的字符集范围(共 89 个字符):
|
optionalInfo | (非必选项)开发者需加入的任何附加信息。一般可设置为空字符串,或频道相关信息。该信息不会传递给频道内的其他用户 |
optionalUid | (非必选项)用户 ID,32 位无符号整数。建议设置范围:1 到 (2^32-1),并保证唯一性。如果不指定(即设为 0),SDK 会自动分配一个,并在 onJoinChannelSuccess 回调方法中返回,App 层必须记住该返回值并维护,SDK 不对该返回值进行维护。uid 在 SDK 内部用 32 位无符号整数表示,由于 Java 不支持无符号整数,uid 被当成 32 位有符号整数处理,对于过大的整数,Java 会表示为负数,如有需要可以用 (uid&0xffffffffL) 转换成 64 位整数 |
|
abstract |
离开频道。
离开频道,即挂断或退出通话。 当调用 joinChannel API 方法后,必须调用 leaveChannel 结束通话,否则无法开始下一次通话。 不管当前是否在通话中,都可以调用 leaveChannel,没有副作用。该方法会把会话相关的所有资源释放掉。该方法是异步操作,调用返回时并没有真正退出频道。在真正退出频道后,SDK 会触发 onLeaveChannel 回调。
|
abstract |
更新 Token。
该方法用于更新 Token。如果启用了 Token 机制,过一段时间后使用的 Token 会失效。当:
App 应重新获取 Token,然后调用该 API 更新 Token,否则 SDK 无法和服务器建立连接。
token | 新的 Token |
|
abstract |
打开与 Web SDK 的互通(仅在直播下适用)。
该方法打开或关闭与 Agora Web SDK 的互通。该方法仅在直播模式下适用,通信模式下默认互通是打开的。
enabled | 是否打开与 Agora Web SDK 的互通:
|
|
abstract |
获取当前网络连接状态。
|
abstract |
启用音频模块(默认为开启状态)。
|
abstract |
关闭音频模块。
|
abstract |
|
abstract |
|
abstract |
设置音频编码配置。
profile | 设置采样率,码率,编码模式和声道数,详细定义见 AudioProfile |
scenario | 设置音频应用场景,详细定义见 AudioScenario |
|
abstract |
设置音频高音质选项。
该方法设置音频高音质选项。请在加入频道前调用本方法并一次性设置好三个模式。切勿在加入频道后再次调用本方法。
fullband | 全频带编解码器(48 kHz 采样率), 不兼容 1.7.4 以前版本
|
stereo | 立体声编解码器,不兼容 1.7.4 以前版本
|
fullBitrate | 高码率模式,建议仅在纯音频模式下使用
|
|
abstract |
调节录音音量。
volume | 录音信号音量,可在 0~400 范围内进行调节:
|
|
abstract |
调节播放音量。
volume | 播放信号音量,可在 0~400 范围内进行调节:
|
|
abstract |
启用说话者音量提示。
该方法允许 SDK 定期向 App 反馈当前谁在说话以及说话者的音量。启用该方法后,无论频道内是否有人说话,都会在说话声音音量提示回调 onAudioVolumeIndication 回调中按设置的间隔时间返回音量提示。
interval | 指定音量提示的时间间隔:
|
smooth | 平滑系数,指定音量提示的灵敏度。取值范围为 [0, 10],建议值为 3,数字越大,波动越灵敏;数字越小,波动越平滑。 |
|
abstract |
启用音频质量通知回调。
该方法启用音频质量通知回调。一旦启用,onAudioQuality 将被定期触发。
enabled | 是否启用音频质量通知回调
|
|
abstract |
开/关本地音频采集。
当 App 加入频道时,它的语音功能默认是开启的。该方法可以关闭或重新开启本地语音功能,停止或重新开始本地音频采集及处理。
该方法不影响接收或播放远端音频流,适用于只听不发的用户场景。
语音功能关闭或重新开启后,会收到回调 onMicrophoneEnabled。
enabled |
|
|
abstract |
开/关本地音频发送。
静音/取消静音。该方法用于允许/禁止往网络发送本地音频流。
muted |
|
|
abstract |
接收/停止接收指定音频流。
uid | 指定的用户 ID |
muted |
|
|
abstract |
接收/停止接收所有音频流。
muted |
|
|
abstract |
设置是否默认接收音频流。 该方法在加入频道前后都可调用。如果在加入频道后调用,会接收不到后面加入频道的用户的音频流。
muted | 是否默认不接收所有远端音频:
|
|
abstract |
启用视频模块。
该方法用于打开视频模式。可以在加入频道前或者通话中调用,在加入频道前调用,则自动开启视频模式,在通话中调用则由音频模式切换为视频模式。调用 disableVideo 方法可关闭视频模式。
|
abstract |
关闭视频模块。
该方法用于关闭视频。可以在加入频道前或者通话中调用,在加入频道前调用,则自动开启纯音频模式,在通话中调用则由视频模式切换为纯音频频模式。调用 enableVideo 方法可开启视频模式。
|
abstract |
设置视频属性。
该方法设置视频的编码属性。 如果用户加入频道后不需要重新设置视频编码属性,则 Agora 建议在 enableVideo 前调用该方法,可以加快首帧出图的时间。
profile | 视频属性,详细定义见 Video Profile |
swapWidthAndHeight | SDK 会按照你选择的视频属性 (profile) 输出固定宽高的视频。该参数设置是否交换宽和高:
|
|
abstract |
手动设置视频属性。
该方法手动设置视频的编码属性。 如果用户加入频道后不需要重新设置视频编码属性,则 Agora 建议在 enableVideo 前调用该方法,可以加快首帧出图的时间。
width | 你想要设置的视频宽度,宽 × 高的最大值不超过 1280 × 720。 |
height | 你想要设置的视频高度,宽 × 高的最大值不超过 1280 × 720。 |
frameRate | 你想要设置的视频帧率,最高值不超过 30,如: 5、10、15、24、30 等。 |
bitrate | 你想要设置的视频码率,需要开发者根据想要设置的视频的宽、高和帧率,根据 Bitrate 中的码率参考表,手动推算出合适值。宽和高固定的情况下,码率随帧率的变化而变化:
|
|
abstract |
设置视频编码属性。
该方法设置视频编码属性。每个属性对应一套视频参数,如分辨率、帧率、码率、视频方向等。 所有设置的参数均为理想情况下的最大值。当视频引擎因网络环境等原因无法达到设置的分辨率、帧率或码率的最大值时,会取最接近最大值的那个值。
如果用户加入频道后不需要重新设置视频编码属性,则 Agora 建议在 enableVideo 前调用该方法,可以加快首帧出图的时间。
config | 视频编码属性,详细定义见 VideoEncoderConfiguration |
|
abstract |
设置本地视图。 该方法设置本地视图。App 通过调用此接口绑定本地视频流的显示视图 (View),并设置视频显示模式。在 App 开发中,通常在初始化后调用该方法进行本地视频设置,然后再加入频道。退出频道后,绑定仍然有效,如果需要解除绑定,可以指定空 (null) View 调用 setupLocalVideo。
local | 本地视频显示属性,详细定义见 Video Canvas |
|
abstract |
设置远端用户视图。
该方法绑定远程用户和显示视图,即设定用户 ID 指定的用户用哪个视图显示。调用该接口时需要指定远程视频的用户 ID,一般可以在进频道前提前设置好。
如果 App 不能事先知道对方的用户 ID,可以在 APP 收到 onUserJoined 事件时设置。如果启用了视频录制功能,视频录制服务会做为一个哑客户端加入频道,因此其他客户端也会收到它的 onUserJoined 事件,App 不应给它绑定视图(因为它不会发送视频流),如果 App 不能识别哑客户端,可以在 onFirstRemoteVideoDecoded 事件时再绑定视图。解除某个用户的绑定视图可以把 view 设置为空。退出频道后,SDK 会把远程用户的绑定关系清除掉。
remote | 远端视图属性,详细定义见 Video Canvas |
|
abstract |
设置本地视频显示模式。
该方法设置本地视频显示模式。App 可以多次调用此方法更改显示模式。
mode | 视频显示模式:
|
|
abstract |
设置远端视频显示模式。
该方法设置远端视频显示模式。App 可以多次调用此方法更改显示模式。
uid | 远端用户 ID |
mode | 视频显示模式:
|
|
static |
创建渲染视图。
该方法创建视频渲染视图,返回 SurfaceView 的类型。View 的操作和布局由 App 管理, Agora SDK 在 App 提供的 View 上进行渲染。显示视频视图必须调用该方法,而不是直接调用 SurfaceView。
context | 安卓活动 (Android Activity) 的上下文。 |
|
abstract |
开启视频预览。
该方法用于在进入频道前启动本地视频预览。调用该 API 前,必须:
|
abstract |
停止视频预览。
|
abstract |
开/关本地视频采集。
该方法禁用/启用本地视频功能。该方法用于只看不发的视频场景。 请在 enableVideo 后调用该方法,否则该方法可能无法正常使用。 调用 enableVideo 后,本地视频默认开启。使用该方法可以开启或关闭本地视频,且不影响接收远端视频。
enabled | 是否启用本地视频:
|
|
abstract |
开/关本地视频发送。
muted | 发送本地视频流
|
|
abstract |
接收/停止接收指定视频流。
uid | 指定的用户 ID |
muted |
|
|
abstract |
接收/停止接收所有视频流。
muted |
|
|
abstract |
设置是否默认接收视频流。
muted | 是否默认不接收所有远端视频流:
|
|
abstract |
设置默认的音频播放路由。
该方法设置接收到的语音从听筒或扬声器出声。如果用户不调用本方法,则语音默认从听筒出声。 如果你想要在加入频道后修改语音路由,可以使用 setEnableSpeakerphone. 各频道模式下默认的语音路由:
defaultToSpeaker |
|
|
abstract |
启用/关闭扬声器播放。 该方法设置是否将语音路由设到扬声器(外放)。 你可以在 setDefaultAudioRouteToSpeakerphone 方法中查看默认的语音路由。
enabled | 是否将音频路由到外放:
|
|
abstract |
检查扬声器状态启用状态。
该方法检查扬声器是否已开启。
|
abstract |
开启耳返功能。
该方法打开或关闭耳返功能。
enabled |
|
|
abstract |
设置耳返音量。
volume | 设置耳返音量,取值范围在 0 到 100 间。默认值为 100。 |
|
abstract |
|
abstract |
设置本地语音音调。
该方法改变本地说话人声音的音调。
pitch | 语音频率。可以在 [0.5, 2.0] 范围内设置。取值越小,则音调越低。默认值为 1.0,表示不需要修改音调。 |
|
abstract |
设置本地语音音效均衡。
bandFrequency | 频谱子带索引,取值范围是 [0-9],分别代表 10 个频带,对应的中心频率是 [31,62,125,250,500,1k,2k,4k,8k,16k] Hz |
bandGain | 每个 band 的增益,单位是 dB,每一个值的范围是 [-15,15],默认值为 0 |
|
abstract |
设置本地音效混响。
reverbKey | 混响音效 Key。该方法共有 5 个混响音效 Key,分别如 value 栏列出。 |
value | 各混响音效 Key 所对应的值:
|
|
abstract |
开始播放音乐文件及混音。
该方法指定本地或在线音频文件来和麦克风采集的音频流进行混音或替换。替换是指用音频文件替换麦克风采集的音频流。该方法可以选择是否让对方听到本地播放的音频,并指定循环播放的次数。 调用本方法播放伴奏结束后,会收到 onAudioMixingFinished 回调。
filePath | 指定需要混音的本地或在线音频文件的绝对路径。支持的音频格式包括:mp3、mp4、m4a、aac、3gp、mkv、wav 及 flac。详见 Supported Media Formats。
|
loopback |
|
replace |
|
cycle | 指定音频文件循环播放的次数:
|
|
abstract |
停止播放音乐文件及混音。
该方法停止播放伴奏。请在频道内调用该方法。
|
abstract |
暂停播放音乐文件及混音。
该方法暂停播放伴奏。请在频道内调用该方法。
|
abstract |
恢复播放音乐文件及混音。
该方法恢复混音,继续播放伴奏。请在频道内调用该方法。
|
abstract |
调节音乐文件的播放音量。
该方法调节混音里伴奏在本端和远端播放的音量大小。请在频道内调用该方法。
volume | 伴奏音量范围为 0~100。默认 100 为原始文件音量 |
|
abstract |
调节音乐文件的本地播放音量。
该方法调节混音里音乐文件在本端播放的音量大小。请在频道内调用该方法。
volume | 伴奏音量范围为 0~100。默认 100 为原始文件音量 |
|
abstract |
调节音乐文件的远端播放音量。
该方法调节混音里音乐文件在远端播放的音量大小。请在频道内调用该方法。
volume | 伴奏音量范围为 0~100。默认 100 为原始文件音量 |
|
abstract |
获取音乐文件的时长。
该方法获取音乐文件时长,单位为毫秒。请在频道内调用该方法。如果返回值 < 0,表明调用失败。
|
abstract |
获取音乐文件的播放进度。
该方法获取当前伴奏播放进度,单位为毫秒。请在频道内调用该方法。
|
abstract |
设置音乐文件的播放位置。
该方法可以设置音频文件的播放位置,这样你可以根据实际情况播放文件,而不是非得从头到尾播放一个文件。
pos | 整数。进度条位置,单位为毫秒 |
|
abstract |
获取 IAudioEffectManager 类,以管理音效文件。
|
abstract |
开始客户端录音。
Agora SDK 支持通话过程中在客户端进行录音。该方法录制频道内所有用户的音频,并生成一个包含所有用户声音的录音文件,录音文件格式可以为:
请确保 App 里指定的目录存在且可写。该接口需在加入频道之后调用。如果调用 leaveChannel 时还在录音,录音会自动停止。
filePath | 录音文件的本地保存路径,由用户自行指定,需精确到文件名及格式,例如:/dir1/dir2/dir3/audio.aac |
quality | 录音音质: |
|
abstract |
停止客户端录音。
该方法停止录音。该接口需要在 leaveChannel 之前调用,不然会在调用 leaveChannel 时自动停止。
|
abstract |
开始语音通话回路测试。
该方法启动语音通话测试,目的是测试系统的音频设备(耳麦、扬声器等)和网络连接是否正常。在测试过程中,用户先说一段话,在 10 秒后,声音会回放出来。如果 10 秒后用户能正常听到自己刚才说的话,就表示系统音频设备和网络连接都是正常的。
|
abstract |
停止语音通话回路测试。
|
abstract |
启用网络测试。
该方法启用网络连接质量测试,用于检测用户网络接入质量。默认该功能为关闭状态。该方法主要用于以下两种场景:
无论哪种场景,启用该方法会消耗一定的网络流量,影响通话质量。在收到 onLastmileQuality 回调后须调用 disableLastmileTest 停止测试,再加入频道。
|
abstract |
禁用网络测试。
该方法启用网络连接质量测试,用于检测用户网络接入质量。默认该功能为关闭状态。该方法主要用于以下两种场景:
无论哪种场景,启用该方法会消耗一定的网络流量,影响通话质量。在收到 onLastmileQuality 回调后须调用 disableLastmileTest 停止测试,再加入频道。
|
abstract |
设置自定义视频源。
实时通讯过程中,Agora SDK 通常会启动默认的视频输入设备,即内置的摄像头,进行视频推流。当需要自定义视频设备时,App 可以先通过 IVideoSource 接口自定义视频源,然后调用该方法将自定义的视频源加入到 SDK 中。
source | 自定义的视频源。详细定义见 IVideoSource |
|
abstract |
自定义本地视频渲染器。
该方法设置本地视频渲染器。实时通讯过程中,Agora SDK 通常会启动默认的视频渲染器进行视频渲染。当需要自定义视频渲染设备时,App 可以先通过 IVideoSink 自定义渲染器,然后调用该方法将视频渲染器加入到 SDK 中。
render | 自定义的本地视频渲染器。详细定义见 IVideoSink |
|
abstract |
自定义远端视频渲染器。
该方法设置远端视频渲染器。实时通讯过程中,Agora SDK 通常会启动默认的视频渲染器进行视频渲染。当需要自定义视频渲染设备时,App 可以先通过 IVideoSink 自定义渲染器,然后调用该方法将视频渲染器加入到 SDK 中。
uid | 远端用户 ID |
render | 自定义的远端视频渲染器。详细定义见 IVideoSink |
|
abstract |
设置外部音频采集参数。
enabled |
|
sampleRate | 外部音频源的采样率,可设置为 8000,16000,32000,44100 或 48000 |
channels | 外部音频源的通道数(最多支持两个声道) |
|
abstract |
推送外部音频帧。
data | 外部音频数据 |
timestamp | 外部音频帧的时间戳,用于和外部视频源同步 |
|
abstract |
配置外部视频源。
enable | 是否使用外部视频源:
|
useTexture | 是否使用 Texture 作为输入:
|
pushMode | 是否外部视频源需要调用 PushExternalVideoFrame 将视频帧主动推送给 Agora SDK:
|
|
abstract |
推送外部视频帧。
该方法主动将视频帧数据用 AgoraVideoFrame 类封装后传递给 SDK。请确保在你调用本方法前已调用 setExternalVideoSource,并将参数 pushMode 设为 true,不然调用本方法后会一直报错。
frame | 视频帧的数据信息。详细定义见 Agora Video Frame |
|
abstract |
检查视频是否支持 Texture 编码。
|
abstract |
注册语音观测器对象。
该方法用于注册语音观测器对象,即注册回调。当需要引擎给出 onRecordFrame 或 onPlaybackFrame 回调时,需要使用该方法注册回调。
observer | IAudioFrameObserver 接口对象实例。如果传入 null,则取消注册。 |
|
abstract |
设置录制的声音格式。
该方法设置 onRecordFrame 回调数据的格式。
sampleRate | 指定 onRecordFrame 中返回数据的采样率,可设置为 8000,16000,32000,44100 或 48000。 |
channel | 指定 onRecordFrame 中返回数据的通道数,可设置为 1 或 2:
|
mode | 指定 onRecordFrame 的使用模式:
|
samplesPerCall | 指定 onRecordFrame 中返回数据的采样点数,如 RTMP 推流应用中通常为 1024。 SamplesPerCall = (int)(SampleRate × sampleInterval),其中:sample ≥ 0.01,单位为秒。 |
|
abstract |
设置播放的声音格式。
该方法设置 onPlaybackFrame 回调数据的格式。
sampleRate | 指定 onPlaybackFrame 中返回数据的采样率,可设置为 8000,16000,32000,44100 或 48000 |
channel | 指定 onPlaybackFrame 中返回数据的通道数,可设置为 1 或 2:
|
mode | 指定 onPlaybackFrame 的使用模式:
|
samplesPerCall | 指定 onPlaybackFrame 中返回数据的采样点数,如 RTMP 推流应用中通常为 1024。 SamplesPerCall = (int)(SampleRate × sampleInterval),其中:sample ≥ 0.01,单位为秒。 |
|
abstract |
设置录制和播放声音混音后的数据格式。
该方法设置 onMixedAudioFrame 回调数据的格式。
sampleRate | 指定 onMixedAudioFrame 中返回数据的采样率,可设置为 8000,16000,32000,44100 或 48000 |
samplesPerCall | 指定 onMixedAudioFrame 中返回数据的采样点数,如 RTMP 推流应用中通常为 1024。 SamplesPerCall = (int)(SampleRate × sampleInterval),其中:sample ≥ 0.01,单位为秒。 |
|
abstract |
添加本地视频水印。
该方法将一张 PNG 图片作为水印添加到本地发布的直播视频流上,同一直播频道中的观众,旁路直播观众,甚至录制设备都能看到或采集到该水印图片。 如果你仅仅希望在旁路直播推流中添加水印,请参考 设置直播转码 setLiveTranscoding 中描述的用法。
watermark | 待添加在本地直播推流中的水印图片,详细定义见 Agora Image |
|
abstract |
删除本地视频水印。 该方法删除使用 addVideoWatermark 方法添加的本地视频水印。
|
abstract |
设置弱网条件下发布的音视频流回退选项。
网络不理想的环境下,直播音视频的质量都会下降。使用该接口并将 option 设置为 STREAM_FALLBACK_OPTION_AUDIO_ONLY(2) 后,SDK 会在上行弱网且音视频质量严重受影响时,自动关断视频流,从而保证或提高音频质量。同时 SDK 会持续监控网络质量,并在网络质量改善时恢复音视频流。当本地推流回退为音频流时,或由音频流恢复为音视频流时,SDK 会触发 本地发布的媒体流已回退为音频流 onLocalPublishFallbackToAudioOnly 回调。
option | 本地推流回退处理选项:
|
|
abstract |
设置弱网条件下订阅的音视频流回退选项。
网络不理想的环境下,直播音视频的质量都会下降。使用该接口并将 option 设置为 STREAM_FALLBACK_OPTION_VIDEO_STREAM_LOW(1) 或者 STREAM_FALLBACK_OPTION_AUDIO_ONLY(2) 后,SDK 会在下行弱网且音视频质量严重受影响时, 将视频流切换为小流,或关断视频流,从而保证或提高音频质量。同时 SDK 会持续监控网络质量,并在网络质量改善时恢复音视频流。当远端订阅流回退为音频流时,或由音频流恢复为音视频流时,SDK 会触发 远端订阅流已回退为音频流 onRemoteSubscribeFallbackToAudioOnly 回调。
option | 远端订阅流回退处理选项:
|
|
abstract |
开/关视频双流模式。
该方法设置单流(默认)或者双流模式。发送端开启双流模式后,接收端可以选择接收大流还是小流。其中,大流指高分辨率、高码率的视频流,小流指低分辨率、低码率的视频流。
enabled | 指定双流或者单流模式:
|
|
abstract |
设置订阅的视频流类型。
如果发送端选择发送视频双流(大流或小流),接收端可以选择接收大流还是小流。其中大流可以理解为高分辨率高码率的视频流,小流则是低分辨率低码率的视频流。该方法可以根据视频窗口的大小动态调整对应视频流的大小,以节约带宽和计算资源。
调用本方法的执行结果将在 onApiCallExecuted 中返回。 视频小流默认的宽高比和视频大流的宽高比一致。根据当前大流的宽高比,系统会自动分配小流的分辨率、帧率及码率。
uid | 用户 ID |
streamType | 设置视频流大小。视频流类型如下:
|
|
abstract |
设置默认订阅的视频流类型。
streamType | 设置视频流大小。视频流类型如下:
|
|
abstract |
启用内置加密,并设置数据加密密钥。
在加入频道之前,App 需调用 setEncryptionSecret 指定 secret 来启用内置的加密功能,同一频道内的所有用户应设置相同的 secret。 当用户离开频道时,该频道的 secret 会自动清除。如果未指定 secret 或将 secret 设置为空,则无法激活加密功能。
secret | 加密密钥 |
|
abstract |
设置内置的加密方案。
Agora Native SDK 支持内置加密功能,默认使用 AES-128-XTS 加密方式。如需使用其他加密方式,可以调用该 API 设置。 同一频道内的所有用户必须设置相同的加密方式和 secret 才能进行通话。关于这几种加密方式的区别,请参考 AES 加密算法的相关资料。
encryptionMode | 加密方式。目前支持以下几种:
|
|
abstract |
导入在线媒体流。 该方法通过在服务端拉取视频流并发送到频道中,将正在播出的视频导入到正在进行的直播中。可主要应用于赛事直播、多人看视频互动等直播场景。 状态回调为 onStreamPublished。 如果导入成功,该音视频流会出现在频道中,并收到 onUserJoined 和 onFirstRemoteVideoDecoded 回调,其中 uid 为 666。
url | 添加到直播中的视频流 HTTP/HTTPS 地址, 支持 RTMP,HLS,FLV 协议传输。
|
config | 外部导入的音视频流的配置,详细定义见 Live Inject Stream Configuration |
|
abstract |
删除导入的在线媒体流。
成功删除后,会触发 onUserOffline 回调,其中 uid 为 666。
url | 已导入、待删除的外部视频流 HTTP/HTTPS 地址。 |
|
abstract |
增加旁路推流地址。
该方法用于在旁路推流中,添加推流地址。会触发回调 onStreamPublished。
url | 推流地址,格式为 RTMP |
transcodingEnabled | 是否转码
|
|
abstract |
删除旁路推流地址。
该方法用于删除旁路推流过程中已经设置的推流地址,格式为 HTTP/HTTPS。
url | 推流地址 |
|
abstract |
设置直播转码。
该方法用于旁路推流的视图布局及音频设置等。
transcoding | 旁路推流布局相关设置,详细定义见 LiveTranscoding |
|
abstract |
配置旁路直播推流。
该方法用于在加入频道前为引擎创建一份推流设置。我们提供一个 Builder 类方便配置旁路直播推流,例如:Builder Class。
config | 旁路直播推流的相关配置。详细定义见 PublisherConfiguration |
|
abstract |
设置画中画布局。
该方法设置直播场景里的画中画布局。该方法仅适用于在 Agora 服务器端推流的场景。当您在服务器端进行推流时:
服务端推流程序在生成 H.264 视频流并通过 RTMP 协议推送给 CDN 服务商时,会将自定义布局的详细信息格式化为 JSON 字符串,打包到在每个关键帧的 SEI 信息中,SEI 的类型为 100。
layout | VideoCompositingLayout |
|
abstract |
|
abstract |
创建数据流。
该方法用于创建数据流。频道内每人最多只能创建 5 个数据流。频道内数据通道最多允许数据延迟 5 秒,若超过 5 秒接收方尚未收到数据流,则数据通道会向 App 报错。
reliable |
|
ordered |
|
|
abstract |
发送数据流。
该方法发送数据流消息到频道内所有用户。SDK 对该方法的实现进行了如下限制:频道内每秒最多能发送 30 个包,且每个包最大为 1 KB。 每个客户端每秒最多能发送 6 KB 数据。频道内每人最多能同时有 5 个数据通道。
streamId | 数据流 ID,createDataStream 的返回值。 |
message | 待发送的数据。 |
|
abstract |
设置视频优化选项(仅适用于直播)。
该方法允许用户设置视频的优化选项。
preferFrameRateOverImageQuality | 支持两种优化选项:
|
|
static |
|
abstract |
设置本地视频镜像。
该方法设置本地视频镜像,须在开启本地预览前设置。如果在开启预览后设置,需要重新开启预览才能生效。
mode | 设置本地视频镜像模式
|
|
abstract |
切换前置/后置摄像头。
|
abstract |
检测设备是否支持摄像头缩放功能。
|
abstract |
检测设备是否支持闪光灯常开。
|
abstract |
检测设备是否支持手动对焦功能。
|
abstract |
检测设备是否支持手动曝光功能。
|
abstract |
检测设备是否支持人脸对焦功能。
|
abstract |
设置摄像头缩放比例。
factor | 相机缩放比例,有效范围从 1.0 到最大缩放 |
|
abstract |
获取摄像头支持最大缩放比例。
|
abstract |
设置手动对焦位置,并触发对焦。
positionX | 触摸点相对于视图的横坐标 |
positionY | 触摸点相对于视图的纵坐标 |
|
abstract |
设置手动曝光位置。
positionXinView | 触摸点相对于视图的横坐标 |
positionYinView | 触摸点相对于视图的纵坐标 |
|
abstract |
设置是否打开闪光灯。
isOn | 是否打开闪光灯
|
|
abstract |
设置是否开启人脸对焦功能。
enabled |
|
|
abstract |
获取通话 ID。
获取当前的通话 ID。客户端在每次 RtcEngine#joinChannel(String, String, String, int) joinChannel} 后会生成一个对应的 CallId,标识该客户端的此次通话。有些方法如 rate, complain 需要在通话结束后调用,向 SDK 提交反馈,这些方法必须指定 CallId 参数。使用这些反馈方法,需要在通话过程中调用 getCallId 方法获取 CallId,在通话结束后在反馈方法中作为参数传入。
|
abstract |
给通话评分。
callId | 通过 getCallId 函数获取的通话 ID |
rating | 给通话的评分,最低 1 分,最高 5 分,如超过这个范围,SDK 会返回 ERR_INVALID_ARGUMENT(-2) 错误 |
description | (非必选项)给通话的描述,可选,长度应小于 800 字节 |
|
abstract |
投诉通话质量。
该方法让用户就通话质量进行投诉。一般在通话结束后调用。
callId | 通话 getCallId 函数获取的通话 ID |
description | (非必选项)给通话的描述,可选,长度应小于 800 字节 |
|
static |
查询 SDK 版本号。
|
static |
|
abstract |
设置日志文件。
设置 SDK 的输出 log 文件。SDK 运行时产生的所有 log 将写入该文件。App 必须保证指定的目录存在而且可写。
filePath | 日志文件的完整路径。该日志文件为 UTF-8 编码。默认路径为 /sdcard/{App 的包名}/agorasdk.log。 |
|
abstract |
设置日志过滤器。
该方法设置 SDK 的输出日志过滤等级。不同的过滤等级可以单独或组合使用。 日志级别顺序依次为 OFF、CRITICAL、ERROR、WARNING、INFO 和 DEBUG。选择一个级别,你就可以看到在该级别之前所有级别的日志信息。 例如,你选择 WARNING 级别,就可以看到在 CRITICAL、ERROR 和 WARNING 级别上的所有日志信息。
filter | 设置过滤器等级:
|
|
abstract |
返回 SDK 引擎的 Native 句柄。
该方法用于获取 SDK 引擎的 C++ 句柄并将其应用于包括注册音视频帧观察器的特殊场景。
void io.agora.rtc.RtcEngine.addHandler | ( | IRtcEngineEventHandler | handler | ) |
添加主回调事件。
IRtcEngineEventHandler 接口类用于 SDK 向 App 发送回调事件通知,App 通过继承该接口类的方法获取 SDK 的事件通知。详见 IRtcEngineEventHandler。 接口类的所有方法都有缺省(空)实现,App 可以根据需要只继承关心的事件。在回调方法中,App 不应该做耗时或者调用可能会引起阻塞的 API(如 SendMessage),否则可能影响 SDK 的运行。
handler | IRtcEngineEventHandler |
|
abstract |
启用/关闭 WiFi 模式。
enable |
|
|
static |
|
abstract |
|
abstract |
|
abstract |
|
abstract |
通过 JSON 配置 SDK 提供技术预览或特别定制功能。
JSON 选项默认不公开。声网工程师正在努力寻求以标准化方式公开 JSON 选项。
parameters | JSON 字符串形式的参数 |
|
abstract |
获取 Agora SDK 可供自定义的参数。 该方法暂未公开,请联系声网支持 support@agora.io 获取详情。