播放器更新日志

更新时间: 2023/10/25 08:03:36

本文介绍播放器 iOS 端的更新日志。

v3.2.7 - 2023-10-12

修复偶现的播放器崩溃问题。

v3.2.6 - 2023-05-06

  1. 硬件解码兼容优化
  2. 命令注入风险问题合规整改
  3. 修复部分已知问题

v3.2.4 - 2023-03-02

问题修复

  • 修复播放器在后台运行时,进行开启或关闭播放器,偶现崩溃问题。
  • 修复低延时直播场景,偶现的播放器奔溃问题。

v3.2.2 - 2022-09-09

  1. 低延时直播支持B帧的解码播放
  2. 低延时直播支持Codec协商
  3. 低延时直播支持SEI端到端延迟解析

v3.2.1 - 2022-07-19

  1. 新增首帧、卡顿率数据统计
  2. 区分低延时直播和CDN直播播放失败错误码
  3. 修复部分已知问题
  4. 优化低延时直播延时

v3.2.0 - 2022-06-22

  1. 低延时直播兼容H.265编码和AAC音频格式
  2. 提升抗弱网性能
  3. 修复特殊场景下偶现的直播崩溃问题
  4. 支持H265软解码

v3.1.6 - 2022-05-27

问题修复

修复播放器在特定环境下偶现崩溃问题。

v3.1.5 - 2022-05-18

问题修复

优化在特定情况下低延时直播与 RTC 共同使用时,可能存在的符号警告问题。

升级必看

v3.1.5 版本在 libs 目录下新增 NMCBasicModuleFramework.framework 库文件。

从历史版本升级至 v3.1.5 及以上版本时,如果您是通过手工导入库文件,请将新增的库文件导入到 App 工程。如果通过 Cocoapods 导入,会自动导入新增的库文件。

v3.1.3 - 2022-04-12

问题修复

  1. 修复 GSLB 在 iOS 15 版本偶现的崩溃问题。
  2. 修复部分设备上低延时播放失败的问题。

v3.1.2 - 2022-04-02

优化

优化缓冲逻辑,减少直播发生缓冲的几率。

v3.1.1 - 2022-03-18

优化

优化NERTC(低延时直播)协议拉流首帧、延时、弱网等关键指标

v3.1.0 - 2022-01-18

优化

NERTC(低延时直播)协议拉流首帧能力提升

问题修复

修复iOS一些warning

v3.0.0 - 2021-12-29

优化

  • NERTC(低延时直播)协议拉流弱网能力提升
  • SDK权限及个人信息合规整改

问题修复

修复偶现BUG

v2.9.1 - 2021-08-27

新增特性

补充NERTC(低延时直播)协议拉流异常回调

v2.9.0 - 2021-05-18

新增特性

支持NERTC(低延时直播)协议拉流播放

v2.8.0 - 2021-03-18

新增特性

  • 优化统计上报字段
  • 兼容互动直播2.0 SEI数据结构

v2.7.1 - 2021-02-22

新增特性

修改窗口尺寸变化的回调逻辑

问题修复

  • 修复播放重试偶现黑屏的问题
  • 修复Player引擎偶现Bug

v2.7.0 - 2021-01-20

新增特性

支持加密直播流播放

v2.6.0 - 2020-12-16

新增特性

  • 支持播放基于HLS的多码率自适应点播视频
  • 优化GSLB直播调度模块

v2.5.0 - 2020-11-3

优化

升级player内核

问题修复

修复偶现BUG

v2.4.4 - 2019-10-11

新增特性

  • 优化日志写入
  • 优化调度逻辑

v2.4.2 - 2019-6-27

新增特性

  • 增加DNS拉流灾备
  • 增加异常情况网络测速机制

v2.4.1 - 2019-4-25

新增特性

  • 增加预调度结果查询接口
  • 增加调度结果切换接口
  • 修复内存泄漏

v2.4.0 - 2019-4-08

新增特性

  • 添加多视频(均带有SEI时间戳信息)同步播放的功能
  • 部分日志添加实例区分
  • 优化、兼容前面只有音频、视频,而后来又有视频、音频的流
  • 添加回报当前播放position的回调
  • 添加自定义http header功能
  • 增加DataSource外部输入回调接口
  • 增加精确seek的超时保护

