用于VR显示的终端分屏显示的方法及终端与流程

文档序号:11385938阅读:688来源:国知局
用于VR显示的终端分屏显示的方法及终端与流程

本发明涉及虚拟现实技术领域,特别是涉及一种用于vr显示的终端分屏显示的方法及终端。



背景技术:

虚拟现实(virtualreality,vr)是一种可以体验虚拟世界的仿真系统,该仿真系统中融合了三维动态实景和实体行为,使用户可以观看3d影片或玩3d游戏,提升用户体验。但是高端vr产品价格昂贵,只适合高收入人群,针对这种现状,一些公司推出了可以借助用户现有的终端体验vr技术的vr眼镜。

图1为现有技术中一种vr眼镜的结构示意图,如图1所示,该vr眼镜110包括终端固定舱111、左眼镜片112和右眼镜片113。使用时,用户首先将终端固定舱111的舱盖114打开,将终端120固定在终端固定舱111内,通过左眼镜片112和右眼镜片113同时观察终端120上显示的左眼画面121和右眼画面122,产生3d效果。

也就是说,为了产生3d效果,终端120上必须同时显示左眼画面121和右眼画面122。但是用户现有终端上的应用大多都是针对单一画面设计的,无法满足vr眼镜中3d显示的需求。



技术实现要素:

本发明实施例中提供了一种用于vr显示的终端分屏显示的方法及终端,以解决现有技术中终端上的应用大多都是针对单一画面设计的,无法满足vr眼镜中3d显示的需求。

第一方面,本发明实施例提供了一种用于vr显示的终端分屏显示的方法,所述方法包括:在vr显示时,对屏幕当前显示的窗口进行缩放,获得非分屏应用窗口,所述非分屏应用窗口的尺寸小于或等于所述屏幕尺寸的二分之一;复制所述屏幕当前显示的窗口,获得分屏应用窗口;调整所述非分屏应用窗口和所述分屏应用窗口的位置,使得所述非分屏应用窗口和所述分屏应用窗口中与所述非分屏应用窗口对应的区域分别位于所述屏幕的左右两侧。

第二方面,本发明实施例提供了另一种用于vr显示的终端分屏显示的方法,所述方法包括:在vr显示时,复制屏幕当前显示的窗口,获得与所述屏幕当前显示的窗口相同的复制窗口;分别对所述屏幕当前显示的窗口和所述复制窗口进行相同的比例缩放,获得非分屏应用窗口和分屏应用窗口,所述非分屏应用窗口和所述分屏应用窗口的尺寸小于或等于所述屏幕尺寸的二分之一;分别将所述非分屏应用窗口和所述分屏应用窗口的位置调整至屏幕的左右两侧。

第三方面,本发明实施例提供了一种终端,所述终端包括处理器;用于存储处理器的执行指令的存储器;其中,所述处理器被配置为执行上述第一方面和第二方面任一项所述的方法。

采用本发明实施例提供的技术方案,在应用程序层通过对屏幕当前显示窗口的缩放、复制和移动,实现应用的分屏显示,可以满足vr眼镜中3d显示的需求。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为现有技术中一种vr眼镜盒子的结构示意图;

图2为本发明实施例提供的一种场景示意图;

图3为本发明实施例提供的一种用于vr显示的终端分屏显示的方法流程示意图;

图4a和图4b为本发明实施例提供的另一种场景示意图;

图5为本发明实施例提供的另一种用于vr显示的终端分屏显示的方法流程示意图;

图6为本发明实施例提供的另一种用于vr显示的终端分屏显示的方法流程示意图;

图7为本发明实施例提供的另一种场景示意图;

图8为本发明实施例提供的一种终端的结构示意图。

具体实施方式

为了使本技术领域的人员更好地理解本发明中的技术方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。

图2为本发明实施例提供的一种场景示意图,如图2所示,终端采用单一的视频播放界面进行视频的播放。换句话说,终端的屏幕上在同一时间仅显示一个视频播放界面,但是为了配合vr眼镜实现3d显示效果,终端的屏幕上需要同时显示左眼画面和右眼画面。针对这种现象,本发明实施例提供了一种用于vr显示的终端分屏显示的方案,该方案利用终端现有系统架构的上层应用程序层,实现终端的分屏显示效果,下文进行详细说明。需要指出的是,本发明实施例所涉及的终端可以为手机、平板电脑或掌上电脑等;本发明实施例所涉及的应用可以为视频播放应用、flash动画播放应用或ppt播放应用等,本发明实施例对终端和应用的具体形式不做限定。

