From c71d367000f72b255396e24bc3ae9359ba1ca67a Mon Sep 17 00:00:00 2001 From: Sihan Zhu Date: Wed, 21 Mar 2018 14:27:33 +0800 Subject: [PATCH] Changed readme --- README.md | 82 ++++++++++++++++---------------------------- v2_upgrade_manual.md | 68 ++++++++++++++++++++++++++++++++++++ 2 files changed, 98 insertions(+), 52 deletions(-) create mode 100644 v2_upgrade_manual.md diff --git a/README.md b/README.md index a535dde..94ba17a 100644 --- a/README.md +++ b/README.md @@ -2,61 +2,39 @@ PLDroidPlayer 是一个适用于 Android 平台的音视频播放器 SDK,可高度定制化和二次开发,为 Android 开发者提供了简单、快捷的接口,帮助开发者在 Android 平台上快速开发播放器应用。 -## 特性 - -- [x] Android Min API 9 -- [x] 支持 RTMP 和 HLS 协议的直播流媒体播放 -- [x] 支持常见的音视频文件播放(MP4、mp3、flv 等) -- [x] 支持 MediaCodec 硬件解码 -- [x] 提供播放器核心类 `PLMediaPlayer` -- [x] 提供 `PLVideoView` 控件 -- [x] 提供 `PLVideoTextureView` 控件 -- [x] 支持多种画面预览模式 -- [x] 支持画面旋转(0度,90度,180度,270度) -- [x] 支持画面镜像变换 -- [x] 支持播放器音量设置,可实现静音功能 -- [x] 支持纯音频播放 -- [x] 支持后台播放 -- [x] 支持首屏秒开 -- [x] 支持直播累积延时优化 -- [x] 支持带 IP 地址的播放 URL -- [x] 支持设置封面 -- [x] 支持软硬解自动切换 -- [x] 支持 HTTPS 协议 -- [x] 支持自动重连 -- [x] 支持 H.265 播放 -- [x] 支持七牛私有 DRM -- [x] 支持边下边播 -- [x] 支持 mp4 本地缓存功能 -- [x] 支持音视频数据回调 -- [x] 支持自定义音视频渲染 -- [x] 可高度定制化的 `MediaController` -- [x] 支持 ARM, ARMv7a, ARM64v8a, X86 主流芯片体系架构 - -## 说明 - -从 **v2.0.0** 开始,SDK 全面升级为七牛完全自研的播放器内核,拥有更加优异的性能,升级内容如下: - -- [x] 新增倍数播放功能(0.5x,1x,2x,4x 等) -- [x] 新增 mp4 本地缓存功能 -- [x] 新增音视频解码数据回调 -- [x] 新增自定义音视频播放和渲染 -- [x] 新增 HLS 七牛私有 DRM 的支持 -- [x] 新增 H.265 格式播放的支持 -- [x] 优化 CPU、内存和功耗 -- [x] 优化首开效果,首开速度有大幅提升 -- [x] 优化包体大小,jar 包和 so 体积均有显著减小 -- [x] 优化重连逻辑,不用销毁播放器,网络断开后内部自动重连 -- [x] 优化 mp4 点播,使用双 IO 技术更高效地播放 moov 在尾部的 mp4 文件 -- [x] 支持播放过程中变速不变调,可实现更平滑的追帧效果,更少的卡顿率 - -如果从旧版本升级,建议参考 v2.0.0 版本及后续的 [ReleaseNote](https://github.com/pili-engineering/PLDroidPlayer/blob/master/ReleaseNotes/release-notes-2.0.0.md) ,查看注意事项 +## 特性 + +| 功能 | 描述 | 版本 | +|--------------------|--------------------------------------------------------|--------| +| PLMediaPlayer | 类似 Android MediaPlayer,提供了播放器的核心功能 | 1.2.0+ | +| PLVideoView | 类似 Android VideoView,基于 SurfaceView 的播放控件 | 1.2.0+ | +| PLVideoTextureView | 类似 Android VideoView,基于 TextureView 的播放控件 | 1.2.0+ | +| 全架构支持 | 包括 arm64-v8a, armeabi-v7a, armeabi 与 x86 | 1.2.0+ | +| 画面镜像与旋转 | 由 PLVideoTextureView 提供,支持播放画面镜像与旋转 | 1.2.2+ | +| 后台播放 | 退到后台只播放音频 | 1.2.3+ | +| IP 地址播放 | URL 格式:protocol://ip/path?domain=xxxx.com | 1.3.0+ | +| 设置播放封面 | 在播放开始前显示封面 view | 1.4.0+ | +| 软硬解自动切换 | 优先硬解,硬解失败自动切换到软解 | 1.4.1+ | +| 自动直播延迟优化 | 播放直播流时可以通过自动变速播放来优化延迟 | 2.0.0+ | +| H.265 软解 | 软解播放 H.265 视频流 | 2.0.0+ | +| 变速播放 | 支持设置播放速度 | 2.0.0+ | +| MP4 离线缓存 | 支持播放过程中缓存 MP4 文件到本地 | 2.0.0+ | +| 解码数据回调 | 回调解码后的音视频数据,可以外部渲染 | 2.0.0+ | +| 七牛私有加密播放 | 支持播放七牛私有加密视频 | 2.0.0+ | +| 分屏播放 | 由 PLVideoTextureView 提供,支持两个 view 并排分屏播放 | 2.0.3+ | +| 自定义 DNS 服务器 | 支持自定义 DNS 服务器与设置预解析域名 | 2.0.5+ | +| 视频截图 | 支持视频截图 | 2.1.0+ | +| 区域播放 | 支持播放视频画面的部分区域 | 2.1.0+ | +| 音量增强 | 支持将播放音量增强到大于原始音量 | 2.1.0+ | +| 快开模式 | 极大加快相同协议与格式的视频流的打开速度 | 2.1.0+ | ## 使用方法 请参考开发者中心文档:[PLDroidPlayer 开发指南](https://developer.qiniu.com/pili/sdk/1210/the-android-client-sdk) -## 反馈及意见 +## 升级指南 + +从 2.0.0 开始,SDK 全面升级为七牛完全自研的播放器内核,拥有更加优异的性能与更小的包体。推荐所有老版本用户参考文档进行升级:[升级指南](https://github.com/pili-engineering/PLDroidPlayer/blob/master/v2_upgrade_manual.md) -当你遇到任何问题时,可以通过在 GitHub 的 repo 提交 issues 来反馈问题,请尽可能的描述清楚遇到的问题,如果有错误信息也一同附带,并且在 Labels 中指明类型为 bug 或者其他。 +## 反馈及意见 -[通过这里查看已有的 issues 和提交 Bug](https://github.com/pili-engineering/PLDroidPlayer/issues) +当你遇到任何问题时,可以通过在 GitHub 提交 issue 来反馈问题,请尽可能的描述清楚遇到的问题以及相应的流地址(若为本地视频,推荐上传至云存储并提供链接),推荐提供相应的日志。 \ No newline at end of file diff --git a/v2_upgrade_manual.md b/v2_upgrade_manual.md new file mode 100644 index 0000000..e9166c6 --- /dev/null +++ b/v2_upgrade_manual.md @@ -0,0 +1,68 @@ +# PLDroidPlayer 升级指南 + +从 v2.0.0 版本开始,PLdroidPlayer 不再依赖 ijkmediaplayer,全面升级为七牛自研的播放器内核,拥有更优异的性能。目前最新版为 2.1.1 + +## 更改说明 + +具体接口使用方式详见[官网文档](https://developer.qiniu.com/pili/sdk/1210/the-android-client-sdk) + +### 新增功能 + +- 倍数播放 +- MP4 本地缓存 +- 播放加密视频 +- H.265 软解 +- 解码数据回调 +- 大幅减少包体体积 +- 大幅优化首开速度 +- 变速不变调,平滑追帧 +- 视频截图 +- 自定义播放区域 + +### 依赖库 + +- 原有的 pldroidplayer.so 不再需要,可以删除 +- 新增 libqplayer.so,该库为必须依赖 +- 新增 libqccodec.so,该库为软解的 codec,若不使用软解,可以删除 +- 新增 libqcopenssl.so,若 targetSdkVersion < 24 或不需要播放 https 地址的流,可以删除 + +### 混淆配置 + +需要在 `proguard-rules` 中新增 + +``` + -keep class com.pili.pldroid.player.** { *; } + -keep class com.qiniu.qplayer.mediaEngine.MediaPlayer{*;} +``` + +### 注意事项 + +- SDK 内部自动处理重连,不再需要外部进行重连 +- SDK 所有公开方法的参数名不再混淆,可以直接通过 IDE 查看 +- 所有 Listener 类与相关常量从 `PLMediaPlayer` 下调整为单独的接口,并添加 PL 前缀 +- 所有 Listener 类的回调方法中的 `PLMediaPlayer` 参数均被移除 +- `AVOptions` 与所有 Listener 类的内容均有了较多改变,详见[官网文档](https://developer.qiniu.com/pili/sdk/1210/the-android-client-sdk) + +### 新增接口 + +#### `PLMediaPlayer` / `PLVideoView` / `PLVideoTextureView` + +- `captureImage()`: 视频截图 +- `setVideoArea()`: 区域播放 +- `setVolume()`: 音量扩增 +- `setPlaySpeed()`: 倍速播放 + +#### `PLVideoView` + +- `setZOrderOnTop`:同系统 `SurfaceView` 的 `setZOrderOnTop` +- `setZOrderMediaOverlay`: 同系统 `SurfaceView` 的 `setZOrderMediaOverlay` + +#### `PLVideoTextureView` + +- `PLVideoTextureView.setSplitMode()`: 启用分屏模式 +- `PLVideoTextureView.disableSplitMode()`: 禁用分屏模式 + +### 删除接口 + +- `PLNetworkManager` +