输入关键词搜索,支持 AI 答疑

播放器 iOS 更新日志

更新时间: 2024/11/19 09:24:15

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

3.4.4 (2024-09-24)

3.2.7 (2023-10-12)

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

3.2.6 (2023-05-06)

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

3.2.4 (2023-03-02)

问题修复

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

3.2.2 (2022-09-09)

  • 低延时直播支持 B 帧的解码播放。
  • 低延时直播支持 Codec 协商。
  • 低延时直播支持 SEI 端到端延迟解析。

3.2.1 (2022-07-19)

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

3.2.0 (2022-06-22)

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

3.1.6 (2022-05-27)

问题修复

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

3.1.5 (2022-05-18)

问题修复

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

升级必看

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

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

3.1.3 (2022-04-12)

问题修复

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

3.1.2 (2022-04-02)

优化

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

3.1.1 (2022-03-18)

优化

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

3.1.0 (2022-01-18)

优化

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

问题修复

修复 iOS 一些 warning 报错。

3.0.0 (2021-12-29)

优化

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

问题修复

修复偶现 BUG。

2.9.1 (2021-08-27)

新增特性

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

2.9.0 (2021-05-18)

新增特性

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

2.8.0 (2021-03-18)

新增特性

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

2.7.1 (2021-02-22)

新增特性

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

问题修复

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

2.7.0 (2021-01-20)

新增特性

支持加密直播流播放。

2.6.0 (2020-12-16)

新增特性

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

2.5.0 (2020-11-3)

优化

升级 player 内核。

问题修复

修复偶现 BUG。

2.4.4 (2019-10-11)

新增特性

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

2.4.2 (2019-6-27)

新增特性

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

2.4.1 (2019-4-25)

新增特性

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

2.4.0 (2019-4-08)

新增特性

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

2.3.1 (2019-2-26)

问题修复

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

优化

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

2.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 播放时没有从头开始的问题。

2.2.3 (2019-1-22)

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

2.2.1 (2018-12-21)

问题修复

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

2.2.0 (2018-12-10)

新增特性

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

优化

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

问题修复

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

2.1.0 (2018-10-29)

新增特性

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

优化

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

问题修复

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

2.0.0 (2018-09-06)

新增特性

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

优化

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

1.9.1 (2018-08-02)

问题修复

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

1.9.0 (2018-07-26)

新增特性

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

问题修复

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

优化

调度测速策略优化。

1.8.0 (2018-06-12)

新增特性

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

优化

增加网络数据异常防护。

1.7.0 (2018-05-08)

新增特性

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

问题修复

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

优化

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

1.6.0 (2018-03-29)

新增特性

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

优化

多实例场景优化。

1.5.2 (2018-02-05)

问题修复

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

1.5.1 (2018-01-31)

问题修复

结点调度域名修改。

1.5.0 (2018-01-29)

新增特性

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

问题修复

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

1.4.6 (2018-01-19)

新增特性

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

问题修复

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

1.4.3 (2018-01-10)

问题修复

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

1.4.2 (2018-01-04)

问题修复

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

1.4.1 (2017-12-26)

问题修复

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

新增特性

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

1.4.0 (2017-12-18)

问题修复

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

新增特性

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

1.3.2 (2017-11-16)

新增特性

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

优化

播放器释放部分优化。

问题修复

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

1.3.1 (2017-10-17)

新增特性

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

优化

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

问题修复

修复已知 Bug。

1.3.0 (2017-08-28)

新增特性

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

优化

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

问题修复

修复已知 BUG。

1.2.9 (2017-08-14)

新增特性

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

优化

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

1.2.8 (2017-07-10)

新增特性

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

1.2.7 (2017-07-07)

新增特性

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

工程变动

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

1.2.6 (2017-06-13)

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

1.2.5 (2017-04-13)

修复一个内存泄漏问题。

1.2.4 (2017-03-30)

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

1.2.3 (2016-12-21)

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

1.2.2 (2016-11-25)

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

1.2.1 (2016-10-31)

增加音量控制接口。

1.2.0 (2016-09-26)

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

1.1.0 (2016-09-05)

优化点播缓存。

1.0.9 (2016-08-15)

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

1.0.8 (2016-07-26)

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

1.0.7 (2016-06-30)

优化播放器 buffer 策略。

1.0.6 (2016-05-24)

修复播放限制策略。

1.0.5 (2016-04-29)

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

1.0.4 (2016-03-31)

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

1.0.3 (2016-01-25)

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

1.0.2 (2015-12-17)

重构代码结构。

1.0.1 (2015-11-29)

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

此文档是否对你有帮助?
有帮助
去反馈
  • 3.4.4 (2024-09-24)
  • 3.2.7 (2023-10-12)
  • 3.2.6 (2023-05-06)
  • 3.2.4 (2023-03-02)
  • 3.2.2 (2022-09-09)
  • 3.2.1 (2022-07-19)
  • 3.2.0 (2022-06-22)
  • 3.1.6 (2022-05-27)
  • 3.1.5 (2022-05-18)
  • 3.1.3 (2022-04-12)
  • 3.1.2 (2022-04-02)
  • 3.1.1 (2022-03-18)
  • 3.1.0 (2022-01-18)
  • 3.0.0 (2021-12-29)
  • 2.9.1 (2021-08-27)
  • 2.9.0 (2021-05-18)
  • 2.8.0 (2021-03-18)
  • 2.7.1 (2021-02-22)
  • 2.7.0 (2021-01-20)
  • 2.6.0 (2020-12-16)
  • 2.5.0 (2020-11-3)
  • 2.4.4 (2019-10-11)
  • 2.4.2 (2019-6-27)
  • 2.4.1 (2019-4-25)
  • 2.4.0 (2019-4-08)
  • 2.3.1 (2019-2-26)
  • 2.3.0 (2019-2-18)
  • 2.2.3 (2019-1-22)
  • 2.2.1 (2018-12-21)
  • 2.2.0 (2018-12-10)
  • 2.1.0 (2018-10-29)
  • 2.0.0 (2018-09-06)
  • 1.9.1 (2018-08-02)
  • 1.9.0 (2018-07-26)
  • 1.8.0 (2018-06-12)
  • 1.7.0 (2018-05-08)
  • 1.6.0 (2018-03-29)
  • 1.5.2 (2018-02-05)
  • 1.5.1 (2018-01-31)
  • 1.5.0 (2018-01-29)
  • 1.4.6 (2018-01-19)
  • 1.4.3 (2018-01-10)
  • 1.4.2 (2018-01-04)
  • 1.4.1 (2017-12-26)
  • 1.4.0 (2017-12-18)
  • 1.3.2 (2017-11-16)
  • 1.3.1 (2017-10-17)
  • 1.3.0 (2017-08-28)
  • 1.2.9 (2017-08-14)
  • 1.2.8 (2017-07-10)
  • 1.2.7 (2017-07-07)
  • 1.2.6 (2017-06-13)
  • 1.2.5 (2017-04-13)
  • 1.2.4 (2017-03-30)
  • 1.2.3 (2016-12-21)
  • 1.2.2 (2016-11-25)
  • 1.2.1 (2016-10-31)
  • 1.2.0 (2016-09-26)
  • 1.1.0 (2016-09-05)
  • 1.0.9 (2016-08-15)
  • 1.0.8 (2016-07-26)
  • 1.0.7 (2016-06-30)
  • 1.0.6 (2016-05-24)
  • 1.0.5 (2016-04-29)
  • 1.0.4 (2016-03-31)
  • 1.0.3 (2016-01-25)
  • 1.0.2 (2015-12-17)
  • 1.0.1 (2015-11-29)