CN108900913A - 一种基于视频播放所有者的分级视图控制方法 - Google Patents
一种基于视频播放所有者的分级视图控制方法 Download PDFInfo
- Publication number
- CN108900913A CN108900913A CN201810741865.1A CN201810741865A CN108900913A CN 108900913 A CN108900913 A CN 108900913A CN 201810741865 A CN201810741865 A CN 201810741865A CN 108900913 A CN108900913 A CN 108900913A
- Authority
- CN
- China
- Prior art keywords
- owner
- video
- current
- control method
- playing
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/443—OS processes, e.g. booting an STB, implementing a Java virtual machine in an STB or power management in an STB
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/431—Generation of visual interfaces for content selection or interaction; Content or additional data rendering
- H04N21/4312—Generation of visual interfaces for content selection or interaction; Content or additional data rendering involving specific graphical features, e.g. screen layout, special fonts or colors, blinking icons, highlights or animations
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/443—OS processes, e.g. booting an STB, implementing a Java virtual machine in an STB or power management in an STB
- H04N21/4438—Window management, e.g. event handling following interaction with the user interface
Abstract
本发明涉及一种基于视频播放所有者的分级视图控制方法,设定视频所有者协议Video OwnerProtocol,在协议中设定以下属性:自动播放属性,用于标识当前播放中的视频是否支持自动播放,浮动小窗属性,用于标识当前播放中的视频是否支持浮层播放,设定视频所有者管理器VideoOwnerManager,用于实现以下功能:加入视频所有者pushOwner,将视频所有者压入队列顶端,删除视频所有者popOwner,将视频所有者弹出队列顶端,清空视频所有者clearOwner,清空队列中所有的视频所有者。本发明,对视频所有者进行管理,有效的解决因为时序问题造成的对视频控制失控问题,不再受调用时序的干扰,算法简单,易于处理,稳定性好,有效避免播放混乱的情况出现。
Description
技术领域
本发明涉及视频播放管理技术领域,具体说是一种基于视频播放所有者的分级视图控制方法。
背景技术
在多视频播放页面切换时,或在单例播放页面重入时,容易出现播放混乱问题。例如:一遇到加载就显示Took background task assertion (9) for playback stall。再例如:等到 Ending background task assertion (9) for playback stall 视频继续播放,但是会发生奇怪的情况,明明设置了repeatModeNone 他还继续播放 而且反复卡在同一个时间段循环播放。
多视频播放:同时或按顺序播放多个视频,关闭任意一个视频就退出播放器,播放完成自动切换到下一个视频,App进入后台暂停播放,进入前台继续播放,跳转到其他页面则不再播放。
单例播放(单例模式):在程序运行过程,一个类只有一个实例,无论如何程序运行过程中只有一份实例。
针对上述情况导致的播放混乱问题,目前的解决方法是:
需要在不同的ViewController的生存周期方法(viewDidLoad,viewWillDisappear,viewDidDisappear,dealloc)中乱舞。
ViewController是iOS应用程序中重要的部分,是应用程序数据和视图之间的重要桥梁,ViewController管理应用中的众多视图。
viewDidLoad方法,在视图加载后被调用,如果是在代码中创建的视图加载器,他将会在loadView方法后被调用,如果是从nib视图页面输出,他将会在视图设置好后后被调用。
viewWillDisappear方法,当收到视图将去除、被覆盖或隐藏于视窗时的通知会呼叫的方法,
viewDidDisappear方法,当收到视图已去除、被覆盖或隐藏于视窗时的通知会呼叫的方法,
dealloc方法,视图被销毁,此处需要对你在init和viewDidLoad中创建的对象进行释放。
这种解决方案存在以下问题:严重受限于这些方法的调用时序,如果一旦时序混乱,会出现不可预测的后果。视频播放或不能继续,影响用户体验,给开发工作、维护工作带来不便。
发明内容
针对现有技术中存在的缺陷,本发明的目的在于提供一种基于视频播放所有者的分级视图控制方法,对视频所有者进行管理,有效的解决因为时序问题造成的对视频控制失控问题,不再受调用时序的干扰,算法简单,易于处理,稳定性好,有效避免播放混乱的情况出现。
为达到以上目的,本发明采取的技术方案是:
一种基于视频播放所有者的分级视图控制方法,其特征在于:
设定视频所有者协议 VideoOwnerProtocol,在协议中设定以下属性:
自动播放属性,用于标识当前播放中的视频是否支持自动播放,
浮动小窗属性,用于标识当前播放中的视频是否支持浮层播放,
设定视频所有者管理器VideoOwnerManager,用于实现以下功能:
加入视频所有者pushOwner,将视频所有者压入队列顶端,
删除视频所有者popOwner,将视频所有者弹出队列顶端,
清空视频所有者clearOwner,清空队列中所有的视频所有者,
当前视频所有者为一级ViewController时,借助viewDidDisappear 方法来进行控制,
当前视频所有者为二级ViewController时,借助pop退出当前页面的delloc方法来进行控制。
在上述技术方案的基础上,所述浮层播放指播放窗口缩小为一浮动小窗。
在上述技术方案的基础上,所述浮动小窗尺寸为默认值,其所在view置于最上层,支持拖动调整位置。
在上述技术方案的基础上,所述队列为管理者堆栈。
在上述技术方案的基础上,加入视频所有者pushOwner时,通过obj参数传入当前所有者的信息。
在上述技术方案的基础上,加入视频所有者pushOwner时,首先监测当前队列顶端的视频所有者,和要加入的当前所有者obj是否一致,避免重复添加,在不一致时才将当前所有者obj压入队列顶端。
在上述技术方案的基础上,删除视频所有者popOwner时,通过obj参数传入当前所有者的信息。
在上述技术方案的基础上,删除视频所有者popOwner时,首先监测当前队列顶端的视频所有者,和要弹出的当前所有者obj是否一致,避免重复删除,在一致时才将当前所有者obj弹出队列顶端。
在上述技术方案的基础上,所述一级ViewController常驻内存,只有在应用销毁时才会销毁,
一级Viewcontroller通过viewDidDisappear监测视图已经消失、被覆盖或是隐藏的事件是否被触发,在触发时,执行删除视频所有者popOwner,
所述二级ViewController非常驻内存,按需销毁,
二级Viewcontroller在执行删除视频所有者popOwner后,进一步判断上个页面是否继续播放当前视频,
当继续播放时,则直接执行删除视频所有者popOwner,
当不继续播放时,则先执行停止stop,再执行删除视频所有者popOwner。
在上述技术方案的基础上,一级ViewController和二级ViewController均支持以下功能:
执行播放play,需执行加入视频所有者pushOwner操作,
执行播放暂停pause,
执行停止stop,需执行清空视频所有者clearOwner,
调用newVC进入新页面,则:
判断新页面是否自动播放视频,
如果是,则需执行加入视频所有者pushOwner操作,进一步判断新页面是否自动播放当前视频,如果不是,则执行播放暂停pause,
如果不是,则执行播放暂停pause。
本发明所述的基于视频播放所有者的分级视图控制方法,对视频所有者进行管理,有效的解决因为时序问题造成的对视频控制失控问题,不再受调用时序的干扰,算法简单,易于处理,稳定性好,有效避免播放混乱的情况出现。
附图说明
本发明有如下附图:
图1本发明的流程图。
具体实施方式
以下结合附图对本发明作进一步详细说明。
如图1所示,本发明所述的基于视频播放所有者的分级视图控制方法:
设定视频所有者协议 VideoOwnerProtocol,在协议中设定以下属性:
自动播放属性isAutoPlay,用于标识当前播放中的视频是否支持自动播放,
浮动小窗属性isSupportMini,用于标识当前播放中的视频是否支持浮层播放,其中:
所述浮层播放指播放窗口缩小为一浮动小窗,
所述浮动小窗尺寸为默认值,其所在view置于最上层,支持拖动调整位置,
设定视频所有者管理器VideoOwnerManager,用于实现以下功能:
加入视频所有者pushOwner,将视频所有者压入队列顶端,其中:
所述队列为管理者堆栈,
加入视频所有者pushOwner时,通过obj参数传入当前所有者的信息,
加入视频所有者pushOwner时,首先监测当前队列顶端的视频所有者,和要加入的当前所有者obj是否一致,避免重复添加,在不一致时才将当前所有者obj压入队列顶端,
删除视频所有者popOwner,将视频所有者弹出队列顶端,
删除视频所有者popOwner时,通过obj参数传入当前所有者的信息,
删除视频所有者popOwner时,首先监测当前队列顶端的视频所有者,和要弹出的当前所有者obj是否一致,避免重复删除,在一致时才将当前所有者obj弹出队列顶端,
清空视频所有者clearOwner,清空队列中所有的视频所有者,
当前视频所有者为一级ViewController时,借助viewDidDisappear 方法来进行控制,
当前视频所有者为二级ViewController时,借助pop退出当前页面的delloc方法来进行控制。
在上述技术方案的基础上,所述一级ViewController常驻内存,只有在应用销毁时才会销毁,
所述二级ViewController非常驻内存,按需销毁。
在上述技术方案的基础上,一级ViewController和二级ViewController均支持以下功能:
执行播放play,需执行加入视频所有者pushOwner操作,
执行播放暂停pause,
执行停止stop,需执行清空视频所有者clearOwner,
调用newVC进入新页面,则:
判断新页面是否自动播放视频,
如果是,则需执行加入视频所有者pushOwner操作,进一步判断新页面是否自动播放当前视频,如果不是,则执行播放暂停pause,
如果不是,则执行播放暂停pause。
更进一步,一级Viewcontroller通过viewDidDisappear监测视图已经消失、被覆盖或是隐藏的事件是否被触发,在触发时,执行删除视频所有者popOwner。
更进一步,二级Viewcontroller在执行删除视频所有者popOwner后,进一步判断上个页面是否继续播放当前视频,
当继续播放时,则直接执行删除视频所有者popOwner,
当不继续播放时,则先执行停止stop,再执行删除视频所有者popOwner。
本发明实现了对视频所有者的管理,视频所有者,是给视频播放功能增添了一个类似用户的概念(视频所有者具有当前视频播放控制的管理权限),每次视频的播放、暂停等,都是由所有者发起、暂停或取消(关闭)。一旦所有者改变,则旧的所有者就丧失了对当前视频的控制权,避免播放混乱的情况出现。
例如:
当进入新播放页,则应该只有新播放页有权利暂停视频,旧的播放页暂停功能即使调用了,也是无效的。有效的解决因为时序问题造成的对视频控制失控问题。
本说明书中未作详细描述的内容属于本领域专业技术人员公知的现有技术。
Claims (10)
1.一种基于视频播放所有者的分级视图控制方法,其特征在于:
设定视频所有者协议 VideoOwnerProtocol,在协议中设定以下属性:
自动播放属性,用于标识当前播放中的视频是否支持自动播放,
浮动小窗属性,用于标识当前播放中的视频是否支持浮层播放,
设定视频所有者管理器VideoOwnerManager,用于实现以下功能:
加入视频所有者pushOwner,将视频所有者压入队列顶端,
删除视频所有者popOwner,将视频所有者弹出队列顶端,
清空视频所有者clearOwner,清空队列中所有的视频所有者,
当前视频所有者为一级ViewController时,借助viewDidDisappear 方法来进行控制,
当前视频所有者为二级ViewController时,借助pop退出当前页面的delloc方法来进行控制。
2.如权利要求1所述的基于视频播放所有者的分级视图控制方法,其特征在于:所述浮层播放指播放窗口缩小为一浮动小窗。
3.如权利要求2所述的基于视频播放所有者的分级视图控制方法,其特征在于:所述浮动小窗尺寸为默认值,其所在view置于最上层,支持拖动调整位置。
4.如权利要求1所述的基于视频播放所有者的分级视图控制方法,其特征在于:所述队列为管理者堆栈。
5.如权利要求1所述的基于视频播放所有者的分级视图控制方法,其特征在于:加入视频所有者pushOwner时,通过obj参数传入当前所有者的信息。
6.如权利要求5所述的基于视频播放所有者的分级视图控制方法,其特征在于:加入视频所有者pushOwner时,首先监测当前队列顶端的视频所有者,和要加入的当前所有者obj是否一致,避免重复添加,在不一致时才将当前所有者obj压入队列顶端。
7.如权利要求1所述的基于视频播放所有者的分级视图控制方法,其特征在于:删除视频所有者popOwner时,通过obj参数传入当前所有者的信息。
8.如权利要求7所述的基于视频播放所有者的分级视图控制方法,其特征在于:删除视频所有者popOwner时,首先监测当前队列顶端的视频所有者,和要弹出的当前所有者obj是否一致,避免重复删除,在一致时才将当前所有者obj弹出队列顶端。
9.如权利要求1所述的基于视频播放所有者的分级视图控制方法,其特征在于:所述一级ViewController常驻内存,只有在应用销毁时才会销毁,
一级Viewcontroller通过viewDidDisappear监测视图已经消失、被覆盖或是隐藏的事件是否被触发,在触发时,执行删除视频所有者popOwner,
所述二级ViewController非常驻内存,按需销毁,
二级Viewcontroller在执行删除视频所有者popOwner后,进一步判断上个页面是否继续播放当前视频,
当继续播放时,则直接执行删除视频所有者popOwner,
当不继续播放时,则先执行停止stop,再执行删除视频所有者popOwner。
10.如权利要求1所述的基于视频播放所有者的分级视图控制方法,其特征在于:一级ViewController和二级ViewController均支持以下功能:
执行播放play,需执行加入视频所有者pushOwner操作,
执行播放暂停pause,
执行停止stop,需执行清空视频所有者clearOwner,
调用newVC进入新页面,则:
判断新页面是否自动播放视频,
如果是,则需执行加入视频所有者pushOwner操作,进一步判断新页面是否自动播放当前视频,如果不是,则执行播放暂停pause,
如果不是,则执行播放暂停pause。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810741865.1A CN108900913B (zh) | 2018-07-09 | 2018-07-09 | 一种基于视频播放所有者的分级视图控制方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810741865.1A CN108900913B (zh) | 2018-07-09 | 2018-07-09 | 一种基于视频播放所有者的分级视图控制方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108900913A true CN108900913A (zh) | 2018-11-27 |
CN108900913B CN108900913B (zh) | 2020-11-03 |
Family
ID=64349004
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810741865.1A Active CN108900913B (zh) | 2018-07-09 | 2018-07-09 | 一种基于视频播放所有者的分级视图控制方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108900913B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109857309A (zh) * | 2019-01-21 | 2019-06-07 | 武汉卡比特信息有限公司 | 一种基于iOS移动终端的屏幕截图投射方法 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105279222A (zh) * | 2014-07-16 | 2016-01-27 | 孟智平 | 一种媒体编辑和播放的方法及其系统 |
CN105630326A (zh) * | 2014-11-25 | 2016-06-01 | 三星电子株式会社 | 电子设备和控制电子设备中的对象的方法 |
CN106126355A (zh) * | 2016-06-22 | 2016-11-16 | 百度在线网络技术(北京)有限公司 | 基于iOS系统的事件传递方法和装置 |
CN106560787A (zh) * | 2016-12-29 | 2017-04-12 | 武汉斗鱼网络科技有限公司 | 一种基于mvvm架构的视图页面显示方法和装置 |
US20170132023A1 (en) * | 2015-11-10 | 2017-05-11 | Quixey, Inc. | Monitoring And Actuation Of View Controller Parameters To Reach Deep States Without Manual Developer Intervention |
CN107678780A (zh) * | 2017-10-26 | 2018-02-09 | 深圳乐信软件技术有限公司 | 一种内存管理方法、装置、存储介质及终端设备 |
CN107707980A (zh) * | 2017-10-09 | 2018-02-16 | 武汉斗鱼网络科技有限公司 | 播放页面分层系统、指定播放器的扩展方法、介质及设备 |
-
2018
- 2018-07-09 CN CN201810741865.1A patent/CN108900913B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105279222A (zh) * | 2014-07-16 | 2016-01-27 | 孟智平 | 一种媒体编辑和播放的方法及其系统 |
CN105630326A (zh) * | 2014-11-25 | 2016-06-01 | 三星电子株式会社 | 电子设备和控制电子设备中的对象的方法 |
US20170132023A1 (en) * | 2015-11-10 | 2017-05-11 | Quixey, Inc. | Monitoring And Actuation Of View Controller Parameters To Reach Deep States Without Manual Developer Intervention |
CN106126355A (zh) * | 2016-06-22 | 2016-11-16 | 百度在线网络技术(北京)有限公司 | 基于iOS系统的事件传递方法和装置 |
CN106560787A (zh) * | 2016-12-29 | 2017-04-12 | 武汉斗鱼网络科技有限公司 | 一种基于mvvm架构的视图页面显示方法和装置 |
CN107707980A (zh) * | 2017-10-09 | 2018-02-16 | 武汉斗鱼网络科技有限公司 | 播放页面分层系统、指定播放器的扩展方法、介质及设备 |
CN107678780A (zh) * | 2017-10-26 | 2018-02-09 | 深圳乐信软件技术有限公司 | 一种内存管理方法、装置、存储介质及终端设备 |
Non-Patent Citations (1)
Title |
---|
梁枫: "iOS平台程序动态分析系统的研究与实现", 《中国优秀硕士学位论文全文数据库》 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109857309A (zh) * | 2019-01-21 | 2019-06-07 | 武汉卡比特信息有限公司 | 一种基于iOS移动终端的屏幕截图投射方法 |
CN109857309B (zh) * | 2019-01-21 | 2022-02-01 | 武汉卡比特信息有限公司 | 一种基于iOS移动终端的屏幕截图投射方法 |
Also Published As
Publication number | Publication date |
---|---|
CN108900913B (zh) | 2020-11-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103064716B (zh) | 移动终端设备快速卸载应用程序的方法 | |
Watkins et al. | Interactions between seabirds and deep‐water hake trawl gear: an assessment of impacts in South African waters | |
CN104536907B (zh) | 一种内存清理方法及电子设备 | |
CN108900913A (zh) | 一种基于视频播放所有者的分级视图控制方法 | |
CN106502578B (zh) | 容量变更建议方法及装置 | |
CN104793894A (zh) | 用来管理一固态硬盘的方法、装置、计算器程序产品 | |
CN104166575B (zh) | 启动项处理结果的判定方法及装置 | |
CN108900914A (zh) | 一种基于视频播放所有者的视图控制方法 | |
CN107633059A (zh) | 一种用于分布式文件系统的数据处理方法和系统 | |
CN102833120B (zh) | 一种快速自动化测试中处理网管服务器异常的方法及系统 | |
CN110032267A (zh) | 信息处理方法、装置、移动终端及计算机可读存储介质 | |
CN108882039A (zh) | 一种视频播放所有者的切换控制方法 | |
CN106155746B (zh) | 一种安装文件处理方法及装置、服务器 | |
CN104391736B (zh) | 虚拟机的休眠模式设置方法和装置 | |
CN103870319B (zh) | 信息处理方法、装置及电子设备 | |
CN104036188B (zh) | 一种Android恶意程序检测方法、装置及设备 | |
JP2003316774A5 (zh) | ||
CN106227569A (zh) | 一种应用升级方法及终端设备 | |
CN108769820A (zh) | 一种视频播放所有者的管理方法 | |
CN102629231A (zh) | 一种检测任务堆栈的方法 | |
CN105592361A (zh) | 一种机顶盒后台程序清理方法、装置及系统 | |
CN105872658A (zh) | 控制视频播放器网络连接的方法和移动终端 | |
CN107786670A (zh) | 一种本地存储数据和云存储结合运用的系统和方法 | |
CN110099251A (zh) | 监控视频的处理方法、装置以及计算机可读存储介质 | |
CN109150744A (zh) | 一种基于api状态的网关服务调度升降级方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |