播放器 Android 更新日志
更新时间: 2024/11/19 09:25:37
本文介绍播放器 Android 端的更新日志。
3.4.3 (2024-09-24)
- 新增调度域名设置,优化首帧加载时长。详情请参考 动态设置 GSLB 域名。
- 新增自定义日志路径配置功能。详情请参考 自定义日志文件路径。
- 改进日志上报机制。
3.3.8 (2023-09-04)
修复偶现的播放器崩溃问题。
3.2.6 (2023-05-06)
- 硬件解码兼容优化。
- 命令注入风险问题合规整改。
- 修复部分已知问题。
3.2.4 (2023-02-03)
问题修复
- 修复低延时直播场景,偶现的播放器奔溃问题。
- 修复个别机型,硬件解码失败时无法回退软件解码的问题。
3.2.2 (2022-09-09)
- 低延时直播支持 B 帧的解码播放。
- 低延时直播支持 Codec 协商。
- 低延时直播支持 SEI 端到端延迟解析。
3.2.1 (2022-07-19)
- 新增首帧、卡顿率数据统计。
- 区分低延时直播和 CDN 直播播放失败错误码。
- 修复部分已知问题。
- 优化低延时直播延时。
3.2.0 (2022-06-22)
- 修复 Android 11 偶现的 Bug。
- 优化缓冲逻辑,减少直播发生缓冲的几率。
3.1.3 (2022-04-12)
解决 Android 机型适配问题。
3.1.2 (2022-04-02)
- 修复 Android 11 偶现的 Bug。
- 优化缓冲逻辑,减少直播发生缓冲的几率。
3.1.1 (2022-03-18)
NERTC(低延时直播)协议拉流首帧、延时、弱网等关键指标优化。
3.1.0 (2022-01-18)
NERTC(低延时直播)协议拉流首帧能力提升。
3.0.0 (2021-12-29)
- NERTC(低延时直播)协议拉流弱网能力提升。
- SDK 权限及个人信息合规整改。
- 修改偶现 BUG。
2.9.1 (2021-08-27)
- 补充 NERTC(低延时直播)协议拉流异常回调。
- 修改偶现 BUG。
2.9.0 (2021-05-18)
- 支持 NERTC(低延时直播)协议拉流播放。
- 2.9.0 及以上版本需要从 maven 仓库中引入播放器 SDK
2.8.0 (2021-03-18)
- 优化统计上报字段。
- 兼容互动直播 2.0SEI 数据结构。
2.7.1 (2021-02-08)
- 修复 Android11 系统偶现 Bug
2.7.0 (2021-01-20)
- 支持加密直播流播放。
2.6.0 (2020-12-6)
- 支持播放基于 HLS 的多码率自适应点播视频。
- 优化 GSLB 直播调度模块。
2.5.0 (2020-11-4)
- 升级 player 内核。
- 修复偶现 BUG
2.4.5 (2019-12-5)
- 优化调度请求。
- 优化统计逻辑。
2.4.4 (2019-9-20)
- 优化日志写入。
- 优化调度逻辑。
2.4.2 (2019-7-1)
- 增加 DNS 拉流灾备。
- 增加异常情况网络测速机制。
- 优化日志打印。
2.4.1 (2019-4-25)
- 增加手动查询并切换播放地址功能。
接口变动:
- 添加接口
void queryPreloadUrlResult(String url, NEGslbResultListener listener)
查询 CDN 播放地址。 - 添加接口
void switchWithGslbResult(GlsbSession session, NEGslbServerModel model)
切换播放地址。 - 添加接口
NEGslbServerModel getCurrentServerModel()
查询当前播放地址信息。
2.4.0 (2019-4-8)
- 添加多视频(均带有 SEI 时间戳信息)同步播放的功能。
- 调整第三方库的编译脚本,并更新了预编译库。
- 用户在未调用 init 接口,就直接 create 时,抛出 UnsupportedOperationException。
- 部分日志添加实例区分。
- 优化、兼容前面只有音频、视频,而后来又有视频、音频的流。
- 添加回报当前播放 position 的回调。
- 设备没有存储空间时,写 log 避免 crash。
- 添加自定义 http header 功能。
接口变动:
- 添加接口
void syncClockTo(NELivePlayer player)
来实现多实例同步播放功能。 - 添加接口
void setOnCurrentPositionListener(long interval, OnCurrentPositionListener listener)
来监听当前播放位置。 NEDataSourceConfig
中添加Map<String, String> headers
成员,用来配置自定义 header 信息。
2.3.1 (2019-2-28)
- 修复 hls 点播视频 seek 后,实际位置与设置时间不符的问题。
- 修复 flv 点播视频 seek 后缓冲时间过长的问题。
- 提高对部分第三方视频的兼容性。
- 修复切换拉流 CDN 时,服务端下发参数和 cache 设置不生效的问题。
2.3.0 (2019-2-18)
功能变动
- 支持使用自定义 DataSource 播放 assets 和 raw 文件夹中的 MP4、flv 格式文件。
- 日志上传策略优化:开启日志上报时,在 init 接口调用 10s 后上传。
- 解密逻辑优化,解密步骤合并在播放流程中,减小首屏时间。
- Android P 深灰名单适配。
- so 动态加载功能支持第三方服务器。
- 缓存配置的自定义路径逻辑修改,用户必须对每个视频单独设置路径,并放开对第三方地址的限制。
- 增加 gslb 缓存强制刷新接口。
- 修改 GSLB 单次的缓存逻辑,在首条视频拉流失败的情况下移除该条调度结果缓存。
- 直播硬解及 hls 直播支持追赶。
问题修复
- 修复直播播放偶现的花屏问题。
- 修复 seek 到最后,loop 设置可能会失效的问题。
- 修复开启 SEI 同步时间戳偶现的 crash 问题。
- 修复视频流中有不支持的音频 codec 时会 crash 的问题。
- 修复偶现的少量内存泄漏。
- 修复部分视频 loop 播放时没有从头开始的问题。
接口变动
- 添加 getSDKInfo 静态接口。
- 删除旧的解密接口。
- 废弃
setLooping
,isLooping
接口,新增setLoopCount
,getLoopCount
来代替。 - 添加
setOnAudioFrameFilterListener(NEAudioPcmConfig config, OnAudioFrameFilterListener listener)
接口同时配置音频 pcm 回调参数和回调 listener - init 参数中新增 thirdUserId,可协助问题排查。
- 删除
switchContentUrlWithDecryptionToken
,switchContentUrlWithDecryptionKey
接口,可使用switchContentUrl(String url, NEDataSourceConfig config)
接口代替。 - 删除
prepareAsyncWithDecryptionToken
,prepareAsyncWithDecryptionKey
接口,可使用setDataSource(String path,NEDataSourceConfig config)
+prepareAsync()
代替。
2.2.3 (2019-1-22)
- 优化在无存储权限或者无外部存储时频繁打印错误日志的问题。
- 修复解码类型回调未上报的问题。
- 放开对第三方点播地址的本地缓冲限制。
- 修复在 seek 完成时的回调多次的问题。
2.2.2 (2018-12-21)
- 解决 hls 多音轨视频没有声音的问题。
- 修复部分加密视频无法播放的问题。
2.2.1 (2018-12-13)
- 修复播放第三方地址出现错误时崩溃问题。
- 修复设置自动播放未生效问题。
2.2.0 (2018-12-10)
功能变动
- 支持纯视频时倍速播放。
- 修复硬件播放结束时最后几帧未渲染问题。
- 支持播放时调度结果缓存。
- 解密线程优化。
- 支持获取播放实时数据。
- 修复在软解使用 surfaceview 时画面实际渲染晚于首帧回调的问题。
- 优化多音轨选择逻辑,修复某些情况下会选择无声音轨的问题。
接口变动
- 增加获取播放实时数据接口:getMediaRealTimeInfo
2.1.1 (2018-11-06)
- 修复在调用切换播放地址接口时,如果不更换渲染的 surface,可能小概率出现 crash 的问题。
2.1.0 (2018-10-29)
功能变动
- 支持设置是否精确 seek。
- 支持设置自动重试。
- 支持设置本地缓存。
- 增加私有化配置功能。
- 调用 switch 类接口后,保留非 url 相关的配置参数。
- 修复 switch 及 reset 接口在某些极端情况下可能会 block 很久的问题。
- 设置音频 pcm 回调参数后,仅影响回调的 PCM 数据。
- 修复下载到本地的 hls 加密视频可能无法播放的问题。
- 修复循环播放时最后一帧画面会卡一下的问题。
接口变动
- 增加设置播放地址和播放配置项接口:setDataSource(url, config)
- 增加切换播放地址和播放配置项接口:switchContentUrl(url, config)
- 增加设置是否精确 seek 接口:setAccurateSeek
- 增加配置自动重试信息接口:setAutoRetryConfig
- 废弃接口:prepareAsyncWithDecryptionToken
- 废弃接口:prepareAsyncWithDecryptionKey
- 废弃接口:switchContentUrlWithDecryptionToken
- 废弃接口:switchContentUrlWithDecryptionKey
- 移除直播视频解析错误接口:setOnVideoParseErrorListener
2.0.0 (2018-09-06)
功能变动
- 支持多音轨选择播放。
- 支持 hls 解密。
- 支持设置音频回调数据的采样率和声道数。
- 优化 SurfaceView 前后台切换时的体验。
- 修复硬件解码在互动直播场景连麦和下麦花屏问题。
接口变动
- 增加获取当前音轨信息接口:getAudioTracksInfo
- 增加获取当前音轨序号接口:getSelectedAudioTrack
- 增加切换音轨接口:setSelectedAudioTrack
- 增加设置音频回调数据参数接口:setAudioPcmDataConfig
1.9.0 (2018-07-26)
功能变动
- 支持循环播放。
- 支持镜像。
- 基于 SDK 封装了 playerkit 组件方便开发者接入。
- 优化 TextureView 硬件解码前后台切换,参考 playerkit 组件中的 AdvanceSingleTextureView。
接口变动
- 增加循环播放接口:setLooping
- 增加镜像接口:setMirror
1.8.0 (2018-06-12)
功能变动
- 支持 H265 硬件解码。
- 兼容先有视频后有音频的文件播放。
- 支持 gradle 集成 SDK 包。
- 支持点播 webm 格式软件解码播放。
接口变动
- 常量类 NEType 拆分为 NEPlayStatusType、NEKeyVerifyResultType、NEErrorType、NEBufferStrategy
- 增加是否支持 H265 解码回调接口:NESDKConfig#isSupportH265Decode
1.7.0 (2018-05-08)
功能变动
- 支持点播时外挂字幕。
- 视频解码性能和线程管理优化,增强了播放器的兼容性。
- 修复 x86 架构的 so 库导致的崩溃问题。
- 支持点播时 hls 格式的加密视频解密播放。
- 支持预调度拉流地址,有效减少首屏时间。
接口变动
- 增加设置点播时本地外挂字幕文件接口:setSubtitleFile
- 增加设置字幕回调的接口:setOnSubtitleListener
- 增加添加预调度拉流链接地址的接口:addPreloadUrls
- 增加移除预调度拉流链接地址的接口:removePreloadUrls
- 增加查询预调度拉流链接地址的结果信息的接口:queryPreloadUrls
- 增加预调度刷新间隔参数设置接口:SDKConfig#refreshPreLoadDuration
- 增加设置是否开启同步时间戳、同步内容信息回调的接口:setSyncOpen
1.6.1 (2018-04-10)
功能变动
- 支持动态加载 so 库文件。
接口变动
- 增加 so 库动态加载配置信息接口:SDKConfig#dynamicLoadingConfig。
1.6.0 (2018-03-30)
功能变动
- 透传时间戳方案兼容软件解码和硬件解码。
- 支持透传自定义数据信息。
- 同步时间戳接口支持软解和硬解。
1.5.6 (2018-03-09)
功能变动
- 支持日志回调上层。
- 增加解码卡顿通知。
接口变动
- 增加日志回调接口:SDKConfig#OnLogListener
- 增加解码卡顿通知类型:NEType#NELP_NET_DECODE_BAD
1.5.5 (2018-02-27)
功能变动
- 支持数据通过应用层拉流传给 SDK 进行播放。
- 支持自定义 MediaDataSource
- 支持数据回调上层进行网络请求。
- 支持点播模式时设置缓冲区大小。
- 支持缓冲进度回调。
接口变动
- 增加初始化接口:NELivePlayer.init(context,config);
- 播放器实例创建接口变更:由 NELivePlayer.create(mContext) 变成 NELivePlayer.create()
- 增加设置自定义 MediaDataSource 接口:setDataSource(mediaDataSource)
- 增加设置缓冲区大小接口:setBufferSize(size)
1.5.0 (2018-01-26)
功能变动
- 直播拉流优化。
- 增加加密视频切换播放功能。
- 增加视频落后音频类型文件兼容。
- 去除保持屏幕常亮接口,改由 demo 示例。
接口变动
- 解密信息接口变更:由 initDecryption 变成 prepareAsyncWithDecryptionToken
- 解密秘钥接口变更:由 setDecryptionKey 变成 prepareAsyncWithDecryptionKey
- 增加加密视频解密信息切换播放接口:switchContentUrlWithDecryptionToken
- 增加加密视频解密密钥切换播放接口:switchContentUrlWithDecryptionKey
- 删除保持屏幕常亮接口:setScreenOnWhilePlaying
1.4.6 (2018-01-19)
功能变动
- 增加时间戳回调功能,方便应用层的逻辑与播放器播放进行同步。
- 音视频播放超时时间效果优化。
- 增加直播延时追赶模式,用于直播出现延时时进行快速播放进行追赶。
接口变动
- 增加当前播放的时间戳回调接口:setOnCurrentRealTimeListener
- 增加当前播放的同步时间戳回调接口:setOnCurrentSyncTimestampListener
- 增加获取正在播放的时间戳接口:getCurrentRealTime
- 增加获取正在播放的同步时间戳接口:getCurrentSyncTimestamp
- 增加直播延时追赶模式:NELPDELAYPULLUP
1.4.0 (2017-12-7)
功能变动
- 视频中频繁切分辨率时 SDK 内部会重置播放器重新拉流播放。
- 修复先音频后视频的流无法解析问题,解析时间通过服务器动态下发。
- 修复偶现空指针异常导致崩溃问题。
- 修复在某些网络情况下视频解密偶现失败的问题。
1.3.1 (2017-10-17)
功能变动
- 支持播放时进行清晰度切换。
- 软件解码时在 Android 4.0 以上版本支持旋转视频播放和硬件解码在 Android 5.0 以上版本支持旋转视频播放。
- 重构播放器资源释放广播通知。
- 播放时的错误回调中增加错误码(错误码是在 OnErrorListener 的 onError 的 what)。
- 拉流播放时的 http 请求的状态码回调(状态码在 OnInfoListener 的 onInfo 的 what)。
接口变动
- 增加播放器回调接口类:NECallback
- 增加用户视频清晰度切换的播放信息类:NEDefinitionData
- 增加设置是否自动切换清晰度接口:setAutoSwitchDefinition
- 增加视频清晰度解析监听注册接口:setOnDefinitionListener
- 增加播放过程中切换清晰度接口:switchDefinition
- 播放器的常量移到新增的常量类:NEType
1.3.0 (2017-08-28)
功能变动
- 线程管理优化。
- 修复播放器多实例时崩溃问题。
接口变动
- 注册获取视频帧数据的回调接口变更:由 registerGetVideoRawDataCB 变成 setOnVideoFrameFilterListener
- 注册获取音频帧数据的回调接口变更:由 registerGetAudioRawDataCB 变成 setOnAudioFrameFilterListener
- 视频数据的回调变更:由 vCallback 变成 OnVideoFrameFilterListener
- 音频数据的回调变更:由 aCallback 变成 OnAudioFrameFilterListener
- 密钥获取结果的回调变更:由 Callback 变成 OnDecryptionListener
- 播放器创建方式变更:由 new NEMediaPlayer(mContext) 变成 NELivePlayer.create(mContext)
1.2.9 (2017-08-14)
功能变动
- so 库精简进行体积优化。
- 修复在某些机型设备音视频流上设置到指定时间点播放慢的问题。
接口变动
- 删除设置日志路径 setLogPath 和级别 setLogLevel 接口。
- sdk 包对外接口类移至 sdk 包下。
1.2.8 (2017-07-20)
bug 修复。
1.2.7 (2017-07-07)
功能变动
- 增加设置 flv 解密密钥的接口。
- 支持视频解码后的 yuv 数据回调。
- 支持音频解码后的 pcm 数据回调。
- 支持精确 seek
- 代码优化。
接口变动
- 创建播放器实例时需要传入标识 videoview 上下文信息的 Context。
- initDecryption 接口去掉上下文信息的参数。
- prepareAsync 接口去掉上下文信息的参数。
1.2.6 (2017-6-13)
- 支持播放过程中切换播放地址。
- 修复一些 bug
1.2.4 (2017-3-30)
- 支持 https 协议拉流。
- 增加直播极速模式。
- 支持 flv 加密视频的解密播放功能。
- 修复一些 bug
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)
- arm 架构支持 speex 解码。
- 采用广播接收的形式来接收资源释放成功的通知(见开发指南)。
- 内存优化。
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)
- 播放器的初始版本,提供基本的播放功能。
此文档是否对你有帮助?