概述

Android应用端提供视频播放功能,本文介绍支持的播放器及播放器功能。

背景信息

  • 播放器使用的FFmpeg版本为4.4.1。

  • 播放器支持的音频编码协议:AAC_LC和G711a。

  • 播放器支持的视频编码协议:H.264和H.265。

类型介绍

应用端根据播放协议,提供RTMP播放器和HLS播放器。其中,根据使用场景,两种协议的播放器又包含如下图所示的播放器。播放器类型

类型

描述

直播播放器

用于RTMP协议的直播源,具有延时低的特点。

说明

使用该功能,需要在进行视频直播的IPC设备上接入设备端LinkVisual SDK。

设备录像点播播放器

用于RTMP协议的设备录像回放,可调整播放进度。

自研HLS播放器

说明

推荐使用自研HLS播放器。

  • 用于播放HLS协议的,存储在物联网平台的录像文件。

  • 支持MPEG-TS容器和FMP4容器。

  • 支持AES-128加密方式。

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方法后会切换到该状态。

您可参考下图,了解播放器的状态和工作原理。

应用端播放器原理图
阿里云首页 物联网视频服务 相关技术圈