音视频通话 Android 端更新日志
[7.9.0] - 2020-8-27
修复
1. video encode 协商对于不支持的codec做兼容性优化, 修复Android端本地录制失败的问题
2. Android兼容Google Play 上架,X509 SSL 安全问题修复
3. 部分模拟器帧率格式一场导致的crash
4. Audio dump 偶现dump失败
[7.7.2] - 2020-6-12
修复
1. 修复设置预览分辨率KEY_VIDEO_PREVIEW_QUALITY
不生效的问题
2. 将yunxin 其他sdk jar 合入nrtc.jar , 不用再单纯拷贝yunxin-*.jar
[7.7.0] - 2020-5-27
新增
1. 新增音视频连接状态查询接口 AVChatManager.getInstance().getConnectStatus()
修复
1. 修复部分手机不加载base so 的问题
2. 修复伴音加载失败无法正常结束的问题
3. 修复共享屏幕有黑边的问题
4. 修复屏幕共享旋转后,接收端看到的画面角度异常
5. 修复外部Texture输入导致crash
[7.5.0] - 2020-3-31
优化
1. 客户端日志上传优化
2. 首帧耗时优化:用户加入音视频房间后加载出首个画面的耗时优化约25%
变更
1. 增加libyxbase.so , 如果是拷贝lib 的集成方式,需要拷贝libyxbase.so, gralde 方式照旧,不用修改。
[7.3.0] - 2020-3-2
优化
1. 优化调整SDK内部架构,提升SDK 稳定性
修复
1. 修复本地录制偶现崩溃
[7.1.0] - 2019-12-17
新增
1. 获取远端原始音频PCM数据 AVChatManager#getInstance()#registerRemoteAudioCallBack(...)
2. 获取播放原始音频PCM数据 AVChatManager#getInstance()#registerPlayAudioCallBack(...)
3. 支持修改播放音频采样率 AVChatParameters#KEY_AUDIO_PLAYBACK_DEFAULT_SAMPLE_RATE
变更
1. AVChatEngineConfig
替换 EngineConfig
优化
1. 优化音视频在低端机型上的性能消耗
2. 视频发布订阅策略优化,优化大屏场景的使用
3. 下行QoS策略优化,减少大小流的切换耗时
[7.0.3] - 2019-12-4
修复
1. 修复音视频通话伴音功能在某些机型上播放异常结束的问题
[7.0.1] - 2019-11-20
修复
1. 修复低端机型上偶发的crash问题,主要由某些特定网络错包引起的内存占用过大的问题,优化了音视频的稳定性。
[6.10.1] - 2019-11-4
修复
1. 优化多人音视频场景下的稳定性,修复引擎可能存在的崩溃风险
[6.10.0] - 2019-10-29
新增
1. 支持单独设置预览分辨率 AVChatParameters#KEY_VIDEO_PREVIEW_QUALITY
2. 本地音视频录制开始回调目录 AVChatStateObserver#onAudioRecordingStart(fileDir)
、 AVChatStateObserver#onAVRecordingStart(account,fileDir)
3. 新增房间推流 AVChatManager#getInstance()#createRoom( roomName, extraMessage ,liveConfigList , callback)
4. 视频订阅支持端到端QoS策略AVChatManager#getInstance()#setPublishFallbackOption(option)
5. 新增视频采集回调接口,onVideoFrameFilter(final com.netease.nrtc.sdk.video.VideoFrame input, com.netease.nrtc.sdk.video.VideoFrame[] outputFrames, VideoFilterParameter filterParameter);
,
回调数据格式支持I420/NV21/Texture.
通过AVChatParameters.KEY_VIDEO_FRAME_FILTER_NEW设置开启。
变更
1. 音频默认模式统一成高清语音
2. 适配Android Q
[6.8.0] - 2019-08-13
新增
1. 多流 ( beta ) AVChatManager.getInstance().setLocalVideoSimulcastModel(mode)
变更
1. 独立出原先的美颜库依赖,改为jcenter方式 implementation 'com.netease.nrtc:videoeffect:1.0.0'
2. 视频订阅接口支持多流 AVChatManager.getInstance().subscribeVideo(account, videoType)
3. 视频订阅/取消订阅 回调支持多流 AVChatStateObserver.onSubscribeVideoResult(account, videoType,result)
、 AVChatStateObserver.onUnsubscribeVideoResult( account, videoType, result)
4. 远端用户发布回调支持多流 AVChatStateObserver.onRemotePublishVideo(account, videoTypes)
5. AVChatSessionStats 支持多流,增加simulcastVideos
, 影响AVChatStateObserverLite.onSessionStats
回调
6. 提升白板整体的稳定性。
修复
1. 修复了在vivo x9plus上面伴音无法循环的问题。
[6.6.7] - 2019-07-17
修复
1. 伴音音量非线性问题
[6.6.0] - 2019-06-25
修复
1. 修复伴音无法直接切到下一首
2. 修复硬编切软编崩溃
3. 屏幕录制效果优化
4. 解决耳机插拔多次导致的AEC失效问题
5. 优化了卡顿率上报规则,使卡顿率更加贴近终端用户的真实体验。
6. 优化了高清音乐模式下的带宽策略及码率上探策略,在带宽良好的情况下进一步提升音频质量。
新增
1. 视频订阅,详情参考订阅相关文档
2. 支持Camera2采集 , AVChatVideoCapturerFactory#createCamera2Capturer
变更
1. 废弃 AVChatStateObserverLite#onJoinedChannel
(加入频道成功的回调)中的两个文件路径参数audioFile、videoFile
,可能为null
。
2. 不推荐使用AVChatManager.getInstance().muteLocalVideo()
,建议使用发布订阅功能。
3. 不推荐使用AVChatManager.getInstance().muteRemoteVideo()
,建议使用发布订阅功能。
[6.4.0] - 2019-04-26
修复
1. 修复来回切换视频卡住
2. 修复muteAllRemoteAudioStream导致的取消观众模式崩溃
3. 过滤伴音不支持的采样率
新增
1. 通话质量打分 AVChatManager#getInstance #rate
2. 音效功能 AVChatManager#getInstance#playAudioEffect
3. 音频设备新增有线外放、蓝牙外放 AVChatStateObserverLite#onAudioDeviceChanged
变更
1. 支持不销毁SDK , 重复Join Leave Channel
[6.2.0] - 2019-03-14
修复
1. fix 设置录制主讲人不生效问题
2. 硬件编码线程优化
新增
1. 屏幕录制共享
2. 本地录制支持AAC格式
[6.1.2] - 2019-02-15
修复
1. 完善日志上报
2. 修复了断网重连情况下的部分问题,提升了音视频体验
[6.0.0] - 2019-01-14
新增
1. 新版QoS策略上线,全面提升低带宽和高延时场景下的音频和视频流畅度
2. 音视频编解码器全新升级,有效提升视频清晰度
3. 音视频服务器录制新增自定义布局
变更
1. Native 库结构变更
- 音视频通话核心库
libnrtc_sdk.so
- 音视频插件可选库
libnrtc_mp4v2.so
,如不需要客户端本地录制功能,可以不引入此库。 - 删除库
libnrtc_engine.so
以及libnrtc_network.so
2. 系统类型设置变更
- 移除系统类型参数设置
AVChatParameters#KEY_OS_CATEGORY
- 创建时支持系统类型参数
AVChatManager#enableRtc
3. 移除DTX参数设置 AVChatParameters#KEY_AUDIO_DTX_ENABLE
[5.8.0] - 2018-11-13
新增
1. 新增上传兴趣点进行手动对焦
2. 新增白板代理功能
修复
1. 修复部分arm64架构手机只采用armV7架构SDK后偶现的硬件编码崩溃问题
[5.6.0] - 2018-08-30
新增
1. 新增外部音视频输入接口
- 支持麦克风采集人声和点播文件音频流的混音发送
2. 音视频服务端录制功能全面升级
- 点对点和多人服务端录制(试用)全面升级为云信音视频服务端录制服务,从客户端设置录制接口、录制权限开关、录制布局、录制计费四个维度全面统一
变更
1. 录制能力
- 提供一通音视频通话中每个成员单人音频、视频文件录制
- 提供一通音视频通话中混音、混频文件录制,允许每个成员选择是否录制混音 /混频文件
- 提供多人音视频通话场景下服务端接口,开启一通会话全员混音/混频、每个成员单人音频/单人视频文件录制
2. 音频双讲效果优化
- 进行了双讲效果优化,提升了通话质量和体验
[5.5.0] - 2018-08-07
变更
1. 优化视频绘制
- 新增
AVChatVideoFrame
视频数据帧 - 自定义绘制接口
AVChatExternalVideoRender
变更
2. 移除啸叫抑制 AVChatParameters#KEY_AUDIO_HOWLING_SUPPRESS
[5.4.0] - 2018-07-10
新增
1. 多人音视频服务端录制开放
2. 全员静音功能,禁止播放所有远端音频流
- 设置全员静音,
AVChatManager#muteAllRemoteAudio
- 查询全员静音,
AVChatManager#isAllRemoteAudioMuted
3. 丰富伴音功能,支持进度条控制和云端文件播放
- 支持云端文件,
AVChatManager#startAudioMixing
- 支持进度控制,
AVChatManager#seekAudioMixing
- 播放进度通知,
AVChatStateObserver#onAudioMixingProgressUpdated
4. 移动端新增通过兴趣点坐标设置实现手动曝光, AVChatCameraCapturer#setMeteringAreas
.
5. 支持分开设置伴音发送音量&播放音量
- 新增本地播放音量,
AVChatManager#setAudioMixingPlaybackVolume
- 新增发送音量,
AVChatManager#setAudioMixingSendVolume
- 移除原伴音音量参数,
AVChatParameters#KEY_AUDIO_MIXING_STREAM_VOLUME
6. 优化Camera被抢占后自动恢复流程
[5.2.0] - 2018-05-24
新增
1. 深度优化音频带宽利用率,保障更佳音视频通话质量
2. 音乐模式机型适配与低带宽场景深度优化
修复
1. 修复已知问题
- 从服务器超时断开重连后偶现数据发送异常
- 多人观众模式切换普通模式异常问题修复
- 修复和WebRTC互通偶现声音异常问题
[5.0.0] -2018-03-29
新增
1. 高清音乐模式全面升级,针对音乐教学陪练场景定制优化
- 支持全频带音质,采集与前处理均支持48KHz音频,乐器的高音信息可以很好地保留,音质更佳;
- 使用音乐编码器,更匹配音乐场景,保留更多音频细节,音质更佳;
- 提高音频专属带宽,定制音乐场景下的QoS调控策略,提高抗抖动能力,不丢不卡更流畅;
- 支持服务端下发配置方式进行机型适配,无需更新SDK便可完成新机型适配
2. 互动直播音视频连麦人数提升
3. 新增互动直播场景下,主播设置某一个视频连麦者为主画面的功能
- 新增接口
AVChatManager#setAsMainArea
- 新增回调
AVChatRoomServerCallback
- 新增错误码定义
AVChatResCode#RoomServerCode
4. 新增服务器超时断开时,客户端自动重连
5. 新增极端网络下关闭视频的回调
- 回调接口
AVChatStateObserverLite#onNetworkQuality
- 回调参数
AVChatNetworkQuality#VIDEO_OFF
.
变更
1. 开启视频模块时移除摄像头权限检查
2. 移除Camera接口中相关对焦API
- 手动对焦
AVChatCameraCapturer#setFocus
- 自动对焦
AVChatCameraCapturer#setAutoFocus
修复
1. 修复部分手机摄像头对焦兼容性问题
[4.9.0] -2018-02-11
新增
1. 新增视频屏幕共享场景调控策略,支持通话过程调控策略动态切换
- 设置调控策略
AVChatManager#setVideoQualityStrategy(int strategy)
- 调控策略定义
AVChatVideoQualityStrategy
变更
1. 删除WebRTC与私有互通开关,已默认支持各端与WebRTC的互通
- 创建多人房间移除WebRTC互通开关
AVChatManager#createRoom
- 双人通话移除WebRTC互通开关
AVChatNotifyOption#webRTCCompat
修正
1. 修复偶现伴音崩溃问题
[4.7.3] -2018-01-25
修复
1. 优化与V4.2.0之前版本的视频通话效果,提升音视频服务体验。
[4.7.1] -2018-01-17
修复
1. 修复已知问题,优化音频抗丢包能力。
[4.7.0] -2018-01-09
新增
1. 新增耳返功能。当主播想要从耳机中听到自己的声音时,可以开启耳返。一般使用在主播开启伴音,主播戴上耳机,随着伴奏说话唱歌,可以从耳机中实时听到融合了音乐和自己人声的声音。
- 开启耳返
AVChatManager#startPlayCapturedAudio
- 关闭耳返
AVChatManager#stopPlayCapturedAudio
- 设置耳返音量
AVChatManager#setPlayCapturedAudioVolume
2. 全面提升音视频抗丢包能力,优化弱网下音视频表现。
3. 新增房间关闭错误码 AVChatResCode#ERROR_DISCONNECT_SERVER_CHANNEL_CLOSED
。当通过 Server RESTful API
强制解散音视频房间时会收到通知。
- 从服务器断开变更
AVChatStateObserverLite#onDisconnectServer
, 添加断开错误码.
修复
1. 修复已知问题。
[4.5.1] - 2017-11-30
修正
1. 修复 AVChatManager#sendControlCommand
在某些情况下引起崩溃问题
[4.5.0] - 2017-11-23
新增
1. 新增麦克风静音 AVChatManagerLite#setMicrophoneMute
AVChatManagerLite#isMicrophoneMute
。
2. 网络探测优化, 新增不同分辨率等级网络探测 AVChatNetDetectType
。
修正
1. 修复Meizu M5 Note 伴音创建解码器异常问题
2. 修复Meizu MX4 Pro 语音采集问题
[4.3.0] - 2017-10-13
新增
1. 优化视频 QoS 调控策略,通过码率、帧率和分辨率的自动调节保证用户体验,并且可以通过方法 AVChatManagerLite#setVideoQualityStrategy
选择偏好的调控策略为质量优先或流畅优先。
2. 网络探测新增视频包探测 AVChatNetDetector#startNetDetect
。
3. 网络质量新增AVChatNetworkQuality#VERY_BAD
档位,在此网络下建议不要发视频数据。
4. 视频采集新增 Camera2
支持,通过 AVChatVideoCapturerFactory#createCamera2Capturer
创建采集对象。
5. 统计数据回调新增部分字段,参考 AVChatSessionStats
。
变更
1. 音视频接口变更:
- 在
AVChatManager
基础上拆分出精简版AVChatManagerLite
. 如果你仅需要简单通话功能, 使用精简版即可, 现有接口的使用不需要发生任何变化。 - 在
AVChatStateObserver
基础上拆分出精简版AVChatStateObserverLite
, 需要配合AVChatManagerLite
, 原接口使用方法不变。
2. 外部语音数据输入变更 :
- 新增语音输入接口
AVChatManager#pushExternalAudioData(byte[], int, int, int, int, boolean)
允许以阻塞或非阻塞方式从外部输入音频数据 - 原语音输入接口
AVChatManager#pushExternalAudioData(byte[], int, int, int, int, long)
默认采用阻塞方式写入数据, 并且时间戳不再参考。
[4.1.0] - 2017-08-08
新增
1. 新增外部语音数据输入:
- 打开外部语音数据输入:
AVChatParameters#KEY_AUDIO_EXTERNAL_CAPTURE
. - 输入外部语音数据:
AVChatManager#pushExternalAudioData
.
2. 新增外部视频数据输入:
- 设置外部视频采集模块:
AVChatManager#setupVideoCapturer
. - 实现外部视频采集模块:
AVChatExternalVideoCapturer
.
3. 新增视频清晰度540P设置: AVChatVideoQuality#QUALITY_540P
.
4. 新增 Android 兼容性适配接口, 对于开发过程中发现的兼容性问题可以通过此接口进行适配, 可适配参数参考使用手册:
- 本地文件兼容性适配路径:
AVChatParameters#KEY_COMPATIBILITY_CONFIG_LOCAL
- 远端服务器兼容性适配地址:
AVChatParameters#KEY_COMPATIBILITY_CONFIG_SERVER
5. 新增通话场景模式, 自适应高清音乐模式: AVChatChannelProfile#CHANNEL_PROFILE_HIGH_QUALITY_MUSIC_ADAPTIVE
, 各种模式介绍参考使用手册.
变更
1. 从 3.6.0
版本开始我们提供了新的接口来实现音视频通话, 新版本移除了以下已经废弃接口:
- 发起呼叫通话接口
AVChatManager#call
, 参考文档替换为AVChatManager#call2
. - 接听呼叫通话接口
AVChatManager#accept
, 参考文档替换为AVChatManager#accept2
. - 挂断拒接通话接口
AVChatManager#hangUp
, 参考文档替换为AVChatManager#hangUp2
. - 加入多人会话接口
AVChatManager#joinRoom
, 参考文档替换为AVChatManager#joinRoom2
. - 离开多人会话接口
AVChatManager#leaveRoom
, 参考文档替换为AVChatManager#leaveRoom2
. - 双人通话请求切换音频到视频模式接口
AVChatManager#requestSwitchToVideo
, 参考文档替换为AVChatManager#sendControlCommand
- 双人通话请求切换视频到音频模式接口
AVChatManager#requestSwitchToAudio
, 参考文档替换为AVChatManager#sendControlCommand
- 双人通话音频切换到视频响应接口
AVChatManager#ackSwitchToVideo
, 参考文档替换为AVChatManager#sendControlCommand
- 移除发起通话参数类
AVChatOptionalConfig
2. 视频数据格式从内部类变为单独类: AVChatVideoFrame#AVChatImageFormat
=> AVChatImageFormat
.
3. 视频画布变更:
- 新增视频画布
AVChatTextureViewRenderer
. - 原画布重命名
AVChatVideoRender
=>AVChatSurfaceViewRenderer
.
4. 加入频道回调增加连接时长信息:AVChatStateObserver#onJoinedChannel(int code, String audioFile, String videoFile, int elapsed)
.
修正
1. 修复已知问题.
[3.9.1] - 2017-06-29
新增
1. 新增WebRTC支持: AVChatNotifyOption#webRTCCompat
, AVChatManager#createRoom
。有WebRTC
客户端参与的房间中需要打开该开关, 目前WebRTC
为 Beta 版本,如果没有WebRTC
客户端参与,不要打开该开关。
修正
1. 修复已知问题。
[3.9.0] - 2017-06-23
新增
1. 优化音乐效果。
2. 优化弱网环境下语音效果。
3. 互动直播新增自定义布局设置: AVChatParameters#KEY_SESSION_LIVE_PIP_MODE_ENHANCE
。
4. 新增前置摄像头镜像,支持本地预览和发送镜像处理: AVChatParameters#KEY_VIDEO_LOCAL_PREVIEW_MIRROR
, AVChatParameters#KEY_VIDEO_TRANSPORT_MIRROR
。
5. 新增语音处理自动增益开关, 支持打开和关闭语音自动增益: AVChatParameters#KEY_AUDIO_EFFECT_AUTOMATIC_GAIN_CONTROL
。
6. 新增啸叫抑制开关, 默认关闭啸叫抑制: AVChatParameters#KEY_AUDIO_HOWLING_SUPPRESS
。
7. 新增互动直播状态通知: AVChatStateObserver#onLiveEvent
。
8. 增加实时统计信息通知: AVChatStateObserver#onSessionStats
。
9. 新增场景设置, 可以在高清语音开启时设置音乐场景, AVChatManager#setChannelProfile
。
变更
1. 网络质量通知新增当前网络的详细信息: AVChatStateObserver#onNetworkQuality
。
2. 视频数据处理回调变更:
- 数据回调变更,添加是否需要外部输入镜像后数据的参数。
AVChatStateObserver#onVideoFrameFilter
。 - 回调数据类变化,支持镜像数据传输。
AVChatVideoFrame#dataMirror
,AVChatVideoFrame#dualInput
。 - 支持外部指定回调数据格式,目前支持NV21和I420.
AVChatParameters#KEY_VIDEO_FRAME_FILTER_FORMAT
。
3. 视频采集模块变更:
- 新增独立的视频采集模块: 新增独立视频采集模块,支持手动对焦, 焦距缩放,闪光灯等功能。
AVChatCameraCapturer
- 视频通话时需要单独设置采集模块到SDK内部。
AVChatManager#setupVideoCapturer
- 摄像头切换和多摄像头判断移到独立的采集模块。
AVChatCameraCapturer#switchCamera
,AVChatCameraCapturer#hasMultipleCameras
[3.7.0] - 2017-05-10
新增
1.SDK优化了音视频相关的统计功能,方便实时排查音视频通话过程中遇到的问题,并对相关流程进行优化,提高稳定性,建议开发者更新此版本。
[3.6.0] - 2017-04-27
新增
1. 网络通话新增一套操作接口,便于实现通话前视频预览。
- 激活RTC通话模块,需要在所有操作前调用:
AVChatManager#enableRtc
- 开启通话视频模块,如果通话过程中涉及到视频相关需要调用:
AVChatManager#enableVideo
- 开启视频预览,如果通话过程中涉及到视频预览,发送相关需要调用:
AVChatManager#startVideoPreview
- 发起双人通话接口。 此接口主要负责信令层呼叫对方,以及在呼叫成功后自己加入会话频道:
AVChatManager#call2
- 接听双人通话接口。 此接口主要负责信令层接听通话,以及在接听成功后自己加入会话频道:
AVChatManager#accept2
- 挂断双人通话接口。 此接口主要负责信令层挂断或者拒绝通话,以及当离开已经加入的会话频道 :
AVChatManager#hangUp2
- 加入多人通话接口。 此接口主要负责自己加入多人会话频道:
AVChatManager#joinRoom2
- 离开多人通话接口。 此接口主要负责自己离开已经加入的多人会话频道:
AVChatManager#leaveRoom2
- 关闭视频预览,如果开启过视频预览,则需要最后关闭视频预览:
AVChatManager#stopVideoPreview
- 关闭通话视频模块,如果开启过视频通话模块,则需要在最后关闭视频模块:
AVChatManager#disableVideo
- 关闭RTC通话模块,需要在最终结束时调用:
AVChatManager#disableRtc
2. 新增控制指令发送接口,可以通过此接口发送正忙,音视频切换等操作,同时用户也可以自定义控制指令通过此接口发送。 AVChatManager#sendControlCommand
3. 支持指定发送前视频画面裁剪比例,可以指定为 不裁剪、16:9、4:3 和 1:1 裁剪。详细参考 AVChatParameters
,AVChatOptionalConfig
,AVChatVideoCropRatio
。
4. 支持音视频过程中动态切换视频采集的方向,满足互动直播的横竖屏动态切换需求。 详细参考 AVChatParameters
,AVChatOptionalConfig
,AVChatVideoCaptureOrientation
。
变更
1. 移除互动直播动态开启和关闭接口以及相应的回调。
- 移除动态开启互动直播接口:
AVChatManager#startLive()
- 移除动态关闭互动直播接口:
AVChatManager#stopLive()
- 移除动态开启互动直播回调:
AVChatStateObserver#onStartLiveResult(int code)
- 移除动态关闭互动直播回调:
AVChatStateObserver#onStopLiveResult(int code)
- 移除动态开启关闭互动直播相关错误码:
AVChatResCode#LiveCode
2. 双人通话相关接口添加 chatId
参数,需要明确操作的通话ID。
- 接听通话:
AVChatManager#accept
- 挂断通话:
AVChatManager#hangUp
3. 当前会话有效性接口变更: AVChatManager#isCurrentChatValid
=> AVChatManager#getCurrentChatId
4. 多人会话离开接口添加 roomName
参数,离开会话时需要指定房间名。
5. 网络通话可选参数变更,目前参数分为两种,部分参数仅支持通话前设置,部分参数通话前和通话中都可以设置。 详细可以参考 AVChatParameters
, 此类定义了网络通话所有可设置参数,包括参数名,参数值类型,参数是否可以运行时设置以及参数是否可读可写等特性。
- 参数批量设置接口:
AVChatManager#setParameters(AVChatParameters params)
- 参数批量获取接口:
AVChatManager#getParameters(AVChatParameters params)
- 参数单独设置接口:
AVChatManager#setParameter(Key<T> key, T value)
- 参数单独获取接口:
AVChatManager#getParameter(Key<T> key)
- 针对旧版通话接口,仅支持通话前设置参数只能通过在
AVChatManager#call
,AVChatManager#accept
,AVChatManager#joinRoom
时一次性设置参数AVChatOptionalConfig
。 - 针对新版通话接口,仅支持通话前设置参数可以在
AVChatManager#enableRtc
调用后,直接通过参数设置接口进行设置,设置完成后再通过AVChatManager#call2
,AVChatManager#accept2
,AVChatManager#joinRoom2
加入会话。如果需要视频提前预览,也可以在设置参数后,加入会话前通过AVChatManager#enableVideo
,AVChatManager#startVideoPreview
来进行视频画面提前预览。 - 视频编解码定义从
AVChatParameters
变更到AVChatMediaCodecMode
- 硬件语音处理定义从
AVChatParameters
变更到AVChatAudioEffectMode
6. 双人通话存在多通时通知逻辑变更。当有双人通话正在进行时,如果其他通话呼叫进来,SDK会通知到上层,上层需要选择挂断原有通话或者通过AVChatManager#sendControlCommand
通知新呼叫通话正忙。
7. 音视频切换接口变更。目前 AVChatManager#requestSwitchToVideo
, AVChatManager#requestSwitchToAudio
, AVChatManager#ackSwitchToVideo
相关接口已标记为废弃,未来会移除,接口仅仅提供信令层的传输,当收到相关信令通知事件后,需要通过相应的视频操作接口来实现音视频的切换。后续如果需要实现音视频切换信令层的通知可以使用 AVChatManager#sendControlCommand
接口实现。
8. 双人通话超时监听注册变更。当不注册超时监听时,内部不提供超时机制,后续建议上层自定义实现超时机制,目前SDK内部呼出和呼入超时时间为45秒。 超时事件发生时将通知会话ID, observeTimeoutNotification(Observer<Long> observer, boolean register)
修正
1. 修复无摄像头权限时切换摄像头导致崩溃
2. 修复视频画面按比例裁剪在超低分辨率时容易导致无法绘制问题
3. 修复开启本地录制失败时返回值为成功的问题
[3.5.5] - 2017-03-29
新增
1. 网络通话新增横屏参数: AVChatOptionalConfig#videoCaptureOrientation.
2. 网络通话新增16:9裁剪参数:AVChatParameters#KEY_VIDEO_CROP_RATIO.
[3.5.0] - 2017-03-15
新增
1. 音视频通话持续呼叫:若被叫方不在线,主叫方对其持续进行呼叫,被叫方会收到消息推送。
2. 网络通话更新:
- 新增发送控制命令接口:AVChatManager#sendControlCommand
- 新增外部自定义视频绘制:AVChatExternalVideoRender, AVChatI420Frame
- 支持发起通话后立即预览
变更
1. 网络通话与本地系统来电交互处理优化,从音视频SDK移到Demo中进行处理,便于第三方上层处理系统电话和网络通话的交互:
- 删除接口AVChatManager#observeAutoHangUpForLocalPhone
- 添加接口AVChatManager#isCurrentChatValid
2. 网络通话视频聊天增加预览功能:
- 删除接口AVChatManager#setupVideoRender
- 添加接口AVChatManager#setupLocalVideoRender
- 添加接口AVChatManager#setupRemoteVideoRender
3. 网络通话视频帧和音频帧数据处理接口变更:
- 返回类型从int变为boolean的接口AVChatStateObserver#onVideoFrameFilter
- 返回类型从int变为boolean的接口AVChatStateObserver#onAudioFrameFilter
- 修改视频数据类AVChatVideoFrame
- 修改语音数据类AVChatAudioFrame
- AVChatImageFormat变更为AVChatVideoFrame内部类
4. 网络通话音视频录制接口变更:
- 删除接口AVChatManager#startLocalRecord
- 删除接口AVChatManager#stopLocalRecord
- 删除接口AVChatManager#isLocalRecording
- 添加接口AVChatManager#startAVRecording
- 添加接口AVChatManager#stopAVRecording
- 添加接口AVChatManager#startAudioRecording
- 添加接口AVChatManager#stopAudioRecording
5. 网络通话过程中的状态变化监听接口变更:
- 删除接口AVChatStateObserver#onLocalRecordEnd
- 添加接口AVChatStateObserver#onAVRecordingCompletion
- 添加接口AVChatStateObserver#onAudioRecordingCompletion
- 添加接口AVChatStateObserver#onLowStorageSpaceWarning
[3.4.0] - 2017-01-20
变更
1. 网络通话语音设备变更通知: AVChatStateObserver#onAudioDeviceChanged 。
[3.3.0] - 2016-12-28
新增
1. 网络通话新增伴音功能
- 开始伴音: AVChatManager#startAudioMixing
- 暂停伴音: AVChatManager#pauseAudioMixing
- 恢复伴音: AVChatManager#resumeAudioMixing
- 停止伴音: AVChatManager#stopAudioMixing
- 伴音音量: AVChatParameters#KEY_AUDIO_MIXING_STREAM_VOLUME
- 伴音状态通知: AVChatStateObserver#onAudioMixingEvent
2. 网络通话新增网络探测功能
- 开始网络探测: AVChatNetDetector#startNetDetect
- 停止网络探测: AVChatNetDetector#stopNetDetect
- 探测结果通知: AVChatNetDetectCallback#onDetectResult
3. 网络通话新增高清语音支持: AVChatOptionalConfig#enableAudioHighQuality
4. 网络通话新增人声检测支持: AVChatOptionalConfig#enableAudioDtx
变更
1. 网络通话移除自动增益开关: AVChatOptionalConfig#setAudioEffectAGCMode
[3.2.0] - 2016-11-30
新增
1. 添加64位支持。
变更
1. 网络通话最低支持版本为Android 4.4 (KitKat)。
[3.0.0] - 2016-10-20
新增
1. 新增实时汇报正在说话用户声音强度通知 AVChatStateObserver#onReportSpeaker
2. 新增语音播放设备改变通知 AVChatStateObserver#onAudioOutputDeviceChanged
变更
1. 网络音视频通话进行时, 如果多端登录被踢掉会自动挂断网络通话。
[2.9.0] - 2016-09-19
新增
1. 网络通话视频采集数据回调接口 AVChatStateObserver#onVideoFrameFilter, 可用于视频数据的美颜等其他的自定义处理。
2. 网络通话语音采集数据回调接口 AVChatStateObserver#onAudioFrameFilter, 可用于语音数据的变声等其他的自定义处理。
[2.7.0] - 2016-08-11
新增
1. 添加 SDK 发包频控控制。
2. 网络通话新增错误码定义:AVChatResCode。
3. 网络通话AVChatStateObserver:
- 新增视频第一帧绘制通知, onFirstVideoFrameRendered。
- 新增视频帧分辨率改变通知, onVideoFrameResolutionChanged。
- 设备事件通知变更, 仅支持本地语音采集设备和视频采集设备事件。
4. 网络通话支持通话前帧率设置。
- 新增帧率参数 AVChatOptionalConfig#videoFrameRate。
- 新增帧率定义 AVChatVideoFrameRate。
5. 网络通话支持动态切换清晰度:AVChatParameters#KEY_VIDEO_QUALITY。
变更
1. 网络通话视频绘制变更:
- 不再支持从SDK内部获取画布, AVChatManager#getSurfaceRender。
- 不再提供交换画布接口, AVChatManager#switchRender。
- 新增外部设置画布接口, AVChatManager#setupVideoRender。
- 新增视频画布控件, AVChatVideoRender。
- 新增多种视频画布缩放方式, AVChatVideoScalingType。
2. 网络通话设备事件定义 AVChatDeviceEvent 去掉画布相关事件。
[2.6.0] - 2016-07-25
新增
1. 网络通话新增语音处理模式设置: AVChatAudioEffectMode:
- PLATFORM_BUILTIN: 系统内置语音处理优先
- SDK_BUILTIN: SDK内置语音处理优先
- DISABLE: 禁用语音处理
2. 网络通话新增通话过程中参数设置 AVChatParameters:
- KEY_VIDEO_ENCODER_MODE: 动态设置视频编码模式(硬件编码/软件编码)
- KEY_VIDEO_DECODER_MODE: 动态设置视频解码模式(硬件解码/软件解码)
- KEY_VIDEO_SUPPORTED_HW_ENCODER: 动态获取是否支持硬件编码
- KEY_VIDEO_SUPPORTED_HW_DECODER: 动态获取是否支持硬件解码
- KEY_VIDEO_CROP_BEFORE_SEND: 动态设置是否发送前裁剪画面
- KEY_VIDEO_ROTATE_BEFORE_RENDING:动态设置是否允许视频绘制前自动旋转角度
- KEY_VIDEO_FPS_REPORTED: 动态设置是否允许汇报视频帧率
- KEY_VIDEO_MAX_BITRATE: 动态设置视频的最大码率
3. 网络通话接口AVChatManager新增:
- 运行时动态设置参数: setParameters(AVChatParameters params)
- 运行时动态获取参数: getParameters(AVChatParameters params)
变更
1. 网络通话功能不再支持Android 4.0以下系统。
2. 网络通话接口变更 AVChatStateObserver:
- 网络发生变化: onConnectionTypeChanged(int current, int old) -> onConnectionTypeChanged(int netType) 。
3. 网络通话视频清晰度定义变更 AVChatVideoQuality:
- 清晰度定义重命名: DEFAULT -> QUALITY_DEFAULT, LOW -> QUALITY_LOW, MEDIUM -> QUALITY_MEDIUM, HIGH -> QUALITY_HIGH 。
- 新增清晰度定义: QUALITY_480P, QUALITY_720P 。
4. 网络通话可选设置参数变更 AVChatOptionalConfig:
- 可选参数类名变更: AVChatOptionalParam -> AVChatOptionalConfig
- 删除 captureView 参数, 不再需要配置。
- 删除 screenLocker 参数, 不再需要配置。
- 新增 videoFpsReported 参数, 是否实时汇报视频帧率。
- 新增 videoMaxBitrate 参数, 视频最大码率配置。
- 新增 audioEffectNSMode 参数, 语音降噪处理设置。
- 新增 audioEffectAECMode 参数, 语音回音处理设置。
- 新增 audioEffectAGCMode 参数, 语音自动增益设置。
- 新增 defaultDeviceRotation 参数, 设备默认角度设置。
- 新增 deviceRotationFixedOffset 参数, 设备传感器角度偏移量设置。
- 新增 videoEncoderMode 参数, 视频编码模式设置。
- 新增 videoDecoderMode 参数, 视频解码模式设置。
5. 网络通话接口AVChatManager变更:
- 创建多人会话房间接口变更: createChannelByName -> createRoom
- 加入多人会话房间接口变更: joinChannelByName -> joinRoom
- 离开多人会话房间接口变更: leaveChannel -> leaveRoom
[2.5.0] - 2016-07-08
变更
1. SDK 网络通话Jar包调整:nim-sdk.jar、nim-avchat.jar、nrtc-sdk.jar。
[2.4.0] - 2016-06-02
变更
1. 提高网易云信服务进程系统优先级,降低被系统杀死的概率。
2. 适配 Android M+ 外部存储读写权限开启后,日志写入无法立即生效的问题。
3. 网络通话加入房间状态回调变更,新增服务器录制视频文件名,删除服务器文件录制路径参数:AVChatStateObserver#onJoinedChannel。
4. 网络通话来电通知不再需要注册 AVChatBroadcastReceiver 广播接收器。
[2.3.0] - 2016-05-18
新增
1. 网络通话支持多人音视频功能。
- 创建房间接口: AVChatManager#createChannelByName。
- 加入房间接口: AVChatManager#joinChannelByName。
- 离开房间接口: AVChatManager#leaveChannel。
2. 网络通话新增类型定义。
- 网络类型定义: AVChatConnectionType。
- 设备事件定义: AVChatDeviceEvent。
- 网络质量定义: AVChatNetworkQuality。
- 用户退出类型定义: AVChatUserQuitType。
- 通话可选参数定义: AVChatOptionalParam。
3. 网络通话新增静音类接口。
- 开/关本地音频流是否发送静音数据: AVChatManager#muteLocalAudio。
- 开/关本地视频流是否发发送: AVChatManager#muteLocalVideo。
- 本地音频流是否静音处理: AVChatManager#isLocalAudioMuted。
- 本地视频流是否发送: AVChatManager#isLocalVideoMuted。
- 设置是否允许播放远端用户语音数据: AVChatManager#muteRemoteAudio。
- 设置是否允许播放远端用户视频数据: AVChatManager#muteRemoteVideo。
- 远端用户语音数据是否播放: AVChatManager#isRemoteAudioMuted。
- 远端用户视频数据是否绘制: AVChatManager#isRemoteVideoMuted。
4. 网络通话其它辅助接口新增。
- 权限检查接口, Android 6.0及以上系统需要通过权限检查判断是否有权限未获取到: AVChatManager#checkPermission。
- 视频截图接口: AVChatManager#takeSnapshot。
- 多人通话时用户角色设置接口: AVChatManager#enableAudienceRole, AVChatManager#isAudienceRole。
5. 网络通话状态回调接口新增。
- 截图结果通知: AVChatStateObserver#onTakeSnapshotResult。
- 本地网络类型发生改变通知: AVChatStateObserver#onConnectionTypeChanged。
- 用户视频第一帧通知: AVChatStateObserver#onFirstVideoFrameAvailable。
- 用户视频画面帧率通知: AVChatStateObserver#onVideoFpsReported。
- 设备事件通知: AVChatStateObserver#onDeviceEvent。
变更
1. 网络通话 SDK 内部不再提供响铃功能。 由于多人模式下不支持响铃, 双人通话把相关的响铃功能移至 Demo 层, 可以参考 SoundPlayer 。
2. 网络通话接口 AVChatManager 变更。
- 发起通话 call 所有可选参数采用 AVChatOptionalParam 设置。
- 接听通话 accept 所有可选参数采用 AVChatOptionalParam 设置。
- 录制接口变更。 为了和服务器录制区分,客户端本地录制接口名变更:startRecord -> startLocalRecord, stopRecord -> stopLocalRecord, isRecording -> isLocalRecording。
- 移除 setMute isMute 接口, 采用新的静音类接口。
- 移除 setRingerConfig 铃声配置接口, 响铃功能参考 Demo 层 SoundPlayer。
- 移除 resumeVideo 和 pauseVideo接口。
- 移除 toggleLocalVideo 接口, 所有的打开和关闭操作采用 Mute 类接口。
- 切换摄像头接口变更: toggleCamera -> switchCamera。
3. 网络通话时视频参数 VideoChatParam 合并到 AVChatOptionalParam。
4. 网络通话移除铃声配置参数 AVChatRingerConfig, 响铃功能参考 Demo 层 SoundPlayer。
5. 网络通话状态回调接口变更。
- 网络质量变化通知新增参数变更: onNetworkStatusChange -> onNetworkQuality。
- 成功加入房间通知变更: onConnectedServer -> onJoinedChannel。
- 移除 onOpenDeviceError 通知, 采用更详尽的 onDeviceEvent 来获取通知。
[2.2.0] - 2016-04-28
新增
1. 网络通话服务端录制区分音频和视频,AVChatManager#call 和 AVChatManager#accept 接口添加是否录制音频、是否录制视频的参数。
2. 网络音视频通话增加全国多节点、直连与中转智能网络路由探测机制。
3. 网络音视频通话增加双人模式下服务器录制功能。服务器录制区分音频录制和视频录制,录制格式为 MP4。
[2.1.0] - 2016-03-24
新增
1. 添加 AVChatNotifyOption,可自定义音视频的 iOS 推送通知。
[1.8.0] - 2016-01-18
新增
1. 音视频添加本地发送数据的录制接口:AVChatManager。
变更
1. 断网后立即上报状态(去掉延时上报机制),上层感知到的网络状态变更更加灵敏供开发者自由发挥。
[1.6.0] - 2015-11-02
变更
1. 音视频通话码率参数由服务器动态调整。
2. 音视频通话直连模式策略调整。
3. 修改 AVChatManager.accept 接口,回调返回值改为 Void。
[1.5.0] - 2015-09-29
优化
1. 优化了音视频断线重连机制。
2. 优化了视频在弱网络环境下的质量。
3. 优化了音视频内存使用。
4. 降低了视频流量。
[1.2.0] - 2015-06-23
变更
1. 命名变更,AVChatInfo -> AVChatData。原来的 AVChat**Info 改名为 AVChat**Event, 基类为 AVChatCommonEvent,其中指定了 AVChatEventType(音视频通话事件枚举):
- AVChatOnlineAckInfo -> AVChatOnlineAckEvent。
- AVChatCalleeAckInfo -> AVChatCalleeAckEvent,其中包含被叫方的回应结果:(1)对方拒绝接听;(2)对方正在忙;(3)对方同意接听。
- AVChatControlNotification -> AVChatControlEvent。
2. AVChatManager 中,拒绝接听接口(reject)合并到挂断接口(hangUp)中。
3. observeTimeoutNotification 的回调结果改为 AVChatTimeOutEvent(超时事件枚举)。
4. observeHangUpNotificationd 的回调结果改为 AVChatCommonEvent,去掉了 AVChatHangUpInfo 类。
[1.1.0] - 2015-05-25
新增
1. 支持音视频网络通话功能。
2. 全面支持 arm,armv7,x86 三大CPU架构。
3. 支持的 android 系统版本由 2.2 升级到 2.3。