System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 一种iOS可重用多模块视频播放组件的实现方法技术_技高网

一种iOS可重用多模块视频播放组件的实现方法技术

技术编号:40289387 阅读:6 留言:0更新日期:2024-02-07 20:40
本发明专利技术涉及数据处理技术领域,具体为一种iOS可重用多模块视频播放组件的实现方法,包括由如下步骤构成;S1、调试工具界面生产:使用Xcode开发工具;S2、利用多模块视频播放组件实现可重用多模块视频播放组件功能:橱窗信息的获取:app中所有的区域继baseArea,所有的橱窗继承baseItem,利用现阶段主流埋点策略,本技术方案是因为采用了全局单例轻量级播放器管理方式,从而只需要管理好这一个全局对象,不用每个模块都去考虑播放器的问题;性能更优化:本技术方案是因为采用了播放器复用机制+播放器控制层重用机制,从而保证即没有非常多播放器性能的开销,也不必每个播放器都创建一份控制层以及之前纯单例播放器需要重置地址seekTime过多的时间开销。

【技术实现步骤摘要】

本专利技术涉及数据处理,尤其是涉及一种ios可重用多模块视频播放组件的实现方法。


技术介绍

1、当下的ios手机视频应用中,常常会有许多的橱窗位置(轮播、大图、瀑布流等)需要支持视频播放(预告、直播、点播正片等),但是,这类视频播放器常常是轻量级的,它可能不需要投屏,不需要支持手势、清晰度、倍速、分享等等功能,但是橱窗位置有很多,上下导航切换、父子页面、上下滑动等情况都会需要这个轻量级的视频播放器,早期的时候,通过橱窗跟播放器绑定,但是不好的地方是如果需要播放的橱窗过多,就会存在创建很多个播放器的情况,并且这些播放器的播放、暂停、销毁等,管理起来很麻烦;再然后采用单例播放器模式,那么每次都要进行一次播放地址的设置,然后seektime的步骤,只是视频在渲染以及seektime是很消耗时间的,很难做到无感,特别是网络不很好时。

2、为此,提出一种ios可重用多模块视频播放组件的实现方法。


技术实现思路

1、本专利技术的目的在于提供一种ios可重用多模块视频播放组件的实现方法,它不属于应用中任意的一个橱窗,但它可以插拔在任意橱窗上进行播放,他可以同时持有10个(可设置)播放器(采用队列机制应对超过10个播放器),采用重用机制处理播放器控制层;那个橱窗需要,则自查适配该橱窗的播放器是否存在,存在则直接使用,不存在则创建并使用,它可以自我检测播放、暂停、重播以及销毁等。

2、为实现上述目的,本专利技术提供如下技术方案:一种ios可重用多模块视频播放组件的实现方法,包括由如下步骤构成;

3、s1、调试工具界面生产:使用xcode开发工具;

4、s2、利用多模块视频播放组件实现可重用多模块视频播放组件功能:

5、橱窗信息的获取:app中所有的区域继basearea,所有的橱窗继承baseitem,利用现阶段主流埋点策略,每个橱窗都保存自己的位置信息,eg:首页-推荐-轮播图-索引值,每个橱窗也都拥有自己的数据信息;

6、2.1、轻量级播放器组件的创建:

7、创建全局单例对象,全局单例对象包含:

8、播放对象数组:最多10个(可设置)播放器对象,播放器对象包括播放器、播放信息、创建时间;

9、播放样式数组:存放不同样式的播放控制样式ui;

10、定时器:全局定时器,每五分钟进行一次轮循,循环排查数组中播放器对象是否闲置中(暂停),闲置中,如创建时间超过3小时(取决于视频流有效期)则销毁该播放器对象。

11、优选地,所述s2还包括2.2使用ios-collectionview进行页面以及区域、橱窗的展示(collectionview本身也具有重用机制),在cellforitem创建或渲染橱窗的方法中(该方法是ios当前正在部分渲染的橱窗的方法),在渲染的时候,拿到橱窗的数据信息,以及设置位置信息。

12、优选地,所述s2还包括2.3全局可重用组件内部方法:

13、2.3.1判断区域是否显示在当前屏幕:通过区域位置信息比对当前页面的信息,从而获取到是否属于当前页面,使用ios方法convertrect:toview:获取区域是否在可视区域(适用于view的排查)。

