一种QML视频播放与页面切换冲突的处理方法技术

技术编号:21246605 阅读:42 留言:0更新日期:2019-06-01 07:07
针对QML框架下视频播放和页面切换冲突的问题,实现了一种QML视频播放与页面切换冲突的处理方法,利用状态机获得并判断视频播放的当前状态,作为进行视频播放页面和普通页面切换的依据,避免在一些特殊状态Loding,Loaded,Buffering,Stalled下进行页面切换,从而解决QML框架下视频播放页面向非视频播放页面切换引起程序卡死的严重问题。

A Method for Handling Conflict between QML Video Playing and Page Switching

Aiming at the conflict between video playback and page switching in QML framework, a method of dealing with the conflict between QML video playback and page switching is implemented. The current state of video playback is obtained and judged by state machine, which serves as the basis for switching between video playback page and normal page, and avoids page switching under some special states such as Loding, Loaded, Buffering and Stalled. To solve the serious problem of program jam caused by switching video playing pages to non-video playing pages under QML framework.

【技术实现步骤摘要】
一种QML视频播放与页面切换冲突的处理方法
本专利技术涉及一种QML视频播放无响应处理方法,尤其涉及一种QML视频播放与页面切换冲突的处理方法。
技术介绍
QML是Linux开发领域集云端,桌面端,和移动端三端一体的应用开发技术,在移动互联和嵌入式领域有着广泛的使用群体。多媒体视频播放是桌面以及移动应用最常见的一种功能,而多页面是目前主流应用都会采用的一种UI表现形式,但是以上二者在QML框架下整合时会出现多页面间切换导致应用程序卡死的问题。因此,如何规避视频播放与多页面切换在QML框架下的冲突是QML开发应用过程中应予以考虑并解决的一个问题。
技术实现思路
本专利技术要解决的技术问题是提供一种规避视频播放与多页面切换在QML框架下的冲突,从而确保QML程序稳定运行的方法。为了解决上述技术问题,本专利技术的QML视频播放与页面切换冲突的处理方法确保视频播放页面切换到非视频播放页面必须在视频播放的特定状态进行,如果视频播放状态不适合进行页面切换,则不进行页面切换。所述适合进行页面切换的视频播放的特定状态包括:NoMedia,Buffered,EndOfMedia,InvalidMedia;不适合进行页面切换的视频播放状态包括:Loading,Loaded,Buffering,Stalled。本专利技术的QML视频播放与页面切换冲突的处理方法包括下述步骤:1)以视频播放的所有状态初始化状态机的所有状态;2)以视频播放的当前状态设置状态机的当前状态;3)进行页面切换之前,查询状态机的状态;4)如果状态机的状态适合进行页面切换,则进行页面切换;5)如果状态机的状态不适合进行页面切换,则延时查询;6)延时之后重新查询状态机的状态,判断是否适合进行页面切换7)循环查询和判断,直到状态机的状态适合进行页面切换为止。所述步骤2)中,在视频播放的状态切换时以回调的方式设置状态机的当前状态。所述步骤3)中,页面切换包括程序内部的主动页面切换和程序外部的被动页面切换。本专利技术的有益效果是:实现一种QML视频播放与页面切换冲突的处理方法,解决QML框架下视频播放页面向非视频播放页面切换引起程序卡死的严重问题,为QML在移动互联领域特别是多媒体应用方面的软件项目实施清除技术障碍。本专利技术可作为独立的QML视频播放软件使用,也可作为中间件通用于各种涉及QML视频播放页面和普通页面切换的软件系统中。附图说明图1是本专利技术的状态机状态切换流程图。图2是本专利技术的QML视频播放与页面切换冲突的处理方法流程图。图3是本专利技术应用于交通广告系统解决方案实施例图。具体实施方式下面结合附图详细说明本专利技术的优选实施例。如图1所示,本专利技术的状态机的各个状态:初始状态NoMedia101,播放器无视频播放,适合进行视频页面向普通页面切换;状态Loading102,播放器正在加载视频,不适合进行视频页面向普通页面切换;状态Loaded103,播放器加载文件完毕,不适合进行视频页面向普通页面切换;状态Buffering104,播放器正在缓冲视频,不适合进行视频页面向普通页面切换;状态Stalled105,播放器缓冲视频被打断,不适合进行视频页面向普通页面切换;状态Buffered106,播放器缓冲视频完毕,适合进行视频页面向普通页面切换;状态EndOfMedia107,播放器播放完毕,适合进行视频页面向普通页面切换;状态InvalidMedia108,播放器播放无效的视频文件,适合进行视频页面向普通页面切换。本专利技术的状态机状态切换流程:状态NoMedia101可切换到状态Loading102,状态InvalidMedia108;状态Loading102可切换到状态InvalidMedia108和状态Loaded103;状态Loaded103可切换到状态Buffering104;状态Buffering104可切换到状态Stalled105;状态Stalled105可切换到状态Buffered106;状态Buffered106可切换到状态EndOfMedia107;状态EndOfMedia107可切换到状态NoMedia101。如图2所示,本专利技术的QML视频播放与页面切换冲突的处理方法具体步骤如下:步骤201:开始运行程序;步骤202:完成各个页面的初始化,包括视频播放页面和非视频播放页面,各个页面由QML的StackView以堆栈方式统一管理;步骤203:视频播放器完成初始化,设置视频播放页面,开始加载播放视频;步骤204:获取视频播放器的所有状态:NoMedia,Loading,Loaded,Buffering,Stalled,Buffered,EndOfMedia,InvalidMedia,用于初始化状态机的各个状态;步骤205:设置视频播放器的回调,在回调中获得视频播放器的当前状态;步骤206:利用视频播放器的当前状态设置状态机的当前状态,保持视频播放器和状态机的状态同步;步骤207:状态机状态轮转,与视频播放器保持同步状态切换;步骤208:程序进入伺服状态,等待页面切换操作;步骤209:程序开始主动页面切换操作,比如由程序内部定时器触发的页面切换;步骤210:程序开始被动页面切换操作,比如由用户点击页面按钮引起的页面切换;步骤211:查询状态机的当前状态;步骤212:判断状态机的当前状态是否可以进行视频播放页面向非视频播放页面的切换;步骤213:如果状态机的当前状态是NoMedia,Buffered,EndOfMedia,InvalidMedia其中的一个,则进行视频播放页面向非视频播放页面的切换;步骤214:视频播放页面向非视频播放页面的切换;步骤215:非视频播放页面操作完成之后,返回视频播放页面,进入伺服状态,等下一次的页面切换操作;步骤216:如果状态机的当前状态是Loading,Loaded,Buffering,Stalled其中的一个,则不进行视频播放页面向非视频播放页面的切换,避免不适宜切换状态下的切换导致程序卡死;步骤217:进行延时处理,延时之后重新查询状态机的当前状态,直到状态机进入可切换页面状态,完成视频播放页面向非视频播放页面的切换操作为止。如图3所示,本专利技术应用于交通广告系统解决方案实施如下:所述交通广告系统解决方案部署于公交车上,用于发布广告和公交相关信息,其中视频播放页面301,用于播放视频广告,显示乘车信息和当前日期时间,提供一些用户操作,包括拍照按钮304;报站页面302,该页面在公交车到站时自动切换,由程序内部定位系统触发;拍照页面303,该页面由用户点击按钮304触发切换;无论是视频播放页面301向报站页面302切换,还是视频播放页面301向拍照页面303切换,都需要先查询状态机的当前状态,如果状态机的当前状态是NoMedia,Buffered,EndOfMedia,InvalidMedia其中的一个,则进行视频播放页面向非视频播放页面的切换;如果状态机的当前状态是Loading,Loaded,Buffering,Stalled其中的一个,则不进行视频播放页面向非视频播放页面的切换,避免不适宜切换状态下的切换导致程序卡死,而是进行延时处理,延时之后重新查询状态机的当前状态,直到状态机进入可切换页面状态,完成视频播放页面向非视本文档来自技高网...

【技术保护点】
1.一种QML视频播放与页面切换冲突的处理方法,其特征在于:视频播放页面切换到非视频播放页面必须在视频播放的特定状态进行,如果视频播放状态不适合进行页面切换,则不进行页面切换。

【技术特征摘要】
1.一种QML视频播放与页面切换冲突的处理方法,其特征在于:视频播放页面切换到非视频播放页面必须在视频播放的特定状态进行,如果视频播放状态不适合进行页面切换,则不进行页面切换。2.如权利要求1所述的QML视频播放与页面切换冲突的处理方法,其特征在于:适合进行页面切换的视频播放的特定状态包括:NoMedia,Buffered,EndOfMedia,InvalidMedia;不适合进行页面切换的视频播放状态包括:Loading,Loaded,Buffering,Stalled。3.一种QML视频播放与页面切换冲突的处理方法,其特征在于,包括下述步骤:1)以视频播放的所有状态初始化状态机的所有状态;2...

【专利技术属性】
技术研发人员:邓招奇郝亚茹
申请(专利权)人:电子科技大学中山学院
类型:发明
国别省市:广东,44

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

1