public class AVChatParameters
extends java.lang.Object
网络通话可选项
每个参数包含以下几个重要方面:
限定符和类型 | 类和说明 |
---|---|
static class |
AVChatParameters.Key<T>
可选设置项, 可以获取参数是否支持可设置,以及参数是否能够在通话过程中进行操作
|
构造器和说明 |
---|
AVChatParameters() |
限定符和类型 | 方法和说明 |
---|---|
void |
clear() |
boolean |
containsKey(AVChatParameters.Key key) |
<T> T |
get(AVChatParameters.Key<T> key) |
boolean |
getBoolean(AVChatParameters.Key<java.lang.Boolean> key) |
float |
getFloat(AVChatParameters.Key<java.lang.Float> key) |
int |
getInteger(AVChatParameters.Key<java.lang.Integer> key) |
RtcParameters |
getRawParameters() |
java.lang.String |
getString(AVChatParameters.Key<java.lang.String> key) |
void |
removeParameters(AVChatParameters.Key key) |
<T> void |
set(AVChatParameters.Key<T> key,
T value) |
void |
setBoolean(AVChatParameters.Key<java.lang.Boolean> key,
boolean value) |
void |
setFloat(AVChatParameters.Key<java.lang.Float> key,
float value) |
void |
setInteger(AVChatParameters.Key<java.lang.Integer> key,
int value) |
void |
setRawParameters(RtcParameters parameters) |
AVChatParameters |
setRequestKey(AVChatParameters.Key key) |
AVChatParameters |
setRequestKeys(java.util.Set<AVChatParameters.Key> keys) |
void |
setString(AVChatParameters.Key<java.lang.String> key,
java.lang.String value) |
public static final AVChatParameters.Key<java.lang.Integer> KEY_DEVICE_DEFAULT_ROTATION
默认情况下设备顺时针旋转角度, 某些特殊设备在默认情况下无法获取到设备方向,可指定默认的设备角度。
当一个设备水平放置时,它当前的角度是未定义的。 如果一个设备的工作环境永远是水平放置的,那么需要为它制定一个默认的旋转角度。
Possible values:
ROTATION_0
ROTATION_90
ROTATION_180
ROTATION_270
Writable: true
Runtime: false
Surface#ROTATION_0
,
Surface#ROTATION_90
,
Surface#ROTATION_180
,
Surface#ROTATION_270
public static final AVChatParameters.Key<java.lang.Integer> KEY_DEVICE_ROTATION_FIXED_OFFSET
设备旋转角度修正偏移量。
如果存在SDK内部获取的角度和设备实际角度总是存在同样的误差,那么可以这只一个修正偏移量。主要存在一个定制设备有此类问题,大部分手机平板不需要关注此参数。
Possible values:
ROTATION_0
ROTATION_90
ROTATION_180
ROTATION_270
Writable: true
Runtime: false
Surface#ROTATION_0
,
Surface#ROTATION_90
,
Surface#ROTATION_180
,
Surface#ROTATION_270
public static final AVChatParameters.Key<java.lang.String> KEY_VIDEO_ENCODER_MODE
视频硬件编码模式。
目前仅支持高通CPU系列的硬件编码,如果设备不支持硬件编码,设置硬件编码后会自动回滚到软件编码模式。
Possible values:
Writable: true
Runtime: true
Compatibility - 存在设备兼容性问题,部分设备已加入黑名单。
public static final AVChatParameters.Key<java.lang.String> KEY_VIDEO_DECODER_MODE
视频硬件解码模式。
目前仅支持高通CPU系列的硬件解码,如果设备不支持硬件解码,设置硬件解码后会自动回滚到软件解码模式。
Possible values:
Writable: true
Runtime: true
Compatibility - 存在设备兼容性问题,部分设备已加入黑名单。
public static final AVChatParameters.Key<java.lang.Boolean> KEY_VIDEO_SUPPORTED_HW_ENCODER
获取系统是否支持硬件编码。
目前仅支持高通CPU系列的硬件编码。
Writable: false
Runtime: true
Compatibility - 存在设备兼容性问题,部分设备已加入黑名单。
public static final AVChatParameters.Key<java.lang.Boolean> KEY_VIDEO_SUPPORTED_HW_DECODER
获取系统是否支持硬件解码。
目前仅支持高通CPU系列的硬件解码。
Writable: false
Runtime: true
Compatibility - 存在设备兼容性问题,部分设备已加入黑名单。
public static final AVChatParameters.Key<java.lang.String> KEY_AUDIO_EFFECT_NOISE_SUPPRESSOR
语音前处理,降噪,用来消除语音通话的背景噪音。
目前支持内置软件语音处理和设备硬件语音处理,SDK默认优先采用设备硬件语音处理。如果有很特殊的使用场景,也可以选择关闭语音处理。
不是所有的设备都支持硬件语音处理,对不支持硬件语音处理的设备采用优先硬件语音处理会自动回滚到软件语音处理。
Possible values:
Writable: true
Runtime: false
Compatibility - 部分设备标记支持硬件语音处理,但是实际没有硬件语音处理。 部分设备的硬件语音处理效果很差,需要切换到软件语音处理。
public static final AVChatParameters.Key<java.lang.String> KEY_AUDIO_EFFECT_AUTOMATIC_GAIN_CONTROL
public static final AVChatParameters.Key<java.lang.String> KEY_AUDIO_EFFECT_ACOUSTIC_ECHO_CANCELER
语音前处理,回音抑制, 用来消除语音通话的回音。
目前支持内置软件语音处理和设备硬件语音处理,SDK默认优先采用设备硬件语音处理。如果有很特殊的使用场景,也可以选择关闭语音处理。
不是所有的设备都支持硬件语音处理,对不支持硬件语音处理的设备采用优先硬件语音处理会自动回滚到软件语音处理。
Possible values:
Writable: true
Runtime: false
Compatibility - 部分设备标记支持硬件语音处理,但是实际没有硬件语音处理。 部分设备的硬件语音处理效果很差,需要切换到软件语音处理。
public static final AVChatParameters.Key<java.lang.Boolean> KEY_AUDIO_CALL_PROXIMITY
是否允许语音通话时开启距离传感器。
在语音通话时,如果开启距离传感器,当检测到手机听筒贴近人脸会自动黑掉屏幕。视频通话时会自动仅用距离传感器。
Writable: true
Runtime: false
public static final AVChatParameters.Key<java.lang.Integer> KEY_VIDEO_QUALITY
视频清晰度。
在视频通话时,可以设置你期望的视频发送分辨率。
实际采集分辨率和你设置的会有一定的区别, 对于720P
可能存在 960x720
或者 1280x720
。
更极端的情况下,设备摄像头不支持采集某一档次的清晰度,会自动降低到下一档次。实际采用的清晰度级别可以通过此参数获取。
Possible values:
Writable: true
Runtime: true
Compatibility - 部分设置不能支持所有档次的清晰度
public static final AVChatParameters.Key<java.lang.Integer> KEY_VIDEO_PREVIEW_QUALITY
设置视频预览清晰度。
如果设置的分辨率小于KEY_VIDEO_QUALITY , 那么无效 ,设置 QUALITY_DEFAULT 与不设置一样 ,默认为 QUALITY_DEFAULT( 预览跟随KEY_VIDEO_QUALITY )
实际预览分辨率和你设置的会有一定的区别, 对于720P
可能存在 960x720
或者 1280x720
。
更极端的情况下,设备摄像头不支持采集某一档次的清晰度,会自动降低到下一档次。
注意: 如果设置了预览清晰度 ,那么设备摄像头采集的清晰度将以预览清晰度为标准,这可能导致最终发送分辨率有额外的缩放
Possible values:
QUALITY_DEFAULT(与不设置的效果一样)
QUALITY_LOW
QUALITY_MEDIUM
QUALITY_HIGH
QUALITY_480P
QUALITY_540P
QUALITY_720P
Writable: true
Runtime: true
Compatibility - 部分设置不能支持所有档次的清晰度
public static final AVChatParameters.Key<java.lang.Boolean> KEY_VIDEO_ROTATE_IN_RENDING
视频绘制时自动旋转。
视频绘制时会结合对方发送的画面角度,自己设备当前的角度以及当前视图布局的角度来旋转画面,让画面在任何情况下相对于自己都是正方向。
Writable: true
Runtime: true
public static final AVChatParameters.Key<java.lang.Integer> KEY_SESSION_MULTI_MODE_USER_ROLE
多人模式下用户角色设定。
普通模式下,允许发送和接收数据。当切换到观众模式时,自己仅接收数据,不再发送数据。
Possible values:
Writable: true
Runtime: true
public static final AVChatParameters.Key<java.lang.Boolean> KEY_VIDEO_FPS_REPORTED
视频帧率汇报。
每2秒会汇报本地预览帧率和对方画面预览帧率。帧率通过 AVChatStateObserverLite.onVideoFpsReported(String, int)
上报。
Writable: true
Runtime: true
public static final AVChatParameters.Key<java.lang.Integer> KEY_VIDEO_MAX_BITRATE
视频最大码率。
设置视频流的最大码率,码率需要结合分辨率来设置,不能设置过小。
Writable: true
Runtime: true
Units: bit per seconds(bps)
Range of valid values: >0 , <5Mbps
public static final AVChatParameters.Key<java.lang.Integer> KEY_VIDEO_FRAME_RATE
视频帧率。
设置视频画面期望帧率,由于设备限制,性能等问题可能存在实际帧率和期望帧率不一致。
Possible values:
Writable: true
Runtime: true
Units: Frames per second (FPS)
public static final AVChatParameters.Key<java.lang.Boolean> KEY_VIDEO_FRAME_FILTER
视频数据预处理。
通过此回调,外部可实现视频数据的预处理。目前提供数据格式为 android.graphics.ImageFormat#NV21
,
数据通过 AVChatStateObserverLite.onVideoFrameFilter(AVChatVideoFrame, boolean)
传递给上层,外部需要同步处理此数据。
目前数据回调所在线程不具备 android.opengl.EGLContext
上下文环境。
Writable: true
Runtime: true
public static final AVChatParameters.Key<java.lang.Boolean> KEY_VIDEO_FRAME_FILTER_NEW
视频数据预处理。
通过此回调,外部可实现视频数据的预处理。目前提供数据格式为 android.graphics.ImageFormat#NV21,android.graphics.ImageFormat#I420,#GLES11Ext.GL_TEXTURE_EXTERNAL_OES
,
数据通过 AVChatStateObserverLite.onVideoFrameFilter(VideoFrame, VideoFrame[], VideoFilterParameter)
传递给上层,外部需要同步处理此数据。
目前数据回调所在线程具备 android.opengl.EGLContext
上下文环境。
Writable: true
Runtime: true
public static final AVChatParameters.Key<java.lang.Integer> KEY_VIDEO_FRAME_FILTER_FORMAT
视频数据回调图像格式
通过回调 AVChatStateObserverLite.onVideoFrameFilter(AVChatVideoFrame, boolean)
传出的数据格式。
建议使用 AVChatImageFormat.I420
格式,默认格式为 AVChatImageFormat.NV21
.
Possible values:
Writable: true
Runtime: true
public static final AVChatParameters.Key<java.lang.Boolean> KEY_AUDIO_FRAME_FILTER
语音数据预处理。
通过此回调,外部可实现语音数据的预处理。目前提供外部的数据格式为 PCM
, 数据通过 AVChatStateObserverLite.onAudioFrameFilter(AVChatAudioFrame)
传递给上层,
外部需要同步处理此数据。
Writable: true
Runtime: true
@Deprecated public static final AVChatParameters.Key<java.lang.String> KEY_SESSION_LIVE_URL
互动直播推流地址。
推流地址,仅主播设置,非主播用户不能设置此参数。 如果需要开启直播,必须在通话前设置推流地址,通话过程中可以更新推流地址。
Writable: true
Runtime: true
Units: UTF-8 null-terminated string
public static final AVChatParameters.Key<java.lang.Boolean> KEY_AUDIO_REPORT_SPEAKER
声音强度汇报。
通话过程中汇报正在说话用户的语音强度。语音强度通过 AVChatStateObserverLite.onReportSpeaker(Map, int)
上报给上层。
Writable: true
Runtime: true
public static final AVChatParameters.Key<java.lang.Boolean> KEY_AUDIO_HIGH_QUALITY
高清晰语音。
默认情况下不开启高清语音。高清语音将使用高采样率进行语音采集来提升语音的清晰度。
Writable: true
Runtime: true
Compatibility - 部分设备不支持高清语音采集。
public static final AVChatParameters.Key<java.lang.Integer> KEY_VIDEO_CAPTURE_ORIENTATION
视频采集方向。
默认情况下都是竖屏采集,用户可以设置不同的采集方向来调整拉流观众观看的角度。
Possible values:
ORIENTATION_PORTRAIT
ORIENTATION_PORTRAIT_UPSIDEDOWN
ORIENTATION_LANDSCAPE_LEFT
ORIENTATION_LANDSCAPE_RIGHT
Writable: true
Runtime: true
public static final AVChatParameters.Key<java.lang.Integer> KEY_VIDEO_FIXED_CROP_RATIO
视频画面裁剪比例。
默认情况是视频采集画面不裁剪。 在不同的设备上采集处理的分辨率可能不一样。 比如 720P
可能存在 960x720
和 1280x720
。
不同的分辨率会导致在预览绘制时画面存在画面显示不全或者黑边等问题。
Possible values:
Writable: true
Runtime: true
public static final AVChatParameters.Key<java.lang.Boolean> KEY_VIDEO_LOCAL_PREVIEW_MIRROR
前置摄像头本地预览镜像
当使用前置摄像头时,本地预览画面是否镜像。 默认前置摄像头画面镜像处理。
Writable: true
Runtime: true
public static final AVChatParameters.Key<java.lang.Boolean> KEY_VIDEO_TRANSPORT_MIRROR
前置摄像头发送数据预览镜像
当使用前置摄像头时,本地发送画面是否镜像。 默认前置摄像头发送换面不镜像处理。
Writable: true
Runtime: true
public static final AVChatParameters.Key<java.lang.Boolean> KEY_SERVER_AUDIO_RECORD
服务器语音录制。
在服务器录制通话语音数据,格式为 aac
。
Writable: true
Runtime: false
public static final AVChatParameters.Key<java.lang.Boolean> KEY_SERVER_VIDEO_RECORD
服务器视频录制。
在服务器录制通话视频数据,格式为 mp4
。
Writable: true
Runtime: false
public static final AVChatParameters.Key<java.lang.Integer> KEY_SERVER_RECORD_MODE
服务器录制模式。
设置服务器录制时的模式,混合与单人、混合、单人。
Possible values:
Writable: true
Runtime: false
public static final AVChatParameters.Key<java.lang.Boolean> KEY_SERVER_RECORD_SPEAKER
服务器录制是否为主讲人。
在服务器录制开始时设置是否为主讲人。
Writable: true
Runtime: false
@Deprecated public static final AVChatParameters.Key<java.lang.Boolean> KEY_SERVER_LIVE_RECORD
服务器互动直播录制。
在服务器录制互动直播内容。
Writable: true
Runtime: false
@Deprecated public static final AVChatParameters.Key<AVChatLiveCompositingLayout> KEY_SESSION_LIVE_COMPOSITING_LAYOUT
互动直播混屏模式。
当互动直播时有连麦用户加入,可以指定不同当混屏模式。用户可以使用简单的混合模式,也可以自定义复杂的混合模式
Writable: true
Runtime: false
public static final AVChatParameters.Key<java.lang.Boolean> KEY_SESSION_LIVE_MODE
互动直播模式。
开启互动直播前提是需要多人会议模式, 必须通过 AVChatManagerLite.joinRoom2(String, AVChatType, AVChatCallback)
来加入房间。
Writable: true
Runtime: false
public static final AVChatParameters.Key<java.lang.String> KEY_COMPATIBILITY_CONFIG_SERVER
自定义服务器兼容性配置
该参数设置一个URL地址,以指定一个远端JSON配置文件,由SDK负责下载后解析,并缓存在本地。 每次加载时,如果对应缓存有效,SDK优先使用缓存的配置;否则,本次仅完成下载和解析工作,配置会在下一次通话时才能应用。 SDK会间隔15分钟去同步远端配置文件的修改,重新下载、解析并缓存。
Writable: true
Runtime: false
public static final AVChatParameters.Key<java.lang.String> KEY_COMPATIBILITY_CONFIG_LOCAL
自定义本地兼容性配置
该参数设置一个本地文件路径,以指定一个本地兼容性配置文件供SDK解析应用。 每次启用,SDK都会重新解析本地配置文件。对于相同的配置项,本地适配会优先于服务器适配。
Writable: true
Runtime: false
@Deprecated public static final AVChatParameters.Key<java.lang.Boolean> KEY_AUDIO_EXTERNAL_CAPTURE
外部语音数据采集
用户在SDK外部采集语音数据,然后按照一定格式传入SDK内部编码发送
Writable: true
Runtime: false
public static final AVChatParameters.Key<java.lang.Integer> KEY_AUDIO_PROCESS_DUMP_FLAG_DEBUG
public static final AVChatParameters.Key<java.lang.Boolean> KEY_PROFILE_TRACE_FLAG_DEBUG
public static final AVChatParameters.Key<java.lang.Integer> KEY_AUDIO_PLAYBACK_DEFAULT_SAMPLE_RATE
public void clear()
public RtcParameters getRawParameters()
public void setRawParameters(RtcParameters parameters)
public final AVChatParameters setRequestKeys(java.util.Set<AVChatParameters.Key> keys)
public final AVChatParameters setRequestKey(AVChatParameters.Key key)
public final boolean getBoolean(AVChatParameters.Key<java.lang.Boolean> key)
public final int getInteger(AVChatParameters.Key<java.lang.Integer> key)
public final java.lang.String getString(AVChatParameters.Key<java.lang.String> key)
public final void setInteger(AVChatParameters.Key<java.lang.Integer> key, int value)
public final void setBoolean(AVChatParameters.Key<java.lang.Boolean> key, boolean value)
public final void setString(AVChatParameters.Key<java.lang.String> key, java.lang.String value)
public final boolean containsKey(AVChatParameters.Key key)
public final <T> void set(AVChatParameters.Key<T> key, T value)
public final <T> T get(AVChatParameters.Key<T> key)
public final void setFloat(AVChatParameters.Key<java.lang.Float> key, float value)
public final float getFloat(AVChatParameters.Key<java.lang.Float> key)
public final void removeParameters(AVChatParameters.Key key)