14、优选地,所述s2还包括2.3.2传入需要播放的橱窗信息创建播放器:首先判断该橱窗播放信息是否创建播放器,未创建则创建,已创建则不处理;创建完成后,查询播放器数量是否超过设置数量10,未超过,则直接添加进数组,超过则按照队列的规则,将最早添加进入的播放对象销毁,然后添加。

15、优选地,所述s2还包括2.3.3传入橱窗并添加播放器:播放器对象全部暂停播放,并从播放器的父视图中移除,先去数组取该播放信息的播放器,取到则使用masory技术将播放器添加在传入橱窗上并播放,取不到则通过上方2.3.2方法拿到播放器并添加到橱窗上播放,并将正在播放的播放器标记。

16、优选地,所述s2还包括2.3.4页面生成、切换与滑动(每超过30像素)时传入当前页面:使用ios的visiblecells方法,获取到当前页面的所有可视橱窗并且拿到所有支持播放的橱窗,存在多个则按照第一优先级裁剪最少,第二优先级位置靠上,第三优先级位置靠左的规则取到橱窗后,则执行2.3.3方法进行添加播放;不存在则不处理。

17、优选地,所述s2还包括2.3.5轮播图传入轮播区域以及索引值:通过2.3.1方法判断轮播图区域是否可见,判断轮播图裁剪区域是否过大(通过y坐标值比对顶点值),如果可见,并且裁剪较小则取索引值对应的橱窗执行2.3.3方法进行播放,否则不处理。

18、优选地,所述s2还包括2.3.6各种状态通知处理:全局单例增加各种通知的处理如应用进入后台、进入视频详情页、打开蒙层、调用起支付、打开画中画情况对当前播放器进行暂停;应用复苏、回到当前页面、关闭画中画、关闭蒙层、关闭支付执行视频恢复播放。

19、优选地,所述s2还包括2.4在页面collectionview加载完毕时,先判断collectionview是否当前页面,是的话执行2.3.4方法进行播放,在页面切换以及滑动的时候,同样执行2.3.4方法进行播放;

20、由于每个播放器所处的位置不一样,样式也不一样,所以根据播放器不同的样式,创建不同的控制层ui样式,如只有播放暂停按钮的;只有静音按钮的;还有带进度条可拖拽的控制样式,这边就用到了重用概念(默认无样式)。

21、优选地,所述s2还包括:

22、3.1先根据不同的控制样式绘制不同的控制页面以及定义控制页面的样式id,并存入控制样式数组;

23、3.2执行完2.3.3后,通过该橱窗的样式id,筛选出播放控制样式,并将样式从旧播放器移除(如有),然后添加到新播放器上,并捆绑播放器、同步播放信息,并同步

24、2.3.6方法为播放器处理各种监控通知;

25、使用:在1.0前提下,页面切换、滑动时,app发出包含当前页面信息的通知,单例收到通知后执行2.3.4方法,即可为任意模块添加轻量播放器,只要编辑配置其可播即可。

26、与现有技术相比,本专利技术的有益效果是:

27、1.更方便管理:本技术方案是因为采用了全局单例轻量级播放器管理方式,从而只需要管理好这一个全局对象,不用每个模块都去考虑播放器的问题。

28、2.性能更优化:本技术方案是因为采用了播放器复用机制+播放器控制层重用机制,从而保证即没有非常多播放器性能的开销,也不必每个播放器都创建一份控制层以及之前纯单例播放器需要重置地址seektime过多的时间开销。

29、3.操作更简单:本技术方案是因为采用了封装组件的方法,类似插件,即插即用,并利用继承方法,在基类橱窗或区域实现对组件的直接调用只用在2-3个页面调用几行代码即可,解决代码冗余以及繁琐流程。

30、4.功能更加强大:本技术方案是因为全本文档来自技高网...

【技术保护点】

1.一种iOS可重用多模块视频播放组件的实现方法,其特征在于:包括由如下步骤构成;

2.根据权利要求1所述的一种iOS可重用多模块视频播放组件的实现方法,其特征在于:所述S2还包括2.2使用iOS-collectionView进行页面以及区域、橱窗的展示(collectionView本身也具有重用机制),在cellForItem创建或渲染橱窗的方法中(该方法是iOS当前正在部分渲染的橱窗的方法),在渲染的时候,拿到橱窗的数据信息,以及设置位置信息。

3.根据权利要求2所述的一种iOS可重用多模块视频播放组件的实现方法,其特征在于:所述S2还包括2.3全局可重用组件内部方法:

