重力感应与手动控制相结合的屏幕旋转控制方法及系统与流程

文档序号:12595852阅读:410来源:国知局
重力感应与手动控制相结合的屏幕旋转控制方法及系统与流程

本发明涉及屏幕旋转控制技术领域,具体来讲是一种重力感应与手动控制相结合的屏幕旋转控制方法及系统。



背景技术:

随着互联网技术的迅速发展,越来越多的用户可以使用电脑、手机等智能终端通过网络观看在线视频直播。在线视频直播是指利用互联网网络资源进行的现场视频直播服务,通过现场的视频拍摄同步发布到网络上,用户可以同一时间在网络上看到实时的现场情况。但由于智能终端(如手机)的屏幕通常具有一定的局限性,因此,如何在有限的屏幕区域内展示丰富的内容,成为了视频直播领域需要解决的难题。

目前,主流的视频直播APP(Application,应用程序)虽然有横、竖屏页面,但有的只能手动旋转,有的只能重力感应旋转,没有同时兼备手动与自动两种方式。也就是说,在用户的智能终端竖屏锁定功能关闭时(即未锁定竖屏),不能手动禁止屏幕的旋转,只能在APP外通过智能终端的竖屏锁定按钮控制;同样,在用户的智能终端竖屏锁定开启时(即锁定竖屏),无法手动旋转屏幕,只能在APP外关闭智能终端的竖排锁定功能,再通过重力感应旋转。现有的这种单一控制方式,虽然易实现,但是使用上不方便,特别是当用户在APP内进行实时操作时,无法在APP内随时根据需要控制屏幕旋转的方式,使得用户体验差。



技术实现要素:

本发明的目的是为了克服上述背景技术的不足,提供一种重力感应与手动控制相结合的屏幕旋转控制方法及系统,能根据用户需要,直接在APP内实现屏幕旋转与禁止屏幕旋转的控制操作,增强用户体验。

为达到以上目的,本发明提供一种重力感应与手动控制相结合的屏幕旋转控制方法,包括以下步骤:S1:在APP内创建手动锁屏控制按钮、强制横屏按钮和强制竖屏按钮;S2:当用户转动设备且需要旋转屏幕方向时,利用手动锁屏控制按钮实现手动解锁,并通过重力感应或者创建的强制横屏按钮、强制竖屏按钮,实现屏幕的旋转;S3:当用户转动设备但无需旋转屏幕方向时,利用设备已有的竖屏锁定功能或者手动锁屏控制按钮实现锁屏,禁止屏幕的旋转。

在上述技术方案的基础上,步骤S2具体包括以下操作:

S201:当用户转动设备且需要旋转屏幕方向时,判断当前设备是否开启已有的竖屏锁定功能,若是,转入S202;否则,转入S203;

S202:查询当前手动锁屏的状态,若手动锁屏的状态为开启,则先利用手动锁屏控制按钮将手动锁屏的状态修改为关闭,再利用创建的强制横屏按钮或强制竖屏按钮,实现屏幕的旋转;若手动锁屏的状态为关闭,则直接利用创建的强制横屏按钮或强制竖屏按钮,实现屏幕的旋转,结束S2;

S203:查询当前手动锁屏的状态,若手动锁屏的状态为开启,则先利用手动锁屏控制按钮将手动锁屏的状态修改为关闭,再利用重力感应实现屏幕的旋转;若手动锁屏的状态为关闭,则直接利用重力感应实现屏幕的旋转,结束S2。

在上述技术方案的基础上,步骤S3具体包括以下操作:S301:当用户转动设备但无需旋转屏幕方向时,判断当前设备是否开启已有的竖屏锁定功能,若是,则无需进行任何操作,结束;否则,转入S302;S302:查询当前手动锁屏的状态,若手动锁屏的状态为开启,则无需进行任何操作,结束;若手动锁屏的状态为关闭,则需利用手动锁屏控制按钮将手动锁屏的状态修改为开启,实现手动锁屏,禁止屏幕的旋转。

在上述技术方案的基础上,判断当前设备是否开启已有的竖屏锁定功能时,通过APP是否能够响应自动旋屏函数shouldAutorotate来进行判断,若APP能够响应,则表明竖屏锁定功能未开启;若APP不能够响应,则表明竖屏锁定功能开启。