v2.3.1 - 2019-2-26

问题修复

  • 修复FLV格式的视频seek缓冲时间过长的问题
  • 修复hls精确seek完成后,实际完成时间与设置时间不符的问题

优化

提高对部分第三方视频的兼容

v2.3.0 - 2019-2-18

新增特性

  • 新增:缓存配置的自定义路径逻辑修改,用户需要对每个视频单独设置路径
  • 新增:增加gslb缓存强制刷新接口
  • 新增:点播缓存策略修改为本地文件,视频云直播地址,rtmp协议地址,hls地址几种类型的不进行缓存(如果设置了缓存参数)
  • 新增:增加原始地址统计字段上报
  • 新增:直播硬解及hls直播支持追赶

优化

  • 优化:所有对外接口均切换到主线程执行(如果不在主线程),保证时序
  • 优化:日志模块部分重构,调整日志上传时机,修改为APP重启后延时10s进行上传
  • 优化:合并解密流程和播放流程,优化首屏时间
  • 优化:定位相关信息获取的位置修改为app生命周期内只拿一次(如果有定位权限)
  • 优化:修改GSLB单次的缓存逻辑,在首条视频拉流失败的情况下移除该条调度结果缓存
  • 优化:规范switch操作后保留的参数。缓冲策略、缓冲区大小、解码类型、自动播放、静音、镜像、音量、循环播放、精确seek、播放速度、拉流超时、同步时间戳获取回调、PCM回调、YUV回调、重试配置、音轨序号
  • 优化:seek完成逻辑,保证每次seek均有配对的NELivePlayerMoviePlayerSeekCompletedNotification进行回调

问题修复

  • 修复:修复直播追赶时,分辨率变化的场景下偶现的视频花屏问题
  • 修复:seek到最后,loop设置失效的问题
  • 修复:实例释放后线程不回收的问题
  • 修复:seek完成后返回两次NELivePlayerMoviePlayerSeekCompletedNotification问题
  • 修复:修改释放通知在某些异常情况不发送的问题
  • 修复:偶现的少量内存泄漏问题
  • 修复:解析同步信息和同步时间戳时偶现的的crash
  • 修复:部分底层统计字段不准确的问题
  • 修复:播放不支持格式的音频文件时出现的crash
  • 修复:部分视频loop播放时没有从头开始的问题

v2.2.3 - 2019-1-22

  • 放开对第三方点播地址的本地缓冲限制
  • 修复在seek完成时的回调多次的问题

v2.2.1 - 2018-12-21

问题修复

  • 解决hls多音轨视频没有声音的问题
  • 修复部分加密视频无法播放的问题

v2.2.0 - 2018-12-10

新增特性

  • 实时信息的获取,包括音/视频接收码率,接收帧率,播放帧率,音/视频缓存时长,音/视频缓存大小,音视频播放时间差
  • 兼容多slice编码类型视频硬件解码

优化

  • 删除播放器里未使用到的dlsym和dlopen等可能影响上架的动态方法
  • 内部统计模块增加线程安全保障,防止crash
  • 优化播放过程中,seek到最后的处理逻辑。如果开启了精确seek,seek到最后会直接上报complete事件,避免等待。

问题修复

  • 修复设置循环播放后不走重连机制的问题
  • 修复播放完成后无法重新play的问题
  • 修复多音轨类型的文件默认音轨选择错误的问题
  • 限制seek的范围在0和duration之间
  • 修复设置循环播放后频繁上报error的问题
  • 修复设置软件解码时,误报硬解开启通知问题
  • 修复播放出错后底层播放状态不对的问题

v2.1.0 - 2018-10-29

新增特性

  • 增加重试配置参数
  • 增加缓存配置参数
  • 增加加解密配置参数
  • 增加带(缓存配置和加解密配置)的切换接口,可以切换任何种类视频
  • 增加全局AudioSession配置接口
  • 增加私有化配置功能
  • 支持1080P硬件解码
  • 原始密钥解密方式接口外部传入的原始密钥方式由NSString改为NSData
  • 增加缓冲区大小设置接口
  • 增加精确seek设置的开关接口

