iOS平台ijkplayer封装、集成、优化

前言

demo地址在最下面。请各位爷慢慢看。感觉满意了记得点个赞。

先来张图活跃一下气氛:

活跃气氛专用图片

是不是很还念????

之前遇到过的问题

先说一下我之前遇到过的关于视频播放器的问题都有哪些:

(1):只有声音,没有界面,完全黑屏的那种。
(2):点击几个视频之后内存飙升,严重点的直接崩溃掉。
(3):切换到后台或者上划出现控制界面下划出现通知界面回来之后播放器异常(也可能界面不动了,也可能是时间不走了或者等等其他问题)。
(4):进度条不灵敏,点击或者拖动进度条出现进度跳动现象(就是最终的进度不是你想要的结果,一般都是向前拖动结果回避你想要的结果靠后,向后拖动结果会比你想要的结果靠前)。
(5):等等等等。。。。。。

当然这些知识目前我遇到过的很基本的问题,后面如果有机会继续深入的话我会继续把我的研究成果分享给大家。
#框架介绍
用一张图介绍一下我做的视频播放器的层次结构:
视频播放器的层次架构
如上图,视频播放器分成两大部分,一部分是视频播放器的属性信息部分,另外一部分是UI部分。下面是对于各个部分的介绍:

ZFTPlayerOption:

存放视频播放器的属性信息,主要包括:屏幕方向、是否是正在播放状态、当前的播放进度、当前的播放时间、视频的总时长、当前视频是否处于可见位置、当前视频所在界面是否处于活跃状态

playerOption
其中屏幕的方向主要包括五种情况:home键在下面、home键在左边。Home键在右边、home在上面、未知状态。(目前对于home键在上面和未知状态的方向有特别处理,这个后面再屏幕旋转的时候有说明)。
屏幕方向参数

playerBaseView

负责视频播放器以及相关UI控件的展示功能。其中主要包括四部分UI控件:视频播放器以及附着在其上面的展位图片的PlayerView、播放暂停按钮还有时间显示等一系列说明视频播放器状态的CoverView、显示加载视图的LoadingView、网络异常时候显示的网络提醒界面:netShowView。示意图如下:
playerbaseView
这四个控件之间的层级关系从下往上依次是(左边的是处于下面的,右边的是处于上面的):
netShowView(显示网络提醒界面)
LoadingView(加载视图)
coverView(播放暂停按钮、全屏按钮、返回按钮等控件)
playerView(视频播放界面、视频占位图片)
这样可以保证在具体使用过程中这四个UI控件不会出现层级混乱的现象。

一:配置依赖环境

1.1:ijkplayer需要的系统系统依赖库如下:

ijkplayer需要的系统依赖库
1.2:IJKMediaFramework.framework传到百度网盘了,具体的下载地址是:链接: https://pan.baidu.com/s/1o8wPRzO 密码: pdwm 下载完成之后解压放在项目中就可以了。
1.3:把AFNetworking,Masonry(SDWebimage)集成到项目中。

二:AppleDelegate相关设置

2.1:设置两个全局变量,以便于后面整个项目使用,第一个是:决定是不是允许支持屏幕旋转的参数,第二个是表示当前网络状态的参数。
需要设置的两个全局变量

需要设置的两个全局变量
2.2:iPhone手机端好像不支持home键在上面的方向吧,所以需要针对hom

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值