备案 控制台
开发者社区 阿里云CDN 文章 正文

阿里云移动端播放器高级功能---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的分离是通过接口的回调实现的。
隽阜
目录
相关文章
前端技术栈
|
4月前
|
前端开发
使用element-ui中的table时,当有多选又有翻页功能时,点击翻页后之前选中的数据丢失
使用element-ui中的table时,当有多选又有翻页功能时,点击翻页后之前选中的数据丢失
前端技术栈
70 0
你挚爱的强哥
|
5月前
|
移动开发
【实用】一组原创原生样式的基础控件、UI组件样式(偏向移动端H5页面的样式)
【实用】一组原创原生样式的基础控件、UI组件样式(偏向移动端H5页面的样式)
你挚爱的强哥
53 0
【实用】一组原创原生样式的基础控件、UI组件样式(偏向移动端H5页面的样式)
穆雄雄.
|
2月前
|
前端开发
element ui实现多层级复杂表单的操作(添加与回显)之回显功能实现
element ui实现多层级复杂表单的操作(添加与回显)之回显功能实现
穆雄雄.
16 0
穆雄雄.
|
2月前
|
JSON 数据格式
element ui实现多层级复杂表单的操作(添加与回显)之添加功能实现
element ui实现多层级复杂表单的操作(添加与回显)之添加功能实现
穆雄雄.
16 0
穆雄雄.
|
2月前
element-ui实现表格单选的功能
element-ui实现表格单选的功能
穆雄雄.
13 0
穆雄雄.
|
2月前
|
JavaScript 数据库
vue使用element ui实现下拉列表分页的功能!!!
vue使用element ui实现下拉列表分页的功能!!!
穆雄雄.
47 0
探索云世界
|
3月前
|
消息中间件 监控 Cloud Native
阿里云云原生微服务高级工程师认证(ACP级-Alibaba Cloud Certification Professional)考试大纲
介绍阿里云云原生微服务高级工程师认证(ACP级-Alibaba Cloud Certification Professional)所需具备的知识及学习方法等。
探索云世界
289 0
探索云世界
|
3月前
|
Kubernetes 监控 Cloud Native
阿里云云原生容器高级工程师认证(ACP级-Alibaba Cloud Certification Professional)考试大纲
介绍阿里云云原生容器高级工程师认证(ACP级-Alibaba Cloud Certification Professional)所需具备的知识及学习方法等。
探索云世界
189 2
探索云世界
|
3月前
|
存储 安全 网络安全
阿里云云计算高级工程师ACP认证(Alibaba Cloud Certified Professional - Cloud Computing)考试大纲
介绍阿里云云计算高级工程师ACP认证(Alibaba Cloud Certified Professional - Cloud Computing)所需具备的知识及学习方法等。
探索云世界
892 1
秋叶原的琴音
|
4月前
|
前端开发
element-ui组件DatePicker日期选择器移动端兼容
element-ui组件DatePicker日期选择器移动端兼容
秋叶原的琴音
74 1
element-ui组件DatePicker日期选择器移动端兼容

阿里云CDN

热门文章

