Home

Awesome

QPlayer2

Qplayer2是一款跨平台的播放器SDK,除了基础的播放器能力外,更致力于各种应用场景的对接。SDK 包含2个库:

  1. qplayer2-core:提供播放器的核心能力。
  2. qplayer2-ext:一个基于应用层框架组件,更好的实现播放器场景下的UI/手势/场景切换等。

支持的平台

PlatformBuild Status
AndroidLatest Version :1.4.3
IOShttps://github.com/pili-engineering/QPlayer2-IOS.git
Windowshttps://github.com/pili-engineering/QPlayer2-Windows
HarmonyOS NEXThttps://github.com/pili-engineering/QPlayer2-HarmonyOS-NEXT
Mac敬请期待
Linux敬请期待

qplayer2-core 功能列表

能力亮点备注
媒体资源组成形式一个媒体资源支持多url,比如一个音频url和一个视频url组成一个媒体资源,提升拉流速度和解封装速度
播放协议及视频类型http/https/rtmp/srt flv/m3u8/mp4/flac/wav(PCM_S24LE)新增协议和视频类型请联系技术支持
解码除了软解/硬解/自动解码方式外 新增混解方式,提升硬解首帧速度
色盲模式能在业务场景中更好的服务视觉有障碍的客户
倍速变速不变调
清晰度切换通用清晰度切换方案,无缝切换,即使媒体资源gop不对齐
seek支持精准/关键帧 seek 两种方式
指定起播位置从指定位置开始播放
起播方式起播播放/起播暂停 设置起播暂停时,起播后首帧渲染出来就停止画面
预加载提前加载点播视频,获得更好的首帧体验
SEI数据回调所有解码方式都支持
纯音频播放/纯视频播放播放只有单音频流或者只有单视频流的视频
APM埋点上报支持性能数据上报到平台,并通过邮件定时发送全盘性能报告。
VR视频支持Equirect-Angular类型的vr视频播放
截图自动转换成jpeg格式,可以展示在UI上,也可存放到相册
静音针对视频的静音,不影响系统声音
字幕支持srt字幕文件加载并根据时间回调当前时间的文案给上层
DRM支持HLS 私有加密/通用加密 2种方式,支持 MP4 CENC-AES-CTR 加密,支持七牛私有 MP4 加密方式
音视频数据上抛适用于业务层需要获取当前播放的音视频数据的场景(比如推流等)
本地重建时间轴以真实的流逝时间为准,避免某些视频时间轴错乱导致播放过程中时间进度回调数值异常

qplayer2-ext 能力介绍

能力亮点备注
场景切换定制当一个播放器有直播点播场景时,且2个场景的业务逻辑完全不同时,通过场景定制,能更丝滑的在2套逻辑中切换
播放面板定制统一控制面板的显示隐藏,不同的视频场景中 可快速切换面板
播放器上层浮窗定制拥有统一的浮窗展示隐藏动画和布局规范,更快的实现各类弹窗
播放器上层手势支持多种手势判定回调,上层只需关心业务逻辑
选集控制多集场景(电视剧综艺等)通过选集控制定制播放顺序逻辑

Android

引入依赖
implementation("com.qiniu:qplayer2-core:1.4.3")
implementation("com.qiniu:qplayer2-ext:1.4.3") //如果无需qplayer2-ext能力可以不引入 不影响core的使用
鉴权
权限说明鉴权失败结果
Base基础播放能力播放器进入error状态
VR播放VR视频播放vr视频,起播后播放器进入error状态
SEISEI数据回调开启sei 回调,且视频有sei数据。能正常播放视频,SEI数据不回调,同时抛出鉴权失败错误码
SRTsrt协议视频播放srt链接 播放器进入error状态
BLIND色盲滤镜开启色盲滤镜,视频正常播放,滤镜不生效。
APMAPM性能数据上报关闭埋点上报,不影响播放器核心功能使用。

如需使用该套sdk到其他工程中,请联系我们的技术支持开通帐号和权限。

API文档

请查阅document目录下的api文档

接入文档

https://developer.qiniu.com/pili/12214/qplayer2-android

Demo介绍
  1. demo工程内的 长视频播放页 是基于qplayer2-ext + qplayer2-core来实现的
  2. demo工程内的 短视频视频播放页 是仅基于qplayer2-core来实现的
  3. 体验demo下载: http://fir.qnsdk.com/4rg5

技术支持与交流

产品及服务咨询:400-808-9176

问题反馈:如有问题请提交issue