阅读对象
本文面向所有使用该 SDK 的开发人员、测试人员、合作伙伴以及对此感兴趣的其他用户,要求读者具有一定的 Android 编程经验。
简介
阿里云播放器 Android SDK(以下简称“SDK”)是阿里云推出的 Android 平台视频播放器软件开发工具包 (SDK),为 Android 开发者提供简单、便捷的开发接口,帮助开发者在 Android 移动设备上实现媒体播放功能。SDK 提供简单、便捷的媒体应用开发能力。
- 本地全媒体格式支持突破 Android 平台对视频格式的限制,支持目前所有主流的媒体格式(mp4、avi、wmv、flv、mkv、mov、 rmvb 等)。
-
支持广泛的流式视频格式
支持多种格式文件渐进式和流式播放: HLS、RTMP、HTTP Pseudo-Streaming (伪流)。
-
性能强大
CPU/内存占用率低,视频加载速度快。
-
低门槛、高灵活度实现播放功能
提供了与系统播放器 MediaPlayer 类高度相似的调用接口,便于开发者快速开发媒体播放应用;提供了与系统播放控件 VideoView 高度相似的接口(该部分以源码形式提供,详见 demo 中的 BDCloudVideoView);同时提供开发示例。
-
针对直播场景进行优化
提供专门面向直播场景的直播精简版 SDK,支持 RTMP、HTTP+FLV、HLS 协议及 H264 和 AAC 编码。
-
版权保护
支持阿里云 PlayerBinding 与 Token 加密方式;支持 HLS 加密视频的离线下载和播放。
-
CPU架构支持完整
完整支持 armeabi,armeabi-v7a,arm64-v8a,x86,x86_64
功能列表
- 与MediaPlayer接口高度相似
- 提供BDCloudVideoView控件,与VideoView接口高度一致(开源)
- 全功能版支持全媒体格式
- 直播精简版支持 RTMP、HTTP-FLV、HLS 直播
- 支持首屏秒开
- 支持追帧播放
- 支持 IPV6
- 支持多实例播放
- 支持单实例多次播放
- 支持纯音频播放
- 支持硬件解码
- 支持网速探测
- 支持续播
- 支持多种画幅缩放模式
- 支持后台播放
- 支持 HLS 离线下载
- 支持 HLS 多码率切换
- 支持播放中截图
- 支持缓冲区大小设置
- 支持缓冲区时长设置
- 支持解码方式设置
- 支持设置 HTTP 请求的 Header
- 支持设置 HTTP 请求的 UserAgent
- 支持 APM
- 支持 RTMP 或 HTTP-FLV 直播实时 metadata 信息更新回调
- 支持 VOD 版权保护
- 支持seek缩略图预览
- 支持HLS、MP4协议边播边存
- 支持HLS,MP4等主流媒体格式的多码率无缝切换。
部分功能说明
多码率快速切换与无缝切换
快速切换:切换时内部重启播放器,并seek上一个码率的播放位置。
优点:
- 通过精准seek能完美衔接两个码率的播放位置。
- 切换速度快。
缺点:
- 播放器有明显的卡顿。
- 仅支持HLS切换。
无缝切换:播放器内部切换数据源,内部seek到下一个码率的位置,刷新解码器即可。
优点:
- 通过缓冲丢帧策略能完美衔接两个码率的播放位置。
- 无缝切换,无明显卡顿。
- 支持全格式切换。
缺点:
- 切换较慢,跟用户设置的缓冲大小和视频码率有关。缓冲大小越大,切换越慢。缓冲越小,切换越快,但有几率出现卡顿。