图3为本发明实施例提供的一种用于vr显示的终端分屏显示的方法流程示意图,如图3所示,其主要包括以下步骤。

步骤s301:在vr显示时,对屏幕当前显示的窗口进行缩放,获得非分屏应用窗口,所述非分屏应用窗口的尺寸小于或等于所述屏幕尺寸的二分之一。

以安卓(android)系统架构为例,在android系统中,窗口管理服务模块(windowmanagerservice)通过窗口状态模块(windowstate)维护android系统每个应用程序的窗口,记录窗口的大小和位置。

在本发明实施例中,windowstate通过窗口控制模块(surfacecontroller)对屏幕当前显示的窗口进行缩放,为了便于说明,将缩放后的窗口定义为非分屏应用窗口。理想情况下,将非分屏应用窗口的尺寸缩放为屏幕尺寸的二分之一可以使得屏幕得到最高的利用率。当然,本领域技术人员也可以根据实际需要将非分屏应用窗口的尺寸缩放为小于屏幕尺寸的二分之一的任一数值。

需要指出的是,所述屏幕当前显示的窗口是指屏幕上的整个窗口,以图2为例,所述屏幕当前显示的窗口包括视频播放界面、视频播放界面上方的备注栏以及视频播放下方的控制栏。另外,本发明实施例所涉及的窗口包括绘图表面(surface)和视图(view)。相应地,窗口缩放为原始尺寸的一半是指surface和view均缩放为原始尺寸的一半。

步骤s302:复制所述屏幕当前显示的窗口,获得分屏应用窗口。

在android系统中,虚拟屏幕模块(virturedisplay)可以镜像帧缓冲器(framebuffer)中的数据,即镜像屏幕当前显示的窗口中的所有数据,包括surface和view。

以图4a所示的场景为例,virturedisplay复制整个屏幕,复制的屏幕尺寸为1920*1080,包括非分屏应用窗口401,非分屏应用窗口401上侧和下侧的空白区域,以及非分屏应用窗口401右侧的空白区域。其中,非分屏应用窗口401右侧的空白区域通常为上一帧画面。

为了便于说明,在本发明实施例中将virturedisplay复制的窗口定义为分屏应用窗口。

步骤s303:调整所述非分屏应用窗口和所述分屏应用窗口的位置,使得所述非分屏应用窗口和所述分屏应用窗口中与所述非分屏应用窗口对应的区域分别位于所述屏幕的左右两侧。

当终端用于vr显示时通常横向设置,因此本发明实施例中屏幕的左右两侧优选为屏幕横向设置时的左右两侧。

从用户的眼睛和屏幕的相对位置来看,用户的左眼和右眼分别观察屏幕的左侧和右侧,因此本发明实施例需要分别将非分屏应用窗口和分屏应用窗口中与所述非分屏应用窗口对应的区域调整至屏幕的左右两侧。具体地,当非分屏应用窗口的位置调整至屏幕的左侧时,分屏应用窗口中与所述非分屏应用窗口对应的区域的位置调整至屏幕的右侧;当非分屏应用窗口的位置调整至屏幕的右侧时,分屏应用窗口中与所述非分屏应用窗口对应的区域的位置调整至屏幕的左侧。在本发明实施例中以非分屏应用窗口的位置调整至屏幕的左侧为例进行说明。

由于屏幕上具有自己的坐标系,因此windowstate通过surfacecontroller对非分屏应用窗口和分屏应用窗口的位置进行调整可以通过设置非分屏应用窗口的起始点坐标来实现。

对于非分屏应用窗口来说,为了将非分屏应用窗口的位置调整至屏幕的左侧,可以将所述非分屏应用窗口的横向起始点坐标值调整为所述屏幕原点的横向坐标值。通常情况下,屏幕的左上角为其坐标原点(0,0),因此,若要将非分屏应用窗口调整至所述屏幕的左侧,可以将非分屏应用窗口的横向起始点坐标x0调整为0。