在上述技术方案的基础上,查询当前手动锁屏的状态时,通过查询布尔类型变量isLocked的值来确定手动锁屏的状态的,若isLocked的值为YES,表明手动锁屏的状态为开启;若isLocked的值为NO,表明手动锁屏的状态为关闭;在此基础上,利用手动锁屏控制按钮将手动锁屏的状态修改为关闭或开启时,是将isLocked的值相应修改为NO或YES。

本发明同时还提供一种重力感应与手动控制相结合的屏幕旋转控制系统,包括按钮控件创建模块、屏幕旋转模块和屏幕禁止旋转模块。所述按钮控件创建模块用于:在APP内创建手动锁屏控制按钮、强制横屏按钮和强制竖屏按钮;所述屏幕旋转模块用于:当用户转动设备且需要旋转屏幕方向时,利用手动锁屏控制按钮实现手动解锁,并通过重力感应或者创建的强制横屏按钮、强制竖屏按钮,实现屏幕的旋转;所述屏幕禁止旋转模块用于:当用户转动设备但无需旋转屏幕方向时,利用设备已有的竖屏锁定功能或者手动锁屏控制按钮实现锁屏,禁止屏幕的旋转。

在上述技术方案的基础上,所述屏幕旋转模块实现屏幕旋转的具体流程为:当用户转动设备且需要旋转屏幕方向时,先判断当前设备是否开启已有的竖屏锁定功能;

若竖屏锁定功能已开启,查询当前手动锁屏的状态,若手动锁屏的状态为开启,则先利用手动锁屏控制按钮将手动锁屏的状态修改为关闭,再利用创建的强制横屏按钮或强制竖屏按钮,实现屏幕的旋转;若手动锁屏的状态为关闭,则直接利用创建的强制横屏按钮或强制竖屏按钮,实现屏幕的旋转;

若竖屏锁定功能未开启,查询当前手动锁屏的状态,若手动锁屏的状态为开启,则先利用手动锁屏控制按钮将手动锁屏的状态修改为关闭,再利用重力感应实现屏幕的旋转;若手动锁屏的状态为关闭,则直接利用重力感应实现屏幕的旋转。

在上述技术方案的基础上,所述屏幕禁止旋转模块禁止屏幕旋转的具体流程为:当用户转动设备但无需旋转屏幕方向时,先判断当前设备是否开启已有的竖屏锁定功能,若是,则无需进行任何操作;否则,查询当前手动锁屏的状态,若手动锁屏的状态为开启,则无需进行任何操作;若手动锁屏的状态为关闭,则需利用手动锁屏控制按钮将手动锁屏的状态修改为开启,实现手动锁屏,禁止屏幕的旋转。

在上述技术方案的基础上,所述屏幕旋转模块或所述屏幕禁止旋转模块判断当前设备是否开启已有的竖屏锁定功能时,是通过APP是否能够响应自动旋屏函数shouldAutorotate来进行判断,若APP能够响应,则表明竖屏锁定功能未开启;若APP不能够响应,则表明竖屏锁定功能开启。

在上述技术方案的基础上,所述屏幕旋转模块或所述屏幕禁止旋转模块查询当前手动锁屏的状态时,是通过查询布尔类型变量isLocked的值来确定手动锁屏的状态的,若isLocked的值为YES,表明手动锁屏的状态为开启;若isLocked的值为NO,表明手动锁屏的状态为关闭;在此基础上,所述屏幕旋转模块或所述屏幕禁止旋转模块利用手动锁屏控制按钮将手动锁屏的状态修改为关闭或开启时,是将isLocked的值相应修改为NO或YES。

本发明的有益效果在于:

本发明通过在APP内创建三个按钮控件:手动锁屏控制按钮、强制横屏按钮和强制竖屏按钮,来控制屏幕的旋转。无论设备是否开启竖屏锁定功能,均可在APP内直接通过创建的按钮来达到旋转屏幕或禁止旋转屏幕的目的。与现有技术的单一控制方式相比,本发明无需切换到APP外进行锁定与解锁操作,可直接在APP内实现屏幕是否旋转的灵活控制,能有效增强用户体验,用户体验佳。

附图说明

图1为本发明实施例中重力感应与手动控制相结合的屏幕旋转控制方法的流程图;

图2为本发明实施例中步骤S2的具体流程图;

图3为本发明实施例中步骤S3的具体流程图;

图4为本发明实施例中重力感应与手动控制相结合的屏幕旋转控制系统的结构框图。