优化

  • 性能优化:播放器内部操作队列化管理,防止资源抢占和并发出现的崩溃
  • 性能优化:规范切换接口后的动静态参数保留
  • 性能优化:优化视频本地缓存的功能,切换缓存的实现机制
  • 性能优化:优化释放部分,防止被外部提前释放出现的内存泄漏
  • 性能优化:底层解码出错和流解析出错适配多实例情况

问题修复

修复统计上报偶现的崩溃问题

v2.0.0 - 2018-09-06

新增特性

  • 新增功能:增加多音轨视频音轨无缝切换
  • 新增功能:增加默认音轨选择逻辑
  • 新增功能:hls 加密视频自动探测视频格式
  • 新增功能:增加所有音轨信息查询接口
  • 新增功能:去除多分辨率文件的播放支持
  • 新增功能:通知统一在主线程抛出
  • 新增功能:增加PCM数据回调支持配置采样率及声道数

优化

  • 修复个别场景下出现的内存泄漏问题
  • 预调度模块逻辑优化

v1.9.1 - 2018-08-02

问题修复

  • 修复硬件解码出现的内存泄漏
  • 修复直播硬编码960P推流出现拉流端的持续内存泄漏

v1.9.0 - 2018-07-26

新增特性

  • 开放点播循环播放接口
  • 点播flv,mp4格式视频本地缓存优化(已经缓存过的seek不再需要发起网络请求)
  • 增加水平镜像翻转功能
  • 升级ffmpeg 3.4
  • 增加滚动示范Demo(使用多实例方式实现预加载演示)

问题修复

  • 修复引入预调度之后,端到端延时不准确的问题
  • 修复预调度刷新机制失效的问题
  • 修复某些GOP较大的视频采用硬件解码切后台再切回前台视频卡住的问题

优化

调度测速策略优化

v1.8.0 - 2018-06-12

新增特性

  • H.265 视频硬件解码支持
  • 兼容先有视频后有音频,或者先有音频后有视频类型媒体播放

优化

增加网络数据异常防护

v1.7.0 - 2018-05-08

新增特性

  • HLS加密视频播放
  • 增加预调度接口,优化首屏时间
  • 增加点播节点调度
  • 增加同步透传信息接收开关

问题修复

  • 修复NRTC推流下出现的音视频不同步的问题
  • 修复统计上报偶现的崩溃问题

优化

  • 集成优化:对外提供framework集成方式
  • 集成优化:提供Cocoapod集成方式

v1.6.0 - 2018-03-29

新增特性

  • 透传时间戳方案兼容硬件解码
  • 透传自定义信息方案
  • 增加SRT外挂字幕功能
  • 增加日志回调接口
  • 增加底层日志记录

优化

多实例场景优化

v1.5.2 - 2018-02-05

问题修复

修复多实例弱网下导致的崩溃

v1.5.1 - 2018-01-31

问题修复

结点调度域名修改

v1.5.0 - 2018-01-29

新增特性

  • 新增功能:直播拉流结点选择优化
  • 新增功能:增加加密视频切换播放功能
  • 新增功能:增加视频落后音频类型文件兼容

问题修复

  • 问题修复:获取网络类型卡主线程问题
  • 问题修复:修复释放过程中出现的crash问题

v1.4.6 - 2018-01-19

新增特性

  • 缓冲策略增加延时追赶模式,NELPDelayPullUp
  • 增加时间戳同步方式。
  • 增加currentSyncTimestamp同步时间戳查询接口
  • 增加setSyncTimestampListenerWithIntervalMS:callback 轮询上报同步时间戳接口
  • 增加currentPlaybackRealTime 真实时间戳查询接口
  • 增加setRealTimeListenerWithIntervalMS:callback 轮询上报真实时间戳接口
  • 增加ffmpeg类型参数配置,优化首屏时间

问题修复

  • 修复多CDN内部超时切换时,外部设置的超时时间被重置的问题
  • 修复第二次进入播放器时,拉流超时偶现的不上报结束通知问题
  • 修复多实例初始化时偶现的锁崩溃问题,偶现播放器释放时的崩溃问题
  • 修复外部设置音频抢占模式之后,发生音频抢占并恢复时导致的无声音问题
  • 修复OBS拉流端视频卡住的问题

v1.4.3 - 2018-01-10

问题修复

