概述
Android应用端提供视频播放功能,本文介绍支持的播放器及播放器功能。
背景信息
播放器使用的FFmpeg版本为4.4.1。
播放器支持的音频编码协议:AAC_LC和G711a。
播放器支持的视频编码协议:H.264和H.265。
类型介绍
应用端根据播放协议,提供RTMP播放器和HLS播放器。其中,根据使用场景,两种协议的播放器又包含如下图所示的播放器。
类型 | 描述 |
---|---|
直播播放器 | 用于RTMP协议的直播源,具有延时低的特点。 说明 使用该功能,需要在进行视频直播的IPC设备上接入设备端LinkVisual SDK。 |
设备录像点播播放器 | 用于RTMP协议的设备录像回放,可调整播放进度。 |
自研HLS播放器 | 说明 推荐使用自研HLS播放器。
|
ExoPlayer HLS播放器 |
功能列表
各播放器的功能列表如下:
功能 | 直播播放器 | 本地录像点播播放器 | (推荐使用)自研HLS播放器 | ExoPlayer HLS播放器 |
---|---|---|---|---|
播放视频 | 支持 | 支持 | 支持 | 支持 |
播放音频 | 支持 | 支持 | 支持 | 支持 |
暂停或恢复 | 不支持 | 支持 | 支持 | 支持 |
跳转至指定位置播放 | 不支持 | 支持 | 支持 | 支持 |
显示总时长 | 不支持 | 支持 | 支持 | 支持 |
查看当前播放进度 | 不支持 | 支持 | 支持 | 支持 |
播放器状态变更通知 | 支持 | 支持 | 支持 | 支持 |
设置播放音量 | 支持 | 支持 | 支持 | 支持 |
变速播放 | 不支持 | 支持 | 支持 | 支持 |
循环播放 | 不支持 | 不支持 | 不支持 | 支持 |
单帧步进 | 不支持 | 支持 | 支持 | 不支持 |
设置画面缩放模式 | 支持 | 支持 | 支持 | 支持 |
播放器截图 | 支持 | 支持 | 支持 | 支持 |
截图到文件 | 支持 | 支持 | 支持 | 不支持 |
边播边录 | 支持 | 支持 | 支持 | 不支持 |
硬解码 | 支持 | 支持 | 支持 | 支持 |
数字变焦 | 支持 | 支持 | 支持 | 支持 |
提供YUV①数据 | 支持 | 支持 | 支持 | 不支持 |
提供SEI②数据 | 支持 | 支持 | 支持 | 不支持 |
①:YUV是一种色彩编码方法。
②:补充增强信息SEI(Supplemental Enhancement Information)。
状态介绍
通过设置播放器状态监听器,可接收状态变更事件,并用于变更播放器的UI元素。应用端播放器有IDLE、BUFFERING、READY和ENDED四个状态。这四个状态表示的具体含义如下:
IDLE:初始状态,即此时无内容播放。
BUFFERING:正在缓冲,当前的位置还不能播放。
生成该状态变更的事件:开始播放时缓冲、跳转到指定位置播放后重新缓冲等。
READY:正在播放内容。
可生成该状态变更的事件:首帧数据已经渲染、跳转到指定位置后缓冲完成并开始播放新内容等。
对于设备录像点播播放器,若已跳转或播放到录像文件结尾,会回调
OnCompletionListener.onCompletion()
方法,而不会切换到ENDED状态。ENDED:已结束播放。
播放出错或触发stop方法后会切换到该状态。
您可参考下图,了解播放器的状态和工作原理。
