阿里云移动端播放器高级功能---UI播放器

简介: 用户想要实现一个视频播放除了要集成我们播放器SDK之外,还需要做一些UI交互的东西。要实现一个完整的视频播放还是需要做很多工作的。那么我们提供了一套完整的UI播放器,用户可以非常快速的集成进去来实现完整的播放器功能。

基本介绍

用户想要实现一个视频播放除了要集成我们播放器SDK之外,还需要做一些UI交互的东西。要实现一个完整的视频播放还是需要做很多工作的。那么我们提供了一套完整的UI播放器,用户可以非常快速的集成进去来实现完整的播放器功能。最重要的是目前UI播放器已经开源。

那么,完整的UI播放器包括哪些功能呢?
003cc5d5dadf76d1eb0775c4bc23c06f94d73c7d

包括亮度控制、音量控制、清晰度切换、进度条、时间显示、全屏、标题、倍数、快进快退等控制。基本上和目前市面上主流的视频APP是类似的。

主要特色  

支持换肤

目前换肤提供几种颜色的风格,可以选择,具体如下:

/*
 功能:初始化界面皮肤
 备注:默认皮肤为蓝色
 */
@property (nonatomic, assign) AliyunVodPlayerViewSkin viewSkin;

typedef NS_ENUM (int, AliyunVodPlayerViewSkin) {
    AliyunVodPlayerViewSkinBlue = 0,
    AliyunVodPlayerViewSkinRed,
    AliyunVodPlayerViewSkinOrange,
    AliyunVodPlayerViewSkinGreen
};

支持多语言

我们将语言单独放到了一个bundle中,目前支持英文和中文,也可以添加其他的语言翻译到bundle中。
image.png

使用简单

将UI播放器单独封装成了一个view,使用的时候只需要将view添加到用户的界面中即可。

/****************UI播放器集成**********************/
self.playerView = [[AliyunVodPlayerView alloc] initWithFrame:CGRectMake(0,topHeight, width, height) andSkin:AliyunVodPlayerViewSkinRed];
self.playerView.circlePlay = YES;

//加入到界面中
[self.view addSubview:self.playerView];

//设置播放源
[self.playerView playViewPrepareWithURL:self.config.videoUrl];

UI播放器实现  

下面以Android为例,来简单介绍下UI播放器是如何实现的

view的层级关系

9d2c9546a883ef5dd4567f7dce2fdec8e11440a6

TipsView

       提示view,继承RelativeLayout, 实现ITheme接口。主要用于显示提示信息。比如:网络变化的提示,错误的提示,播放结束的提示等。这些提示也是一个view,被添加到TipsView中。将会显示在TipsView的CENTER位置。

GuideView

        用户引导View。主要在横屏的时候,首次使用的话,提示用户的手势操作。复写了onTouchEvent事件,触摸这个view的时候将会隐藏。

SpeedView

倍速播放切换View。主要用于切换倍速。SpeedView中有个子View ,叫mMainSpeedView。主体界面就是这个界面。

ControlView

播放器的控制栏。这个界面上包含了标题栏,操作栏,锁屏按钮等等。可以对播放器进行暂停,播放。seek等操作。

QualityView

显示清晰度的列表view。

GestureView

手势控制的view。通过

GestureDetector  +  OnGestureListener

实现。

CoverView

封面view。

SurfaceView

播放view。也可以替换为TextureView。  但是可能会引发:倍速播放的时候,画面更新不及时的问题。因为SurfaceView有双缓冲,而TextureView就是一个view。画面刷新性能有不同。

整体架构的模式

整体采用类MVC的结构。

M: 数据层。

     在VodPlayerView中,数据的信息,都是由播放器提供的。通过调用播放器提供的API,比如getCurrentPosition获取当前的播放位置。

V:界面层。

 界面层,在上文中已经详细的分析了。view的作用就是用来展示界面,**完全不涉及业务逻辑**。画面的变化和更新,也是完全不是自己控制的。都是由P层,也就是控制层去控制的。

C:控制层。

控制层,其实是在VodPlayerView的类中实现的。在这里,VodPlayerView其实就当做一个View的承载器和业务逻辑的控制器。<br />     View的承载功能,是为了能够在XML和代码中能够使用这个view。业务逻辑的控制功能则是它更核心的功能。<br />     比如与播放的控制交互。上面的界面分析中:播放器的ControlView负责了界面上暂停,播放,seek等的操作。业务逻辑与view的分离是通过接口的回调实现的。
目录
相关文章
|
3月前
|
存储 Java 对象存储
springboot配置阿里云OSS存储实现文件上传下载功能
【1月更文挑战第1天】springboot配置阿里云OSS存储实现文件上传下载功能
532 2
|
3月前
|
文字识别 API 数据安全/隐私保护
可以使用阿里云文字识别服务中的个人证照识别功能。
可以使用阿里云文字识别服务中的个人证照识别功能。【1月更文挑战第21天】【1月更文挑战第102篇】
17 1
|
29天前
|
前端开发
element ui实现多层级复杂表单的操作(添加与回显)之回显功能实现
element ui实现多层级复杂表单的操作(添加与回显)之回显功能实现
12 0
|
29天前
|
JSON 数据格式
element ui实现多层级复杂表单的操作(添加与回显)之添加功能实现
element ui实现多层级复杂表单的操作(添加与回显)之添加功能实现
12 0
|
29天前
element-ui实现表格单选的功能
element-ui实现表格单选的功能
12 0
|
29天前
|
JavaScript 数据库
vue使用element ui实现下拉列表分页的功能!!!
vue使用element ui实现下拉列表分页的功能!!!
17 0
|
1月前
|
算法 Java 开发工具
使用阿里云KMS产品针对 Springboot 接口参数加密解密功能
针对Springboot里面使用开源工具使用加解密,替换成阿里云KMS产品进行加解密;
121 1
|
2月前
|
文字识别 安全 API
阿里云文字识别OCR的发票凭证识别功能可以通过API接口的形式进行调用
【2月更文挑战第5天】阿里云文字识别OCR的发票凭证识别功能可以通过API接口的形式进行调用
79 5
|
2月前
|
弹性计算 Ubuntu Linux
阿里云助力《幻兽帕鲁》快速开服:全新自动部署功能上线,仅需10秒即可完成部署!
阿里云助力《幻兽帕鲁》快速开服:全新自动部署功能上线,仅需10秒即可完成部署!阿里云服务器搭建帕鲁服务器游戏,服务器稳定无卡顿,先下载SteamCMD,并运行;然后下载Palserver,修改服务ini配置,启动PalServer,进入游戏服务器。今天分享阿里云创建幻兽帕鲁服务器教程。
|
2月前
|
弹性计算 搜索推荐 Linux
阿里云自动部署【幻兽帕鲁/Palworld】功能上线,10秒全自动开服!
阿里云轻量应用主机Lighthouse上线幻兽帕鲁应用模板功能 ,用户只需要点三次鼠标,最快10秒就能自动安装好幻兽帕鲁主机,和自己的朋友一起开心“抓帕鲁”。同时,用户还可以在阿里云控制台的面板直接调整幻兽帕鲁的经验倍率、死亡惩罚等游戏配置,实现便捷、个性化的游戏体验。
阿里云自动部署【幻兽帕鲁/Palworld】功能上线,10秒全自动开服!

热门文章

最新文章