Skip to content
卢俊 edited this page Sep 10, 2016 · 14 revisions

#1 概述

PLDroidPlayer 是一个适用于 Android 平台的音视频播放器 SDK,可高度定制化和二次开发,为 Android 开发者提供了简单、快捷的接口,帮助开发者在 Android 平台上快速开发播放器应用。

##1.1 功能及版本号

功能/接口 描述 版本
支持带 IP 地址的播放 URL URL 格式:“protocol://ip/path?domain=xxxx.com” v1.3.0(+)
支持 DNS 解析优化 支持 DNS 提前解析和缓存管理 v1.3.0(+)
支持直播累积延时优化 优化直播过程中的累积延时 v1.2.3(+)
支持后台播放 支持退到后台只播放音频 v1.2.3(+)
支持音量设置 设置播放器音量,可实现静音功能 v1.2.2(+)
支持画面镜像翻转 由 PLVideoTextureView 提供,支持播放画面镜像翻转 v1.2.2(+)
支持首屏秒开 在网络条件好的情况下,可以实现秒开 v1.2.0(+)
PLMediaPlayer 类似 Android MediaPlayer,提供了播放器的核心功能 v1.2.0(+)
PLVideoView 类似 Android VideoView,基于 SurfaceView 的播放控件 v1.2.0(+)
PLVideoTextureView 类似 Android VideoView,基于 TextureView 的播放控件 v1.2.0(+)
支持画面旋转 由 PLVideoTextureView 提供,支持播放画面以 0度、90度、180度,270度进行旋转 v1.2.0(+)
支持设置画面预览模式 由 PLVideoView 和 PLVideoTextureView 提供,支持多种画面预览模式,包括:原始尺寸、适应屏幕、全屏铺满、16:9、4:3 等 v1.2.0(+)
支持 ARM, X86 芯片体系架构 无 v1.1.3(+)
支持 ARM64v8a 芯片体系架构 无 v1.1.1(+)
AVOptions 用于配置播放器参数,包括:超时时间、软硬件编解码 v1.1.1(+)
AudioPlayer 用于纯音频播放,支持后台运行(注:从 v1.2.0 开始被标记为 Deprecated,并使用 PLMediaPlayer 代替) v1.1.0(+)
支持 ARMv7a 芯片体系架构 无 v1.0.0(+)
VideoView 基于 SurfaceView 的播放控件(注:从 v1.2.0 开始被标记为 Deprecated,并使用 PLVideoView 代替) v1.0.0(+)

##1.2 特性

  • Android Min API 9
  • 支持 RTMP 和 HLS 协议的直播流媒体播放
  • 支持常见的音视频文件播放(MP4、M4A、flv 等)
  • 支持 MediaCodec 硬件解码
  • 提供播放器核心类 PLMediaPlayer
  • 提供 PLVideoView 控件
  • 提供 PLVideoTextureView 控件
  • 支持多种画面预览模式
  • 支持画面旋转(0度,90度,180度,270度)
  • 支持画面镜像变换
  • 支持播放器音量设置,可实现静音功能
  • 支持纯音频播放
  • 支持后台播放
  • 支持首屏秒开
  • 支持直播累积延时优化
  • 支持带 IP 地址的播放 URL
  • 可高度定制化的 MediaController
  • 支持 ARM, ARMv7a, ARM64v8a, X86 主流芯片体系架构

#2 阅读对象

本文档为技术文档,需要阅读者:

  • 具有基本的 Android 开发能力
  • 准备接入七牛云直播

#3 开发准备

##3.1 设备以及系统

  • 系统要求:Android 2.3 (API 9) 及其以上

##3.2 混淆

为了保证正常使用 SDK ,请在 proguard-rules.pro 文件中添加以下代码:

-keep class com.pili.pldroid.player.** { *; }
-keep class tv.danmaku.ijk.media.player.** {*;}

##3.3 版本升级须知

v1.3.1

从 v1.3.1 开始,有如下重大更新:

  • 需要在项目的 build.gradle 中加入如下语句:
dependencies {
    compile 'com.qiniu.pili:pili-android-qos:0.8.+'
}
  • 更新了 PLMediaPlayer 的构造函数 如果直接使用 PLMediaPlayer 进行播放的话,需要多添加一个 Context 参数
public PLMediaPlayer(Context context);
public PLMediaPlayer(Context context, AVOptions options);

v1.3.0

从 v1.3.0 开始,有如下重大更新:

  • 新增 PLNetworkManager 类,提供 DNS 缓存管理服务

    如果需要使用 SDK 提供的 DNS 缓存管理服务,则需要在项目中加入如下配置:

// 添加 happydns 的依赖
dependencies {
    compile 'com.qiniu:happy-dns:0.2.+'
}
// 添加网络状态监测的权限
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>

Clone this wiki locally