修复多实例共存情况下,频繁释放和初始化各实例导致的崩溃问题。

v1.4.2 - 2018-01-04

问题修复

  • 修复https无法播放问题。
  • 修复日志回调偶现崩溃问题。

v1.4.1 - 2017-12-26

问题修复

修复多次seek导致的崩溃问题。

新增特性

  • 增加新的初始化方式,可以传日志回调方法,进行外部日志记录。
  • 增加拉流过程中http的header域字符串形式回调。

v1.4.0 - 2017-12-18

问题修复

  • 修复弱网情况下,反复进入退出导致的crash问题
  • shutdown接口和switch接口做了线程同步,修复多线程调用时,相关打断导致的崩溃
  • 修复playercore延后playervc释放的问题
  • 去除日志模块的单例模式,改用对象管理,修复多实例情况下的日志混乱和日志模块的崩溃
  • 修复直播多分辨率切换导致的小概率花屏问题
  • 修复上传日志接口出现的崩溃。
  • 来电打断使用电话状态和声音打断的双重监测,修复小概率电话打断后直播无法恢复问题。

新增特性

  • 基于initWithContentURL:接口,新增init接口和setUrl接口。原有接口保留
  • 加解密模块去除等待信号量,使用安全的异步回调机制。

v1.3.2 - 2017-11-16

新增特性

增加idx多分辨率自动切换功能

优化

播放器释放部分优化

问题修复

  • 修复弱网情况下的内存泄漏问题
  • 修复不同文件切换的内存泄漏问题
  • 修复前后台暂停和电话打断逻辑冲突的问题
  • 修复加密视频内存泄漏问题 。

v1.3.1 - 2017-10-17

新增特性

  • 增加Idx多分辨率切换功能相关接口
  • 增加初始化错误类型、播放过程中的出错类型
  • 增加播放过程中产生的网络返回码
  • 增加本地日志路径获取接口
  • iOS11 适配,所有与UI相关操作移至主线程

优化

直播和点播切后台逻辑修改。通过setPauseInBackground:开关控制前后台拉流逻辑,设置为NO,sdk不参与前后台操作;设置为YES,sdk,对于直播流,sdk会在进入后台后停止拉流,回到前台后恢复拉流,过程中画面不会出现黑屏现象,对于点播流,进入后台后暂停视频,进入前台后就行播放视频

问题修复 修复已知Bug

v1.3.0 - 2017-08-28

新增特性

  • 去除 isToFile: 方法
  • setLogLevel修改为工厂方法
  • 支持模拟器版本

优化

  • 播放器内部逻辑优化
  • 升级libNMCBasicModule库

问题修复 修复已知BUG

v1.2.9 - 2017-08-14

新增特性

增加初始化接口initWithContentURL:needConfigAudioSession,可外部配置AudioSession。needConfigAudioSession传递为YES时,内部会对AudioSession进行配置,如果传递NO,内部不会对AudioSession进行操作,外部必须配置AudioSession

优化

  • 优化直播拉流超时处理。多CDN情况下,默认先拉第一条流,如果3s内未拉到流数据,则自动切换至第二条流
  • 升级libNMCBasicModule库

v1.2.8 - 2017-07-10

新增特性

  • 去除直播sdk冲突
  • libNMCBasicModule支持Bitcode
  • 增加系统库链接libresolv.tbd

v1.2.7 - 2017-07-07

新增特性

  • 增加设置flv解密密钥的接口
  • 支持视频解码后的yuv数据回调
  • 支持音频解码后的pcm数据回调
  • 支持精确seek
  • 代码优化

**工程变动 **

  • 增加 libNMCBasicmodule.a 库
  • 集成的时候需要添加 libsqlite3.a 库

v1.2.6 - 2017-06-13

  • 支持播放过程中切换播放地址
  • 修复一些bug

v1.2.5 - 2017-04-13

修复一个内存泄漏问题

v1.2.4 - 2017-03-30

  • 支持flv点播加密视频的解密播放
  • 增加直播缓冲极速模式
  • 修复一些bug

v1.2.3 - 2016-12-21

  • 支持多实例创建
  • 支持https拉流

v1.2.2 - 2016-11-25

  • 增加拉流超时设置接口
  • 增加直播流畅模式设置