另外,如果将非分屏应用窗口的尺寸缩放为屏幕尺寸的二分之一,则非分屏应用窗口的高度为屏幕整个高度的一半。理论上讲,只要非分屏应用窗口在高度方向上不超出屏幕的显示范围均可以实现本技术方案。也就是说,可以将非分屏应用窗口的纵向起始点坐标值调整为小于或等于所述屏幕的纵向分辨率的二分之一,即将非分屏应用窗口的纵向起始点坐标值y0调整为其中,h为屏幕的纵向分辨率。但是为了实现更好的显示效果,可以将非分屏应用窗口的纵向起始点坐标值y0调整为使得非分屏应用窗口在高度方向上居中显示。

如图4a所示,屏幕的分辨率为1920*1080,屏幕的左上角o为其坐标原点(0,0)。将非分屏应用窗口401的起始点o0的坐标调整为(0,270),使得非分屏应用窗口在屏幕上靠左侧居中显示。

对于分屏应用窗口来说,由于非分屏应用窗口在屏幕中的位置决定了分屏应用窗口中与非分屏应用窗口对应的区域的位置,因此先将非分屏应用窗口调整至屏幕的对应位置,然后再复制所述屏幕当前显示的窗口,获得分屏应用窗口,可以便于非分屏应用窗口的调整。

例如,在本发明一种优选实施例中,可以先将非分屏应用窗口调整至屏幕的左侧,然后复制所述屏幕当前显示的窗口,获得分屏应用窗口。此时,分屏应用窗口中与非分屏应用窗口对应的区域位于分屏应用窗口的左侧。

surfacecontroller将所述分屏应用窗口的横向起始点坐标值调整为屏幕的横向分辨率的二分之一,即其中,x1为分屏应用窗口的横向起始点坐标值,l作为屏幕的横向分辨率。由于非分屏应用窗口的宽度为因此将分屏应用窗口的横向起始点坐标值x1调整为可以使得非分屏应用窗口的右侧边缘和分屏应用窗口中与非分屏应用窗口对应的区域的左侧边缘正好拼接在一起。一方面避免非分屏应用窗口和分屏应用窗口中与非分屏应用窗口对应的区域的重叠,另一方面避免非分屏应用窗口和分屏应用窗口中与非分屏应用窗口对应的区域之间存在空隙,造成屏幕资源的浪费。

另外,由于分屏应用窗口的高度与屏幕的高度相同,因此将分屏应用窗口的纵向起始点坐标值y1调整为0可以保证非分屏应用窗口和分屏应用窗口中与非分屏应用窗口对应的区域在同一高度上,避免画面在高度方向上的错位。

以图4b所示的场景为例,virturedisplay将图4a所示的屏幕复制后,得到与图4a显示的内容完全相同的分屏应用窗口402,通过surfacecontroller将分屏应用窗口402的起始点坐标o1调整为(960,0),使得分屏应用窗口402中与非分屏应用窗口对应的区域在屏幕上靠右侧显示,至此实现终端应用的分屏显示。

采用本发明实施例提供的技术方案,在应用程序层通过对屏幕当前显示窗口的缩放、复制和移动,实现应用的分屏显示,可以满足vr眼镜中3d显示的需求。

可理解,采用图3所示的技术方案,当使用终端播放视频时,非分屏应用窗口中的视频播放界面是不停的变化的,为了实现非分屏应用窗口和分屏应用窗口中视频播放界面的同步显示,需要按照预设的时间间隔对分屏应用窗口进行更新,具体可以包括以下步骤。

图5本发明实施例提供的另一种用于vr显示的终端分屏显示的方法流程示意图,其在图3所示实施例的基础上还包括以下步骤。

步骤s501:按照预设的时间间隔复制所述屏幕当前显示的窗口,获得更新后的分屏应用窗口。

步骤s502:将所述更新后的分屏应用窗口的位置调整至更新前所述分屏应用窗口的位置。

也就是说,在更新前和更新后,分屏应用窗口在屏幕上的位置保持不变。

举例来说,在t1时刻,图4b中的非分屏应用窗口401和分屏应用窗口402的视频播放界面均显示视频的第i帧画面;随着视频的播放,在t2时刻,非分屏应用窗口401的视频播放界面显示视频的第i+1帧画面,此时分屏应用窗口402的视频播放界面仍然显示视频的第i帧画面(比非分屏应用窗口401滞后一帧),因此需要对分屏应用窗口402进行更新;采用步骤s501和s502所示的方法对分屏应用窗口402更新后,在t3时刻,非分屏应用窗口401和分屏应用窗口402的视频播放界面均显示视频的第i+1帧画面。虽然分屏应用窗口402相对非分屏应用窗口401的视频播放界面存在一定的延时,但是该延时属于毫秒级的,不会影响用户的视觉体验。

上述技术方案中,通过先缩放再复制的方式实现终端应用的分屏显示。在本发明实施例提供的另一种实现方式中,也可以通过先复制再缩放的方式实现终端应用的分屏显示。

图6为本发明实施例提供的另一种用于vr显示的终端分屏显示的方法流程示意图,如图6所示,其主要包括以下步骤。

步骤s601:在vr显示时,复制屏幕当前显示的窗口,获得与所述屏幕当前显示的窗口相同的复制窗口。

在本发明实施例中,windowstate通过virturedisplay复制屏幕当前显示的窗口。以图2所示的场景为例,virturedisplay复制图2所示的整个屏幕,此时复制窗口和原始窗口叠加在一起。

假如图2所示的屏幕的分辨率为1920*1080,则此时复制窗口和原始窗口的尺寸均为1920*1080。

步骤s602:分别对所述屏幕当前显示的窗口和所述复制窗口进行相同的比例缩放,获得非分屏应用窗口和分屏应用窗口。

其中,所述非分屏应用窗口和所述分屏应用窗口的尺寸小于或等于所述屏幕尺寸的二分之一。理想情况下,将所述非分屏应用窗口和所述分屏应用窗口的尺寸缩放为屏幕尺寸的二分之一可以使得屏幕得到最高的利用率。

在一种可选实施例中,windowstate通过surfacecontroller分别将屏幕当前显示的窗口和所述复制窗口缩放为原始尺寸的一半。例如原始尺寸为1920*1080,缩放为一半后变为960*540。其目的在于将两个窗口同时显示在终端的屏幕上。

步骤s503:分别将所述非分屏应用窗口和所述分屏应用窗口的位置调整至所述屏幕的左右两侧。

在本发明实施例中,以surfacecontroller分别将所述非分屏应用窗口和所述分屏应用窗口的位置调整至屏幕的左侧和右侧为例进行说明。

由于屏幕上具有自己的坐标系,因此windowstate通过surfacecontroller对非分屏应用窗口的位置进行调整至可以通过设置非分屏应用窗口的起始点坐标来实现。为了将非分屏应用窗口的位置调整至屏幕的左侧,可以将所述非分屏应用窗口的横向起始点坐标值调整为所述屏幕原点的横向坐标值。通常情况下,屏幕的左上角为其坐标原点(0,0),因此,若要将非分屏应用窗口调整至所述屏幕的左侧,可以将非分屏应用窗口的横向起始点坐标x0调整为0。另外,如果将非分屏应用窗口的尺寸缩放为屏幕尺寸的二分之一,则非分屏应用窗口的高度为屏幕整个高度的一半。理论上讲,只要非分屏应用窗口在高度方向上不超出屏幕的显示范围均可以实现本技术方案。也就是说,可以将非分屏应用窗口的纵向起始点坐标值调整为小于或等于所述屏幕的纵向分辨率的二分之一,即将非分屏应用窗口的纵向起始点坐标值y0调整为其中,h为屏幕的纵向分辨率。但是为了实现更好的显示效果,可以将非分屏应用窗口的纵向起始点坐标值y0调整为使得非分屏应用窗口在高度方向上居中显示。

对于分屏应用窗口来说,可以将分屏应用窗口的横向起始点坐标值调整为屏幕的横向分辨率的二分之一。将x1作为分屏应用窗口的横向起始点坐标值,l作为屏幕的横向分辨率,即由于非分屏应用窗口的宽度为因此将分屏应用窗口的横向起始点坐标值x1调整为可以使得非分屏应用窗口的右侧边缘和分屏应用窗口的左侧边缘正好拼接在一起。一方面避免非分屏应用窗口和分屏应用窗口的重叠,另一方面避免非分屏应用窗口和分屏应用窗口之间存在空隙,造成屏幕资源的浪费。