具体实施方式

下面以应用场景为IOS系统为例,结合附图及具体实施例对本发明作进一步的详细描述。

参见图1所示,本发明实施例提供一种重力感应与手动控制相结合的屏幕旋转控制方法,包括以下步骤:

步骤S1:在APP内创建手动锁屏控制按钮、强制横屏按钮和强制竖屏按钮;其中,手动锁屏控制按钮用来改变手动锁屏的状态,从而实现手动锁屏或手动解锁;强制横屏按钮用来将屏幕方向由竖屏方向强制旋转至横屏方向;强制竖屏按钮用来将屏幕方向由横屏方向强制旋转至竖屏方向。

步骤S2:当用户转动设备(智能终端)且需要旋转屏幕方向时,利用手动锁屏控制按钮实现手动解锁,并通过重力感应或者创建的强制横屏按钮、强制竖屏按钮,实现屏幕的旋转。

实际操作时,如图2所示,步骤S2具体包括以下操作:

步骤S201:当用户转动设备且需要旋转屏幕方向时,判断当前设备是否开启已有的竖屏锁定功能,若是,转入步骤S202;否则,转入步骤S203;

步骤S202:查询当前手动锁屏的状态,若手动锁屏的状态为开启(即当前屏幕被锁定,不允许旋转),则需先利用手动锁屏控制按钮将手动锁屏的状态修改为关闭(即实现手动解锁),然后再利用创建的强制横屏按钮或强制竖屏按钮,实现屏幕的旋转;若手动锁屏的状态为关闭(即当前屏幕未被锁定,允许旋转),则直接利用创建的强制横屏按钮或强制竖屏按钮,实现屏幕的旋转,结束步骤S2;

步骤S203:查询当前手动锁屏的状态,若手动锁屏的状态为开启(即当前屏幕被锁定,不允许旋转),则需先利用手动锁屏控制按钮将手动锁屏的状态修改为关闭(即实现手动解锁),然后再利用重力感应实现屏幕的旋转;若手动锁屏的状态为关闭(即当前屏幕未被锁定,允许旋转),则直接利用重力感应实现屏幕的旋转,结束步骤S2。

可以理解的是,本实施例中,利用重力感应实现屏幕的旋转时,系统会自动先响应待旋转重载函数willRotateToInterfaceOrientation(表明屏幕将要旋转);然后,系统会自动调用驱动旋转重载函数willAnimateRotationToInterfaceOrientation,用来实现当重力感应设备发生变化时,屏幕将随设备变化方向旋转。

由上述操作可以看出,本发明中,无论设备是否开启已有的竖屏锁定功能,都能利用手动锁屏控制按钮进行控制,并最终实现屏幕的旋转。操作区别仅在于:当竖屏锁定功能开启时,在利用手动锁屏控制按钮进行手动解锁后,只能利用创建的强制横屏按钮或强制竖屏按钮实现屏幕的旋转;而当竖屏锁定功能关闭时,由于设备的重力感应功能可以使用,因此只要保证手动锁屏状态为关闭状态,则可利用重力感应实现屏幕的旋转。

步骤S3:当用户转动设备但无需旋转屏幕方向时,利用设备已有的竖屏锁定功能或者手动锁屏控制按钮实现锁屏,禁止屏幕的旋转。

实际操作时,如图3所示,步骤S3具体包括以下操作:

步骤S301:当用户转动设备但无需旋转屏幕方向时,判断当前设备是否开启已有的竖屏锁定功能,若是,表明当前屏幕被锁定,不会发生旋转,则无需进行任何操作,结束;否则,转入步骤S302;

步骤S302:查询当前手动锁屏的状态,若手动锁屏的状态为开启,表明当前屏幕被锁定,不会发生旋转,则无需进行任何操作,结束;若手动锁屏的状态为关闭,表明当前屏幕未被锁定,会发生旋转,则需利用手动锁屏控制按钮将手动锁屏的状态修改为开启,实现手动锁屏,禁止屏幕的旋转。

进一步地,本实施例中,在判断当前设备是否开启已有的竖屏锁定功能时(步骤S201和步骤S301中),是通过APP是否能够响应自动旋屏函数shouldAutorotate来进行判断的,若APP能够响应,则表明竖屏锁定功能未开启;若APP不能够响应,则表明竖屏锁定功能开启。