v1.2.1 - 2016-10-31

增加音量控制接口

v1.2.0 - 2016-09-26

  • 整体结构优化
  • 增加视频码流解析失败时的消息上报

v1.1.0 - 2016-09-05

优化点播缓存

v1.0.9 - 2016-08-15

增加倍数播放的功能(仅适用于点播)

v1.0.8 - 2016-07-26

  • 支持服务器参数下发
  • 支持日志保存本地

v1.0.7 - 2016-06-30

优化播放器buffer策略

v1.0.6 - 2016-05-24

修复播放限制策略

v1.0.5 - 2016-04-29

  • 增加接口保护
  • 优化播放流畅性
  • 支持speex播放

v1.0.4 - 2016-03-31

  • 增加第一帧画面显示时的消息通知
  • 增加资源异步释放结束后的消息通知
  • 优化播放流畅性

v1.0.3 - 2016-01-25

  • 增加设置缓冲策略接口
  • 解决直播延时的问题

v1.0.2 - 2015-12-17

重构代码结构

v1.0.1 - 2015-11-29

播放器的初始版本,提供基本的播放功能

此文档是否对你有帮助?
有帮助
去反馈
  • v3.2.7 - 2023-10-12
  • v3.2.6 - 2023-05-06
  • v3.2.4 - 2023-03-02
  • v3.2.2 - 2022-09-09
  • v3.2.1 - 2022-07-19
  • v3.2.0 - 2022-06-22
  • v3.1.6 - 2022-05-27
  • v3.1.5 - 2022-05-18
  • v3.1.3 - 2022-04-12
  • v3.1.2 - 2022-04-02
  • v3.1.1 - 2022-03-18
  • v3.1.0 - 2022-01-18
  • v3.0.0 - 2021-12-29
  • v2.9.1 - 2021-08-27
  • v2.9.0 - 2021-05-18
  • v2.8.0 - 2021-03-18
  • v2.7.1 - 2021-02-22
  • v2.7.0 - 2021-01-20
  • v2.6.0 - 2020-12-16
  • v2.5.0 - 2020-11-3
  • v2.4.4 - 2019-10-11
  • v2.4.2 - 2019-6-27
  • v2.4.1 - 2019-4-25
  • v2.4.0 - 2019-4-08
  • v2.3.1 - 2019-2-26
  • v2.3.0 - 2019-2-18
  • v2.2.3 - 2019-1-22
  • v2.2.1 - 2018-12-21
  • v2.2.0 - 2018-12-10
  • v2.1.0 - 2018-10-29
  • v2.0.0 - 2018-09-06
  • v1.9.1 - 2018-08-02
  • v1.9.0 - 2018-07-26
  • v1.8.0 - 2018-06-12
  • v1.7.0 - 2018-05-08
  • v1.6.0 - 2018-03-29
  • v1.5.2 - 2018-02-05
  • v1.5.1 - 2018-01-31
  • v1.5.0 - 2018-01-29
  • v1.4.6 - 2018-01-19
  • v1.4.3 - 2018-01-10
  • v1.4.2 - 2018-01-04
  • v1.4.1 - 2017-12-26
  • v1.4.0 - 2017-12-18
  • v1.3.2 - 2017-11-16
  • v1.3.1 - 2017-10-17
  • v1.3.0 - 2017-08-28
  • v1.2.9 - 2017-08-14
  • v1.2.8 - 2017-07-10
  • v1.2.7 - 2017-07-07
  • v1.2.6 - 2017-06-13
  • v1.2.5 - 2017-04-13
  • v1.2.4 - 2017-03-30
  • v1.2.3 - 2016-12-21
  • v1.2.2 - 2016-11-25
  • v1.2.1 - 2016-10-31
  • v1.2.0 - 2016-09-26
  • v1.1.0 - 2016-09-05
  • v1.0.9 - 2016-08-15
  • v1.0.8 - 2016-07-26
  • v1.0.7 - 2016-06-30
  • v1.0.6 - 2016-05-24
  • v1.0.5 - 2016-04-29
  • v1.0.4 - 2016-03-31
  • v1.0.3 - 2016-01-25
  • v1.0.2 - 2015-12-17
  • v1.0.1 - 2015-11-29