另外,为了保证分屏应用窗口和非分屏应用窗口所显示视频播放界面的高度相同,可配置分屏应用窗口的纵向起始点坐标值y1与非分屏应用窗口的纵向起始点坐标值y0相等。优选地,即保证非分屏应用窗口和分屏应用窗口居中显示。

以图7所示的场景为例,surfacecontroller将非分屏应用窗口401的起始点坐标o0调整为(0,270);将分屏应用窗口402的起始点坐标o1调整为(960,270)。

采用本发明实施例提供的技术方案,在应用程序层先对屏幕当前显示窗口进行复制,然后进行缩放和移动,实现应用的分屏显示,可以满足vr眼镜中3d显示的需求。

可理解,采用图6所示的技术方案,当使用终端播放视频时,非分屏应用窗口中的视频播放界面是不停的变化的,为了实现非分屏应用窗口和分屏应用窗口中视频播放界面的同步显示,需要按照预设的时间间隔对分屏应用窗口进行更新,具体可以包括以下步骤:所述虚拟屏幕模块按照预设的时间间隔复制所述屏幕当前显示的窗口,获得更新后的分屏应用窗口;所述窗口控制模块将所述更新后的分屏应用窗口的位置调整至所述屏幕的第二侧。该部分与图5所示实施例中的内容可以相互参见,为了描述简洁在此不再赘述。

需要指出的是,上述实现过程仅是本发明实施中的一种具体实现方式,除了android系统外,终端也能安装其它操作系统,例如ios或os操作系统等。相应地,终端也可以借助其它操作系统中的功能模块实现本申请中的技术方案,在不脱离本申请发明构思的前提下,其均应当处于本申请的保护范围之内。

在上述方法实施例的基础上,本发明实施例还提供了一种终端,该终端的具体形式可以为手机、平板电脑或掌上电脑等。

图8为本发明实施例提供的一种终端的结构示意图,如图8所示,所述终端800可以包括:处理器810、存储器820及通信单元830。这些组件通过一条或多条总线进行通信,本领域技术人员可以理解,图中示出的服务器的结构并不构成对本申请的限定,它既可以是总线形结构,也可以是星型结构,还可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。

其中,所述通信单元830,用于建立通信信道,从而使所述存储设备可以与其它设备进行通信。接收其他设备发送的用户数据或者向其他设备发送用户数据。

所述处理器810,为存储设备的控制中心,利用各种接口和线路连接整个电子设备的各个部分,通过运行或执行存储在存储器820内的软件程序和/或模块,以及调用存储在存储器内的数据,以执行电子设备的各种功能和/或处理数据。所述处理器可以由集成电路(integratedcircuit,简称ic)组成,例如可以由单颗封装的ic所组成,也可以由连接多颗相同功能或不同功能的封装ic而组成。举例来说,处理器810可以仅包括中央处理器(centralprocessingunit,简称cpu)。在本申请实施方式中,cpu可以是单运算核心,也可以包括多运算核心。

所述存储器820,用于存储处理器810的执行指令,存储器820可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(sram),电可擦除可编程只读存储器(eeprom),可擦除可编程只读存储器(eprom),可编程只读存储器(prom),只读存储器(rom),磁存储器,快闪存储器,磁盘或光盘。

当存储器820中的执行指令由处理器810执行时,使得终端800能够执行以下上述方法实施例中的部分或全部步骤。

具体实现中,本发明实施例还提供一种计算机存储介质,其中,该计算机存储介质可存储有程序,该程序执行时可包括本申请提供的各实施例中的部分或全部步骤。所述的存储介质可为磁碟、光盘、只读存储记忆体(英文:read-onlymemory,简称:rom)或随机存储记忆体(英文:randomaccessmemory,简称:ram)等。

本领域的技术人员可以清楚地了解到本发明实施例中的技术可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本发明实施例中的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例或者实施例的某些部分所述的方法。

本说明书中各个实施例之间相同相似的部分互相参见即可。尤其,对于终端实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例中的说明即可。

以上所述的本申请实施方式并不构成对本申请保护范围的限定。

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