更进一步地,本实施例中,在查询当前手动锁屏的状态时(步骤S202、步骤S203和步骤S302中),是通过查询布尔类型变量isLocked的值来确定手动锁屏的状态的,若isLocked的值为YES,表明手动锁屏的状态为开启;若isLocked的值为NO,表明手动锁屏的状态为关闭。在此基础上,利用手动锁屏控制按钮将手动锁屏的状态修改为关闭或开启时,实际上是将isLocked的值相应修改为NO或YES。

参见图4所示,本发明实施例提供一种重力感应与手动控制相结合的屏幕旋转控制系统,包括按钮控件创建模块、屏幕旋转模块和屏幕禁止旋转模块。

其中,按钮控件创建模块用于:在APP内创建手动锁屏控制按钮、强制横屏按钮和强制竖屏按钮;手动锁屏控制按钮用来改变手动锁屏的状态,从而实现手动锁屏或手动解锁;强制横屏按钮用来将屏幕方向由竖屏方向强制旋转至横屏方向;强制竖屏按钮用来将屏幕方向由横屏方向强制旋转至竖屏方向。

屏幕旋转模块用于:当用户转动设备且需要旋转屏幕方向时,利用手动锁屏控制按钮实现手动解锁,并通过重力感应或者创建的强制横屏按钮、强制竖屏按钮,实现屏幕的旋转。其具体操作流程为:当用户转动设备且需要旋转屏幕方向时,先判断当前设备是否开启已有的竖屏锁定功能;

若竖屏锁定功能已开启,查询当前手动锁屏的状态,若手动锁屏的状态为开启,则先利用手动锁屏控制按钮将手动锁屏的状态修改为关闭,再利用创建的强制横屏按钮或强制竖屏按钮,实现屏幕的旋转;若手动锁屏的状态为关闭,则直接利用创建的强制横屏按钮或强制竖屏按钮,实现屏幕的旋转;可以理解的是,本实施例中,利用重力感应实现屏幕的旋转时,屏幕旋转模块会自动先响应待旋转重载函数willRotateToInterfaceOrientation(表明屏幕将要旋转);然后,屏幕旋转模块会自动调用驱动旋转重载函数willAnimateRotationToInterfaceOrientation,用来实现当重力感应设备发生变化时,屏幕将随设备变化方向旋转。

若竖屏锁定功能未开启,查询当前手动锁屏的状态,若手动锁屏的状态为开启,则先利用手动锁屏控制按钮将手动锁屏的状态修改为关闭,再利用重力感应实现屏幕的旋转;若手动锁屏的状态为关闭,则直接利用重力感应实现屏幕的旋转。

屏幕禁止旋转模块用于:当用户转动设备但无需旋转屏幕方向时,利用设备已有的竖屏锁定功能或者手动锁屏控制按钮实现锁屏,禁止屏幕的旋转。其具体操作流程为:当用户转动设备但无需旋转屏幕方向时,先判断当前设备是否开启已有的竖屏锁定功能,若是,则无需进行任何操作;否则,查询当前手动锁屏的状态,若手动锁屏的状态为开启,则无需进行任何操作;若手动锁屏的状态为关闭,则需利用手动锁屏控制按钮将手动锁屏的状态修改为开启,实现手动锁屏,禁止屏幕的旋转。

另外,可以理解的是,屏幕旋转模块或屏幕禁止旋转模块在判断当前设备是否开启已有的竖屏锁定功能时,是通过APP是否能够响应自动旋屏函数shouldAutorotate来进行判断的,若APP能够响应,则表明竖屏锁定功能未开启;若APP不能够响应,则表明竖屏锁定功能开启。

除此之外,屏幕旋转模块或屏幕禁止旋转模块在查询当前手动锁屏的状态时,均是通过查询布尔类型变量isLocked的值来确定手动锁屏的状态的,若isLocked的值为YES,表明手动锁屏的状态为开启;若isLocked的值为NO,表明手动锁屏的状态为关闭;并且,在此基础上,屏幕旋转模块或屏幕禁止旋转模块在利用手动锁屏控制按钮将手动锁屏的状态修改为关闭或开启时,是将isLocked的值相应修改为NO或YES。

需要说明的是:上述实施例提供的系统在进行操作时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将系统的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。

本发明不局限于上述实施方式,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本发明的保护范围之内。

本说明书中未作详细描述的内容属于本领域专业技术人员公知的现有技术。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1