4.根据权利要求3所述的一种iOS可重用多模块视频播放组件的实现方法,其特征在于:所述S2还包括2.3.2传入需要播放的橱窗信息创建播放器:首先判断该橱窗播放信息是否创建播放器,未创建则创建,已创建则不处理;创建完成后,查询播放器数量是否超过设置数量10,未超过,则直接添加进数组,超过则按照队列的规则,将最早添加进入的播放对象销毁,然后添加。

5.根据权利要求4所述的一种iOS可重用多模块视频播放组件的实现方法,其特征在于:所述S2还包括2.3.3传入橱窗并添加播放器:播放器对象全部暂停播放,并从播放器的父视图中移除,先去数组取该播放信息的播放器,取到则使用Masory技术将播放器添加在传入橱窗上并播放,取不到则通过上方2.3.2方法拿到播放器并添加到橱窗上播放,并将正在播放的播放器标记。

6.根据权利要求5所述的一种iOS可重用多模块视频播放组件的实现方法,其特征在于:所述S2还包括2.3.4页面生成、切换与滑动(每超过30像素)时传入当前页面:使用iOS的visibleCells方法,获取到当前页面的所有可视橱窗并且拿到所有支持播放的橱窗,存在多个则按照第一优先级裁剪最少,第二优先级位置靠上,第三优先级位置靠左的规则取到橱窗后,则执行2.3.3方法进行添加播放;不存在则不处理。

7.根据权利要求6所述的一种iOS可重用多模块视频播放组件的实现方法,其特征在于:所述S2还包括2.3.5轮播图传入轮播区域以及索引值:通过2.3.1方法判断轮播图区域是否可见,判断轮播图裁剪区域是否过大(通过y坐标值比对顶点值),如果可见,

8.根据权利要求7所述的一种iOS可重用多模块视频播放组件的实现方法,其特征在于:所述S2还包括2.3.6各种状态通知处理:全局单例增加各种通知的处理如应用进入后台、进入视频详情页、打开蒙层、调用起支付、打开画中画情况对当前播放器进行暂停;应用复苏、回到当前页面、关闭画中画、关闭蒙层、关闭支付执行视频恢复播放。

9.根据权利要求8所述的一种iOS可重用多模块视频播放组件的实现方法,其特征在于:所述S2还包括2.4在页面collectionView加载完毕时,先判断collectionView是否当前页面,是的话执行2.3.4方法进行播放,在页面切换以及滑动的时候,同样执行2.3.4方法进行播放;

10.根据权利要求9所述的一种iOS可重用多模块视频播放组件的实现方法,其特征在于:所述S2还包括:

...

【技术特征摘要】

1.一种ios可重用多模块视频播放组件的实现方法,其特征在于:包括由如下步骤构成;

2.根据权利要求1所述的一种ios可重用多模块视频播放组件的实现方法,其特征在于:所述s2还包括2.2使用ios-collectionview进行页面以及区域、橱窗的展示(collectionview本身也具有重用机制),在cellforitem创建或渲染橱窗的方法中(该方法是ios当前正在部分渲染的橱窗的方法),在渲染的时候,拿到橱窗的数据信息,以及设置位置信息。

3.根据权利要求2所述的一种ios可重用多模块视频播放组件的实现方法,其特征在于:所述s2还包括2.3全局可重用组件内部方法:

4.根据权利要求3所述的一种ios可重用多模块视频播放组件的实现方法,其特征在于:所述s2还包括2.3.2传入需要播放的橱窗信息创建播放器:首先判断该橱窗播放信息是否创建播放器,未创建则创建,已创建则不处理;创建完成后,查询播放器数量是否超过设置数量10,未超过,则直接添加进数组,超过则按照队列的规则,将最早添加进入的播放对象销毁,然后添加。

5.根据权利要求4所述的一种ios可重用多模块视频播放组件的实现方法,其特征在于:所述s2还包括2.3.3传入橱窗并添加播放器:播放器对象全部暂停播放,并从播放器的父视图中移除,先去数组取该播放信息的播放器,取到则使用masory技术将播放器添加在传入橱窗上并播放,取不到则通过上方2.3.2方法拿到播放器并添加到橱窗上播放,并将正在播放的播放器标记。

6.根据权利要求5所述的一种...

【专利技术属性】
技术研发人员:庄之骏
申请(专利权)人:天翼视讯传媒有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1