音视频通话 iOS 端更新日志
[7.9.0] - 2020-08-27
修复
- 修复纯视频下本地录制可能失败的问题。
[7.7.0] - 2020-05-27
新增
- 新增音视频连接状态查询接口
getConnectStatus
修复
- 修复iOS上偶现某些情况下远端画面出现撕裂的情况。
[7.5.0] - 2020-03-31
优化
- 首帧耗时优化。
[7.3.0] - 2020-03-02
优化
- 优化SDK的稳定性。
修复
- 修复了iOS上某些情况下退出再进入房间可能造成没有声音的问题。
[7.1.0] - 2019-12-17
新增
- 新增远端视频展示类型参数
remoteViewoShowType
,默认采用回调View,SDK渲染远端数据的方式。 - 音频接收端可以获得远端原始音频数据PCM,新增接口
registerRemoteAudioCallBackWithUid:
和registerPlayAudioCallBack:
。 - 新增音频播放采样率参数
playbackSampleRate
。 - 编码默认改为硬件编码,解码默认改为硬件解码。
优化
- 下行QoS策略优化
- 白板重复加入无回调问题
[7.0.1] - 2019-11-20
修复
- 修复了低概率偶发的崩溃问题,优化音视频的稳定性
[6.10.1] - 2019-11-04
修复
- 优化多人音视频场景下的稳定性,修复客户端可能存在的客户端崩溃风险
[6.10.0] - 2019-10-29
新增
- 视频订阅支持端到端QoS策略,新增接口
setPubishFallBack:
设置QoS策略。 - 支持预览分辨率和发送分辨率分别设置,新增参数
previewVideoQuality
设置预览分辨率,新增接口switchPreviewVideoQuality :
修改预览分辨率。 - 删除了高视频预览质量参数
highPreviewQuality
。 - iOS平台的默认音频模式从基础通话模式修改为高清通话模式
preferHDAudio
默认改为YES。 - 适配iOS 13。
优化
- 优化通话某些情况下拿到对方首帧画面慢的延迟问题。
[6.8.2] - 2019-8-23
优化
- 修复了偶发的无声音问题。
[6.8.1] - 2019-8-14
优化
- 优化了音量输出。
[6.8.0] - 2019-8-13
新增
- 新增支持发布视频双流的Beta版本。
- 新增远端视频渲染回调 View 的模式,
- 新增接口
onRemoteDisplayviewReady:user:
回调远端渲染的view。 - 新增接口
remoteDisplayViewWithUid:
查询对应的视频渲染view。 - 新增接口
setRemoteRenderModel:forUser:
设置对应用户的远端渲染层的显示模式,拉伸、等比例缩放等。
- 新增接口
优化
- 提升白板稳定性。
修复
- 修复了iOS音视频登陆失败导致的挂断问题。
[6.6.7] - 2019-7-17
新增
- 新增iOS音频的双声道采集,通过不同声道选路的方式解决某些机型在特定场景下的音量和回声问题。
修复
- 修复了iOS在Swift环境下获取当前混音任务时触发的崩溃问题。
[6.6.0] - 2019-6-25
新增
- 新增视频订阅相关功能,具体内容参考:音视频订阅
变更
onNetCallRecordingInfo
回调中audioRecordFileName
与videoRecordFileName
参数无效。- 网络状态
NIMNetCallNetStatus
枚举中去掉了枚举类型NIMNetCallNetStatusVeryGood
与NIMNetCallNetStatusVeryBad
对参数进行了精简。 - 音频场景模式
NIMAVChatScene
去掉了自适应高清NIMAVChatSceneHighQualityMusicAdaptive
。
优化
- 优化了高清音乐和高清语音模式,实现带宽自适应
- 优化了卡顿率上报,实现渲染层的卡顿率上报
- 优化了网络回调准确性,增加带宽限制的网络影响
- 优化了耳机插拔多次导致的AEC失效问题
[6.4.0] - 2019-4-26
新增
- iOS/macOS:新增开启自定义视频输入接口,并支持通话过程中切换
startCustomVideo:
- 新增音频外部播放设备状态回调
onAudioExternalDeviceStateChanged:
- 新增选择音频外部设备类型接口
selectAudioExternalDevice:
- 新增开关AudioDump的接口
startAudioDump:
和stopAudioDump:
- 新增是否关闭SDK AudioSession配置参数
disEnableAudioSessionConfigration
- 新增主动上传日志的接口
startUploadLogWithRate:
变更
- iOS/macOS:代理参数新增云信自定义类型
NIMSocksTypeNRTCProxy
修复
- 修复白板在网络断开恢复后的崩溃
- 修复点对点白板下开启服务端音频录制录制失败的问题
- 修复视频本地数据回调自定义前处理失效的问题
[6.2.0] - 2019-3-14
新增
- iOS新增屏幕共享功能:iOS新增屏幕共享功能,主要满足教育场景平板上进行屏幕共享的需求。 iOS跨应用的屏幕共享功能依赖系统组件ReplayKit采集画面,并通过自定义数据输入进行画面数据的发送。此功能的系统版本要求为iOS 11+。
[6.1.1] - 2019-2-15
变更
- iOS/macOS:修复一些BUG,提升音视频体验
[6.0.0] - 2019-1-11
新增
- iOS/macOS:新增音效管理接口,支持播放背景音乐的同时,通过该接口播放鼓掌/撒花等短音效
变更
- iOS/macOS:本地MP4录制变更为带可选视频参数接口
startRecording:option:uid:
[5.8.0] - 2018-11-13
新增
- iOS新增距离传感器开关,解决部分客户因为自动切换听筒模式而产生的音量过小的问题
- iOS新增AGC参数设置,可通过此接口实现音频自动增益的效果
- iOS/macOS:新增音视频设备管理接口
- iOS新增音视频代理接口
- macOS:新增插拔耳机监听
- macOS:音视频支持屏幕共享功能,提供单独接口供开发者调用。
变更
- masOS:无麦克风设备的支持
- macOS:支持外部摄像头采集1080p,前处理性能优化
[5.6.0] - 2018-8-30
新增
- 增加了 网络状况回调接口
onNetStat:user:
可以获得当前通话每个用户对应的 网络质量、RTT 和 音视频的丢包率等信息 - 服务端录制参数改变为
NIMNetCallServerRecord *serverRecord;
,删除原有的单人录制参数并改为录制模式,新增是否为主讲人参数 - 增加了 音视频socks5代理
NIMNetCallSocks5 *socks5info;
, 可搭建开源的socks5代理服务器并在SDK配置对应的代理地址和端口,实现内外网之间的互通。 - 新增了外部自定义音频输入接口,支持麦克风采集人声和点播文件音频流的混音发送。
- 新增了音频采集异常回调
onAudioDeviceCaptureAbnormal
,以及异常恢复回调onAudioDeviceCaptureRecover
。 - 新增被踢回调
onKicked
,表示用户被服务器踢出。
[5.5.0] - 2018-08-07
变更
- 去掉了啸叫抑制参数
[5.4.0] - 2018-7-10
新增
- 多人音视频服务端录制开放客户试用
- 多人音视频服务端录制能力本期面向客户开放试用,本期提供应用粒度画廊模式固定合图模式。如有需要,请联系网易云信商务经理开通功能试用。
- 全员静音功能,禁止播放所有远端音频流。
- 丰富伴音功能,支持进度条控制和云端文件播放。
- 新增通过兴趣点坐标设置实现手动曝光。
[5.2.0] - 2018-5-24
新增
- 预览效果优化
- 新增高预览质量参数
highPreviewQuality
, 打开后将提供高质量的本地视频预览,在较老的机器上可能会影响性能。 - 并且将默认在用户设置分辨率较小时,提供较好的预览效果。
- 同时优化在切换分辨率时的用户体验。
- 新增高预览质量参数
- 新增资源释放回调
onResourceFreed
,音视频资源释放完成后将会进行回调。 - 新增音频设备适配框架,适配机型持续增加。
- 这些适配针对特定机型进行参数适配,能够有效解决因为前处理导致的回声、杂音、啸叫、音量低等问题,效果更佳。
[5.0.1] - 2018-4-13
修复
- 修复自动重置音频设备可能造成的问题。
[5.0.0] - 2018-3-29
新增
【重要优化】高清音乐模式全面升级,针对音乐教学陪练场景定制优化
- 支持全频带音质,采集与前处理均支持48KHz音频,乐器的高音信息可以很好地保留,音质更佳;
- 使用音乐编码器,更匹配音乐场景,保留更多音频细节,音质更佳;
- 提高音频专属带宽,定制音乐场景下的QoS调控策略,提高抗抖动能力,不丢不卡更流畅;
新增集成 WebRTC apm,优化高清音乐场景用户体验
- 新增了软件音频回声抑制,并增加了可选的设置参数
acousticEchoCanceler
,一般不需要开发者设置
- 新增了软件音频回声抑制,并增加了可选的设置参数
音视频客户端自动重连
- 服务器超时断开时,客户端新增自动重连机制
新增了音频重置开关
- 新增了音频重置开关
autoResetAudio
,当检查音频采集数据不正常时,自动重置音频设备。
- 新增了音频重置开关
新增极端网络下关闭视频的回调
- 新增极端网络下关闭视频的回调,新增了枚举值
NIMNetCallNetStatusVideoClosed
。
- 新增极端网络下关闭视频的回调,新增了枚举值
变更
- 高清音乐和自适应高清音乐场景生效时,SDK 不再自动关闭降噪和人声检测,如果需要保持该逻辑,开发者可以按照开发手册的推荐配置手动设置相应开关
修复
- 修复了某些 iPad Pro 2 设备的回声问题
- 在音频采集异常时尝试再次启动 AudioSession
[4.9.0] - 2018-2-11
新增
新增屏幕共享场景调控策略
NIMAVChatVideoAdaptiveStrategyScreenRecord
,支持通话过程调控策略动态切换,可以通过接口selectVideoAdaptiveStrategy
进行切换。提供完全关闭音频的纯视频功能,可以通过
option
中的pureVideo
参数来进行设置,优化IOS音视频与应用本身播放音乐的兼容性。
[4.7.3] - 2018-1-25
修复
- 优化与V4.2.0之前版本的视频通话效果,提升音视频服务体验。
[4.7.1] - 2018-1-17
修复
- 修复已知问题,优化音频抗丢包能力。
[4.7.0] - 2018-1-9
新增
新增耳返功能。当主播想要从耳机中听到自己的声音时,可以开启耳返。一般使用在主播开启伴音,主播戴上耳机,随着伴奏说话唱歌,可以从耳机中实时听到融合了音乐和自己人声的声音。
- 开启耳返
startEarBack
- 关闭耳返
stopEarBack
- 设置耳返音量
changeEarBackVolume
- 开启耳返
全面提升音视频抗丢包能力,优化弱网下音视频表现。
在
NIMNetCallVideoCaptureParam
视频采集参数中新增前处理参数集videoProcessorParam
,预览镜像参数isPreviewMirror
与编码镜像参数isCodeMirror
。
变更
- 原前处理参数
provideLocalVideoProcess
被删去,变更为videoProcessorParam
前处理参数集。
[4.5.0] - 2017-11-23
新增
- 网络探测功能细化 支持按照视频质量档位(NIMNetCallVideoQuality)进行网络探测,支持6个视频质量档位+纯音频探测粒度的网络探测。客户可以根据视频质量需要进行针对性的网络探测,网络探测的结果可以提供更加精准的参考。
- 新增
设置是否关闭语音发送
接口,该接口可同时关闭语音和伴音发送 - 在线教育解决方案 Demo 适配 iOS 11
变更
- 开始网络探测 接口从
startDetectTaskForVideo:completion:
变更为startDetectTaskForDetectType:completion:
参数videoOrAudio
变更为detectType
探测类型支持选择清晰度档位。
[4.3.0] - 2017-10-13
新增
- 优化视频 QoS 调控策略, 通过码率、帧率和分辨率的自动调节保证用户体验,并且可以通过 option 中的参数
videoAdaptiveStrategy
选择偏好的调控策略为质量优先或流畅优先 - 网络探测接口新增视频网络探测, 现在可以在发起网络探测时选择视频探测还是音频探测了
- 支持登录前调用视频预览相关接口
- 升级 opus 编码器到 1.2.1 版本
- 音视频网络状况汇报新增档位
网络极差
,该档位下建议关闭视频数据发送
变更
- 开始网络探测 接口从
startDetectTask:
变更为startDetectTaskForVideo:completion:
- 网络状况枚举
NIMNetCallNetStatusVeryBad
含义变更,并增加NIMNetCallNetStatusPoor
修复
- 修复 Xcode 9 编译应用在 iOS 11上运行,本地预览画面显示很晚的问题
[4.1.0] - 2017-08-08
新增
- 新增自定义视频数据输入功能, 在
NIMNetCallOption
类中新增自定义视频数据输入参数customVideoParam
- 新增啸叫抑制功能
audioHowlingSuppress
- 新增自适应高清音乐场景
NIMAVChatSceneHighQualityMusicAdaptive
, 在频道只有一个发言者其他都为观众时对发言者生效
[3.9.1] - 2017-06-29
新增
- 新增 WebRTC 兼容开关
webrtcCompatible
, 在 预订房间 时通过option
设置, 在有 WebRTC 客户端参与的房间中需要打开该开关, 该 WebRTC 为 Beta 版, 如果没有 WebRTC 客户端参与, 不要打开该开关
修复
- 修复已知问题
[3.9.0] - 2017-06-23
新增
- 优化了音乐效果
- 优化了弱网环境下的声音效果
- 新增频道场景参数
scene
, 可以在高清语音开启时设置高清音乐场景NRTCChannelSceneHighQualityMusic
- 新增视频清晰度 540P
- 新增摄像头设置,支持
- 改变摄像头焦距功能
- 手动对焦模式,可在手动对焦与自动对焦模式中进行切换
- 切换视频清晰度回调接口
- 切换视频采集方向回调接口
- 开启闪光灯
- 新增视频前处理,支持
- 美颜滤镜,支持自然,粉嫩,怀旧,黑白四款
- 设置磨皮强度,对比度强度
- 设置视频预览镜像及编码镜像
- 添加水印,支持静态水印及动态水印
变更
- 本地视频预览层画面回调从
onLocalPreviewReady:
变更为onLocalDisplayviewReady:
参数类型从CALayer 变为 UIView - 获取本地视频预览层从
localPreviewLayer
变更为getDisplayView:
返回值类型从CALayer 变为 UIView - 前后摄像头切换回调从
onCameraSwitchedTo:
变更为onCameraTypeSwitchCompleted:
- 视频裁剪参数
videoCrop
从NIMNetCallOption
移到了NIMNetCallVideoCaptureParam
[3.7.0] - 2017-05-10
新增
- SDK优化了音视频相关的统计功能,方便实时排查音视频通话过程中遇到的问题,并对相关流程进行优化,提高稳定性,建议开发者更新此版本
修正
- 修正自己的音量不回调的问题
[3.6.0] - 2017-04-27
新增
- 支持单独控制视频预览的开启和关闭,满足进入音视频之前预览和结束音视频之后继续预览等使用场景
- 新增禁止发送视频的设置接口,可以在不关闭摄像头的情况下停止视频数据的发送
- 支持音视频过程中动态切换视频采集的方向,满足互动直播的横竖屏动态切换需求
- 支持指定发送前视频画面裁剪比例,可以指定为 16:9、4:3 和 1:1 裁剪
- 支持指定视频采集数据的画面格式,可以指定为 420f、420v 和 ARGB 三种格式。
- 发送视频接口新增支持 420v 格式,并且可以改变回调画面中的宽高
变更
NIMNetCallOption
中与视频采集相关的参数移到NIMNetCallVideoCaptureParam
中,如果你想 SDK 自动控制视频采集,请在发起、接受和加入音视频时传入的 option 中 设置videoCaptureParam
NIMNetCallOption
的disableVideoCropping
选项变更为videoCrop
,老版本只能指定是否做 16:9 裁剪,现在可以自定义为预设的裁剪比例了
[3.5.5] - 2017-03-29
新增
- 新增视频采集方向设置, 主要用于支持互动直播时的横屏直播
- 支持横屏时的 16:9 裁剪
[3.5.0] - 2017-03-15
新增
- SDK 现在以
.framework
形式提供。 - 新增通话录音功能, 可以录制通话中所有参与者的声音并保存为 aac 或 wav 文件
- 新增
alwaysKeepCalling
参数, 用于设置被叫离线时是否仍然需要持续呼叫 - 新增录制对方音视频功能,并保存为 MP4 文件
- 新增本地视频截图,并新增接口
snapshotFromLocalVideoCompletion:
- 点对点视频支持接通前预览
变更
NIMNetCallType
变为NIMNetCallMediaType
, 涉及点对点通话的 主叫发起通话、被叫收到呼叫 和 切换网络通话类型 三个接口中的通话类型参数,以及加入多人会议的 音视频类型 参数MP4视频录制接口的合并调整,调整后本地录制与对端录制使用同一套接口
- 开始录制接口从
startLocalRecording:videoBitrate:
变更为startRecording:videoBitrate:uid:
,新增了用户 userId 参数 - 结束录制接口从
stopLocalRecording:
变更为stopRecordingWithUid:
,新增了用户 userId 参数 - 开始回调从
onLocalRecordStarted:fileURL:
变更为onRecordStarted:fileURL:uid:
,新增了用户 userId 参数 - 错误回调从
onLocalRecordError:callID:
变更为onRecordError:callID:uid:
,新增了用户 userId 参数 - 结束回调从
onLocalRecordStopped:fileURL:
变更为onRecordStopped:fileURL:uid:
,新增了用户 userId 参数
- 开始录制接口从
[3.4.1] - 2017-02-09
修正
- 修复设置了
apnsPayload
option 以后,发起音视频或者白板通话请求失败的问题
变更
- 点对点网络通话状态通知
onCall:status
变更为 以下两个接口:- 通话建立成功:
onCallEstablished:
- 通话异常断开:
onCallDisconnected: withError:
- 通话建立成功:
[3.3.0] - 2016-12-28
新增
- 新增文件混音功能,支持实时音视频中开始、暂停、恢复及停止文件混音,支持设置文件播放次数、发送音量和播放音量
- 新增支持高清语音,提供高采样率语音,提高通话体验
- 新增网络探测功能,可探测通话网络的连通性、丢包率和延迟等信息
[3.2.0] - 2016-11-30
新增
- 新增语音前处理开关设置,可以选择性关闭语音降噪和人声检测等功能
- 网络状况增加用户 id 参数,以区分不同用户的网络状况
变更
- 网络状况回调接口从
onCall:netStatus:
变更为onNetStatus:user:
,增加了用户 id 参数 - 网络状况查询接口 从
netStatus
变更为netStatus:
,增加了用户 id 参数
[3.1.0] - 2016-10-26
变更
- 不再兼容 iOS 6.x 系统, 从 iOS 7.0 开始支持
- 请把工程中依赖的系统 c++ 库从 libstdc++.6.0.9.tbd 改为 libc++.tbd
[3.0.0] - 2016-10-20
新增
- 正在说话的用户及音量信息回调
- 支持实时开始或结束互动直播推流
[2.9.0] - 2016-09-19
新增
- 视频采集画面回调和发送,用于应用实现美颜等功能
- 音频采集画面回调和发送,用于应用实现变声等功能
- 摄像头切换完成回调,主要用于视频回调开启时,处理前置摄像头画面的镜像翻转
变更
NIMRTSRequestHandler
和NIMRTSResponseHandler
增加 参数channelID
[2.7.0] - 2016-08-11
新增
- 支持通话中实时切换视频分辨率
- 新增视频发送帧率设置
- 多人会议新增错误回调
[2.6.0] - 2016-07-25
新增
- 提高视频清晰度,新增支持 720P 和 480P 两个等级;默认清晰度提高到高清
- 新增 iOS 8.0 以上系统视频硬件编解码支持,并可以在视频过程中实时切换软硬件编码
- 新增视频发送码率设置支持,并可以在视频过程中实时改变码率
- 新增初始摄像头位置参数,现在可以以后置摄像头开始视频聊天了
- 新增通话结束时自动结束 AudioSession 开关
- 新增获取网络层 log 文件路径接口
变更
NIMNetCallMeeting
中与音视频通话能力相关的参数(清晰度、裁剪、录制、旋转等)全部合并移到option
中
[2.5.0] - 2016-07-08
新增
- 新增是否自动旋转远端画面的设置
autoRotateRemoteVideo
[2.4.0]- 2016-06-02
新增
- 新增服务器录制信息回调接口
onNetCallRecordingInfo:
,提供录制的音频和视频文件信息 - 兼容 IPv6
- 所有接口添加 nullablity 特性和泛型特性,使得 swift 接入更简单
[2.3.0] - 2016-05-18
新增
- 新增多人会议,支持视频会议和语音会议。
- 支持对某用户的音频和视频静音操作。
- 支持对端画面自动旋转。
变更
请在你的xcode工程中添加 NIMSDK 的新依赖库
VideoToolbox.framework
NIMNetCallManager
变更 远程视频YUV数据就绪 接口 - (void)onRemoteYUVReady:(NSData *)yuvData width:(NSUInteger)width height:(NSUInteger)height
增加参数
user
,改为- (void)onRemoteYUVReady:(NSData *)yuvData width:(NSUInteger)width height:(NSUInteger)height from:(NSString *)user
[2.2.0] - 2016-04-28
修正
- 优化性能。
新增
- 新增服务端录制音频和视频开关参数。
- 增加全国多节点、直连与中转智能网络路由探测机制。
[2.1.0] - 2016-03-24
新增
- 发起点对点通话请求增加可定制的 APNS 推送参数,现在可以设置是否推送、推送角标处理、推送声音和 Playload 等参数了。
变更
NIMNetCallOption
和NIMRTSOption
的message
参数改名为apnsContent
。
[1.8.0] - 2016-01-18
新增
NIMNetCallManager
添加本地录制接口- (BOOL)startLocalRecording:(NSURL *)filePath videoBitrate:(UInt32)videoBitrate
变更
NIMNetCallManager
变更主叫发起通话接口 和 被叫响应呼叫接口主叫发起通话接口:
- (void)start:(NSString *)callee type:(NIMNetCallType)type completion:(NIMNetCallStartHandler)completion
改为
- (void)start:(NSArray *)callees type:(NIMNetCallType)type option:(NIMNetCallOption *)option completion:(NIMNetCallStartHandler)completion
被叫响应呼叫接口:
- (void)response:(UInt64)callID accept:(BOOL)accept completion:(NIMNetCallResponseHandler)completion
改为
- (void)response:(UInt64)callID accept:(BOOL)accept option:(NIMNetCallOption *)option completion:(NIMNetCallResponseHandler)completion
接口新增
推送文案
和自定义扩展字段
。接口新增
指定期望的发送视频清晰度
参数,用于开发者不满足于默认清晰度时传入更期望的清晰度接口新增
禁用视频裁剪
参数,用于开发者不希望SDK为了优化运算性能和网络占用而裁剪发送视频NIMNetCallManagerDelegate
被叫收到呼叫回调增加参数extendMessage
被叫收到呼叫 回调接口:
- (void)onReceive:(UInt64)callID from:(NSString *)caller type:(NIMNetCallType)type
改为
- (void)onReceive:(UInt64)callID from:(NSString *)caller type:(NIMNetCallType)type message:(NSString *)extendMessage
[1.7.0] - 2015-12-01
修正
- 修正音视频聊天,视频模式切换到音频模式,再回到视频,弱网下对端会累积延迟的问题。
- 修正视频聊天切换前后摄像头以后,弱网累积延迟的问题。
[1.6.0] - 2015-11-02
修正
- 修正iPhone4 音视频通话闪退的问题。
[1.5.0] - 2015-09-29
新增
- 增加bitcode编译选项,更好地支持XCode7和iOS9
- 视频聊天增加接口
-(void)onRemoteYUVReady:width:height:
- 可以用得到的yuv数据直接OpenGL渲染远程画面
- 优化了弱网络下的视频聊天体验
[1.1.0] - 2015-05-25
新增
- 新增音视频通话功能