最新文章

  • 1
    基于Material Design风格开源、易用、强大的WPF UI控件库
  • 2
    【UI】 修改element-ui input输入框placeholder提示信息、占位符的样式
  • 3
    安卓UI/UX设计原则:打造引人入胜的用户体验
  • 4
    Vue给Element UI的el-popconfirm绑定按钮事件
  • 5
    Android为什么不能在子线程更新UI
  • 6
    基于 LVGL 使用 SquareLine Studio 快速设计 UI 界面
  • 7
    【UI】 element ui 表格没有数据时用--填充
  • 8
    浅谈响应式编程在企业级前端应用 UI 开发中的实践
  • 9
    构建高效的安卓应用:使用Jetpack Compose优化UI开发
  • 10
    Android之UI基础控件
  • 1
    挖掘阿里云ECS的潜力:创意应用和未来可能性
    563
  • 2
    iLogtail 2.0 来了;通义灵码下载量破百万丨阿里云云原生 2 月产品月报
    589
  • 3
    阿里云ECS云监控界面
    813
  • 4
    2024年阿里云服务器租用详细价格表(CPU/内存/带宽/系统盘)
    988
  • 5
    2024年阿里云上自建Palworld/幻兽帕鲁服务器教程
    1424
  • 6
    2024年阿里云一键搭建部署幻兽帕鲁服务器解决方案
    1460
  • 7
    应用研发平台EMAS 常见问题之用华为的推送界面阿里云收不到如何解决
    387
  • 8
    阿里云神龙架构的背景
    355
  • 9
    阿里云神龙在智慧办公场景下的特点
    297
  • 10
    阿里云数据库使用方法,从购买、创建数据库账号密码到连接数据库全流程
    384
  • 相关课程

    更多
  • 云网络白皮书-阿里云网络系列课
  • 阿里云AIoT物联网开发实战
  • 相关电子书

    更多
  • 使用TensorFlow搭建智能开发系统自劢生成App UI代码
  • Fusion Design - 企业级UI解决方案揭秘
  • 使用TensorFlow搭建智能开发系统自动生成App UI
  • 相关实验场景

    更多
  • Alibaba Cloud Linux 2实践之管理阿里云资源
  • 阿里云数据库产品实验室
  • 阿里云上云入门
  • 容器服务Serverless版ACK Serverless 快速入门:在线魔方应用部署和监控
  • 使用阿里云Elasticsearch体验信息检索加速
  • 使用阿里云Elasticsearch快速搭建可观测系统
  • 下一篇
    部署LAMP环境(Alibaba Cloud Linux 3)

    代做工资流水公司沧州制作在职证明福州查询房贷流水上饶工资流水单代做金华代办房贷银行流水新乡银行流水电子版开具信阳制作背调工资流水西安企业对公流水图片许昌代做工作收入证明沈阳开入职银行流水商丘做银行流水淄博办理签证流水滁州入职流水代做宁德工资代付流水代开济南打印银行流水账菏泽代开公司流水南昌自存银行流水代做淮安开薪资流水绍兴打银行流水账中山离职证明报价佛山制作银行流水宿迁流水账单价格哈尔滨查询对公银行流水海口制作入职流水天津银行流水账图片济宁车贷银行流水 模板日常消费流水报价咸阳签证工资流水办理台州房贷银行流水荆州打印银行流水单厦门个人银行流水打印香港通过《维护国家安全条例》两大学生合买彩票中奖一人不认账让美丽中国“从细节出发”19岁小伙救下5人后溺亡 多方发声卫健委通报少年有偿捐血浆16次猝死汪小菲曝离婚始末何赛飞追着代拍打雅江山火三名扑火人员牺牲系谣言男子被猫抓伤后确诊“猫抓病”周杰伦一审败诉网易中国拥有亿元资产的家庭达13.3万户315晚会后胖东来又人满为患了高校汽车撞人致3死16伤 司机系学生张家界的山上“长”满了韩国人?张立群任西安交通大学校长手机成瘾是影响睡眠质量重要因素网友洛杉矶偶遇贾玲“重生之我在北大当嫡校长”单亲妈妈陷入热恋 14岁儿子报警倪萍分享减重40斤方法杨倩无缘巴黎奥运考生莫言也上北大硕士复试名单了许家印被限制高消费奥巴马现身唐宁街 黑色着装引猜测专访95后高颜值猪保姆男孩8年未见母亲被告知被遗忘七年后宇文玥被薅头发捞上岸郑州一火锅店爆改成麻辣烫店西双版纳热带植物园回应蜉蝣大爆发沉迷短剧的人就像掉进了杀猪盘当地回应沈阳致3死车祸车主疑毒驾开除党籍5年后 原水城县长再被查凯特王妃现身!外出购物视频曝光初中生遭15人围殴自卫刺伤3人判无罪事业单位女子向同事水杯投不明物质男子被流浪猫绊倒 投喂者赔24万外国人感慨凌晨的中国很安全路边卖淀粉肠阿姨主动出示声明书胖东来员工每周单休无小长假王树国卸任西安交大校长 师生送别小米汽车超级工厂正式揭幕黑马情侣提车了妈妈回应孩子在校撞护栏坠楼校方回应护栏损坏小学生课间坠楼房客欠租失踪 房东直发愁专家建议不必谈骨泥色变老人退休金被冒领16年 金额超20万西藏招商引资投资者子女可当地高考特朗普无法缴纳4.54亿美元罚金浙江一高校内汽车冲撞行人 多人受伤

    代做工资流水公司 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化