具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明实施例根据进行同步显示的两个终端的屏幕分辨率来对屏幕坐标的映射关系进行自适应调整,从而实现多屏互动中的不同屏幕的同步显示,无需再由用户手动进行设置,大大提高了多屏互动的操作效率。
图1示出了本发明屏幕同步方法第一实施例中所适用的系统结构框图,为了便于说明,仅示出了与本实施例相关的部分。
参照图1,该系统至少包括两个具备屏幕显示功能的终端设备:第一终端11和第二终端12,且不同的终端设备通过通信网络连接,例如两者可接入同一无线相容性认证(Wireless Fidelity,WiFi)网络,以实现设备间的数据传输。
在图1所示的系统结构中,可以通过帧缓冲(Frame Buffer)显示机制模拟终端设备的显卡功能,将屏幕上的每个点映射成一段线性内存空间,由此通过改变内存的值来改变屏幕上某一点的颜色,从而将显卡硬件结构抽象掉,实现 一个视频输出设备对一个视频显示设备的驱动。通过Frame Buffer显示机制将第一终端11的显示内存的映像映射到第二终端12的本地进程空间,并由第二终端12直接对其本地进程空间进行读操作,即可以实现将第一终端11的屏幕内容远程显示在第二终端12上。而由第二终端12直接对其本地进程空间进行写操作,则相应的操作也可以通过映射关系在第一终端11上反映出来,从而实现第二终端12对第一终端11屏幕内容的同步显示,以及通过第二终端12对第一终端11的屏幕进行同步控制。
下面,以图1所示的系统场景为例,说明将第一终端11的屏幕同步显示在第二终端12的实现流程,通过该实现流程,将第二终端12的屏幕同步显示在第一终端11的原理也容易得出,在此不再赘述。
图2示出了本发明屏幕同步方法较佳实施例的的实现流程图,详述如下:
在步骤S201中,分别获取第一终端的第一屏幕的第一分辨率及第二终端的第二屏幕的第二分辨率。
由于第一终端和第二终端均接入了相同的通信网络,并基于相同的通信机制建立连接,因此,能够同时获取到第一终端的第一屏幕的分辨率及第二终端的第二屏幕的分辨率,其中,分辨率描述了屏幕中所显示的像素数量,其通过分辨率长度和分辨率宽度来表示,例如分辨率为800*600、1920*1200等等。
在本实施例步骤S201中,具体为获取第一屏幕的第一分辨率长度和第一分辨率宽度,以及获取第二屏幕的第二分辨率长度和第二分辨率宽度。
在步骤S202中,根据第一分辨率与第二分辨率的大小关系确定缩放系数和旋转参数。
在本发明实施例中,可以通过分别获取第一屏幕的第一长宽比和第二屏幕的第二长宽比,并根据第一长宽比与第二长宽比的大小关系确定缩放系数和旋转系数,其中,第一长宽比为第一分辨率长度与第一分辨率宽度的比值,第二长宽比为第二分辨率长度与第二分辨率宽度的比值。
对于缩放系数的确定将在后续实施例中进行详细说明,在此不再赘述,而 对于旋转参数,在本实施例中,由于第一分辨率与第二分辨率的长宽比可能不一致,因此需要通过考察第一分辨率与第二分辨率的大小关系来确定相应的旋转参数,其中,旋转参数用于指示第一屏幕在同步显示到第二屏幕时是否需要经过旋转,以避免出现如图3B虚线箭头所指的情况,第一屏幕和第二屏幕的长宽比差距过大,导致第一屏幕在同步显示到第二屏幕时无法充分利用第二屏幕,第二屏幕大部分显示区域未被利用的情况出现。
当获取到的第一长宽比和第二长宽比均大于1或者小于1时,则表明第一屏幕和第二屏幕如图3A所示,显示方向一致,此时,则设置旋转参数为第一参数,其中,第一参数用于指示第一屏幕不需要旋转。
当获取到的第一长宽比和第二长宽比中只有一个小于1时,则表明第一屏幕和第二屏幕如图3B的倾斜实线箭头所指的情况,显示方向不一致,此时,则设置旋转参数为第二参数,其中,第二参数用于指示90度旋转第一屏幕。
在步骤S203中,根据确定的缩放系数和旋转参数,将第一屏幕的第一坐标映射成第二屏幕的第二坐标。
在本实施例中,当步骤S202中确定出的旋转参数为第一参数时,则通过将第一屏幕的第一坐标中的横坐标和纵坐标分别除以确定出的缩放系数来得到第二屏幕的第二坐标中的横坐标和纵坐标。具体地,可以根据公式(X2,Y2)=(X1*d,Y1*d),将第一屏幕的第一坐标映射成第二屏幕的第二坐标,其中,X2、Y2分别为所述第二坐标的横坐标和纵坐标,X1、Y1分别为第一坐标的横坐标和纵坐标,d为确定出的缩放系数。
在上述情况下,缩放系数的确定有以下两种情况:
情况一:
第一屏幕的第一长宽比与第二屏幕的第二长宽比相等。
在该情况下,缩放系数为第二分辨率长度与第一分辨率长度的比值,或者为第二分辨率宽度与第一分辨率宽度的比值。
图4A示出了本发明屏幕同步方法情况一的具体实施例一的示意图,其描 述了情况一中将大屏幕同步到小屏幕的情况;图4B示出了本发明屏幕同步方法情况一的具体实施例二的示意图,其描述了情况一中将小屏幕同步到大屏幕的情况。
情况二:
第一屏幕的第一长宽比与第二屏幕的第二长宽比不相等。
在该情况下,缩放系数为第一比值与第二比值之间的较小值,其中,第一比值为第二分辨率宽度与所述第一分辨率宽度的比值,所述第二比值为所述第二分辨率长度与所述第一分辨率长度的比值。
图4C示出了本发明屏幕同步方法情况二的具体实施例一的示意图,其描述了情况二中将大屏幕同步到小屏幕的情况;图4D示出了本发明屏幕同步方法情况二的具体实施例二的示意图,其描述了情况二中将小屏幕同步到大屏幕的情况。
当步骤S202中确定出的旋转参数设置成第二参数时,则通过将第一屏幕的第一坐标中的纵坐标和横坐标分别除以确定出的缩放系数来得到第二屏幕的第二坐标中的横坐标和纵坐标。具体地,可以根据公式(X2,Y2)=(Y1*d1,X1*d2)将第一屏幕的第一坐标映射成第二屏幕的第二坐标,其中,X2、Y2分别为所述第二坐标的横坐标和纵坐标,X1、Y1分别为第一坐标的横坐标和纵坐标,d1为确定出的第一缩放系数,d2为确定出的第二缩放系数。
在上述情况下,缩放系数的确定有以下两种情况:
情况三:
第一长宽比与第二长宽比互为倒数,则第一缩放系数为第二分辨率长度与第一分辨率宽度的比值,第二缩放系数为第二分辨率宽度与第一分辨率长度的比值。
图4E示出了本发明屏幕同步方法情况三的具体实施例一的示意图,其描述了情况三中将大屏幕同步到小屏幕的情况;图4F示出了本发明屏幕同步方法情况三的具体实施例二的示意图,其描述了情况三中将小屏幕同步到大屏幕的 情况。
情况四:
第一长宽比与第二长宽比不互为倒数,则第一缩放系数为第三比值与第四比值之间的较小值,第二缩放系数为第三比值与第四比值之间的较大值,其中,第三比值为第二分辨率宽度与第一分辨率长度的比值,第四比值为第二分辨率长度与第一分辨率宽度的比值。
图4G示出了本发明屏幕同步方法情况四的具体实施例一的示意图,其描述了情况四中将大屏幕同步到小屏幕的情况;图4H示出了本发明屏幕同步方法情况四的具体实施例二的示意图,其描述了情况四中将小屏幕同步到大屏幕的情况。
在步骤S204中,将第二坐标上的显示数据设置为第一坐标的显示数据,以使第二屏幕显示第一屏幕的显示内容。
对于第一屏幕来说,其每个第一坐标均对应一个像素点,每个像素点通过视频输出设备的控制显示相应的颜色,从而屏幕中的所有像素点集合在一起,呈现出第一屏幕的显示内容。因此,将第二坐标上的像素点的显示数据设置为第一坐标的像素点的显示数据,就能够使第二屏幕同步显示出第一屏幕的显示内容,从而达到屏幕同步显示。
通过上述方案,无论是将较大的第一屏幕映射到较小的第二屏幕,还是将较小的第一屏幕映射到较大的第二屏幕,均可以实现以最佳比例完成对第一屏幕显示内容在第二屏幕上的同步显示,从而自适应地实现屏幕同步显示过程。
作为本发明的一个实施例,在实现了第一终端的第一屏幕在第二终端的第二屏幕上的同步显示之后,用户即可以通过控制第二终端,在第二屏幕上实现对第一屏幕的操作,图5示出了本发明屏幕同步方法第二实施例中的的实现流程,其在本发明图2所示实施例的基础上,还包括以下步骤:
在步骤S204之后的步骤S205中,检测发生在第二屏幕的操作事件,其中,操作事件发生在第二屏幕的第二坐标上。
在本发明实施例中,用户可以通过控制第二终端,在第二屏幕的第二坐标上产生操作事件,操作事件包括但不限于在该坐标上的点击事件或者鼠标轨迹经过事件,在本步骤中,对第二屏幕的第二坐标上的操作事件可以通过检测用户对第二终端的操作获取到。
在步骤S206中,根据第一坐标与第二坐标的映射关系,在第二坐标对应的第一坐标上产生该操作事件。
由于在步骤S103将第一屏幕的第一坐标映射成第二屏幕的第二坐标的过程中,已经建立了第一坐标与第二坐标之间的映射关系,因此,可以根据该映射关系,将第二坐标映射成第一坐标,从而将在第二坐标上产生的操作事件产生在其相应的第一坐标上。
例如,当第一坐标与第二坐标的映射关系为(X2,Y2)=(X1/d,Y1/d)时,则可以通过(X1,Y1)=(X2*d,Y2*d)将第二坐标映射成第一坐标,当第一坐标与第二坐标的映射关系为(X2,Y2)=(Y1*d1,X1*d2)时,则可以通过(X1,Y1)=(Y2/d2,X2/d1)将第二坐标映射成第一坐标,从而实现通过第二终端进行第一终端屏幕的同步控制。
以用户在同步显示了第一屏幕内容的第二屏幕上点击“关机”图标,由于点击的坐标为(X2,Y2),那么根据第一坐标与第二坐标的映射关系,在第一屏幕的坐标(X1,Y1)上,也产生了相同的点击操作,且根据第一屏幕和第二屏幕的坐标映射关系显示可以知道,在第一屏幕上的该点击操作实际点击的也是“关机”图标,由此即实现了通过第二终端对第一终端屏幕的同步控制。
本发明实施例中,根据进行同步显示的两个终端的屏幕分辨率来对屏幕坐标的映射关系进行自适应调整,从而实现多屏互动中的屏幕同步显示,无需再由用户手动进行设置,大大提高了多屏互动的操作效率。
图6示出了本发明屏幕同步装置第一实施例的的结构框图,该装置可以位于第一终端上、第二终端上或者独立于第一终端及第二终端的实体上,在此不一一限定。为了便于说明,仅示出了与本实施例相关的部分。
参照图6,该屏幕同步装置包括:
获取单元61,分别获取第一终端的第一屏幕的第一分辨率及第二终端的第二屏幕的第二分辨率。
确定单元62,根据所述第一分辨率与所述第二分辨率的大小关系确定缩放系数和旋转参数。
映射单元63,根据确定的所述缩放系数和所述旋转参数,将所述第一屏幕的第一坐标映射成所述第二屏幕的第二坐标。
设置单元64,将所述第二坐标上的显示数据设置为所述第一坐标的显示数据,以使所述第二屏幕显示所述第一屏幕的显示内容。
可选地,确定单元62进一步包括:
第一获取子单元,分别获取所述第一屏幕的第一长宽比和所述第二屏幕的第二长宽比,所述第一长宽比为第一分辨率长度与第一分辨率宽度的比值,所述第二长宽比为第二分辨率长度与第二分辨率宽度的比值。
第一设置子单元,当所述第一长宽比和所述第二长宽比均小于1或者均大于1时,设置所述旋转参数为第一参数,所述第一参数用于指示所述第一屏幕不需要旋转。
第一确定子单元,根据所述第一长宽比与所述第二长宽比的大小关系确定所述缩放系数。
所述映射单元63具体用于根据公式(X2,Y2)=(X1*d,Y1*d),将所述第一屏幕的第一坐标映射成所述第二屏幕的第二坐标,其中,所述X2、Y2分别为所述第二坐标的横坐标和纵坐标,所述X1、Y1分别为所述第一坐标的横坐标和纵坐标,所述d为所述缩放系数。
可选地,第一确定子单元具体用于:
当所述第一长宽比与所述第二长宽比相等时,确定所述缩放系数为所述第二屏幕的第二分辨率长度与所述第一屏幕的第一分辨率长度的比值,或者为所述第二屏幕的第二分辨率宽度与所述第一屏幕的第一分辨率宽度的比值;
当所述第一长宽比与所述第二长宽比不相等时,确定所述缩放系数为第一比值与第二比值之间的较小值,其中,所述第一比值为所述第一分辨率宽度与所述第二分辨率宽度的比值,所述第二比值为所述第一分辨率长度与所述第二分辨率长度的比值。
可选地,确定单元62包括:
第二获取子单元,分别获取所述第一屏幕的第一长宽比和所述第二屏幕的第二长宽比,所述第一长宽比为第一分辨率长度与第一分辨率宽度的比值,所述第二长宽比为第二分辨率长度与第二分辨率宽度的比值。
第二设置子单元,当所述第一长宽比和所述第二长宽比只有一个小于1时,设置所述旋转参数为第二参数,所述第二参数用于指示90度旋转所述第一屏幕。
第二确定子单元,根据所述第一长宽比与所述第二长宽比的大小关系确定所述缩放系数。
映射单元63具体用于根据(X2,Y2)=(Y1*d1,X1*d2)将所述第一屏幕的第一坐标映射成所述第二屏幕的第二坐标,其中,所述X2、Y2分别为所述第二坐标的横坐标和纵坐标,所述X1、Y1分别为所述第一坐标的横坐标和纵坐标,所述d1为第一缩放系数,所述d2为第二缩放系数。
可选地,第二确定子单元具体用于:
当所述第一长宽比与所述第二长宽比互为倒数,确定所述第一缩放系数为所述第二屏幕的第二分辨率长度与所述第一屏幕的第一分辨率宽度的比值,所述第二缩放系数为所述第二屏幕的第二分辨率宽度与所述第一屏幕的第一分辨率长度的比值;
当所述第一长宽比与所述第二长宽比不互为倒数,确定所述第一缩放系数为第三比值与第四比值之间的较小值,所述第二缩放系数为所述第三比值与所述第四比值之间的较大值,所述第三比值为所述第二分辨率宽度与所述第一分辨率长度的比值,所述第四比值为所述第二分辨率长度与所述第一分辨率宽度 的比值。
可选地,如图7所示,该屏幕同步装置除上述获取单元61、确定单元62、映射单元63、设置单元64外,还包括:
检测单元65,检测发生在所述第二屏幕的操作事件,所述操作事件发生在所述第二屏幕的所述第二坐标上。
产生单元66,根据所述第一坐标与所述第二坐标的映射关系,在所述第二坐标对应的所述第一坐标上产生所述操作事件。
图8示出了本发明屏幕同步装置所适用的第一功能框架图,在本实施例中,屏幕同步装置分别部署在第一终端和第二终端,为了便于说明,仅示出了与本实施例相关的部分。
参照图8,当进行屏幕同步显示时,第一终端81首先由屏幕抓取模块811调用系统函数实现第一屏幕的截屏,例如在Linux系统中,使用标准的LinuxFrame Buffer文件接口获取数据。屏幕压缩变换模块812根据本发明实施例提供的屏幕同步方法进行相应的坐标变换。视频编码模块813将屏幕压缩变换模块812的数据进行压缩处理并发送到传输缓冲814。传输缓冲814是视频编码模块813与传输服务815之间的适配接口,通过视频编码模块813调用后,传输到传输硬件模块816发射出去。而在第二终端82,通过硬件设备传输模块821,由数据包接收解析模块822接收到传输硬件模块816发射的数据包,并解析成解码模块823需要的格式,最终送到媒体播放模块824输出到传输硬件显示模块825。
图9示出了本发明屏幕同步装置所适用的第二功能框架图,在本实施例中,当进行屏幕同步控制时,如图9所示,第二终端82的通讯模块826将第二屏幕的操作事件发送至第一终端81的通讯模块817,并经由系统818进行坐标的反映射,从而呈现到第一屏幕819中。
用户的触屏及鼠标等操作通过通讯发射模块最终发射到屏幕一的通讯接收模块。图3中的通讯接收端部分负责接收屏幕二的鼠标或者触屏按下,弹起, 及其位置坐标等信息,并将相应的操作交由系统,由系统发送到相应的应用。
本发明实施例中,根据进行同步显示的两个终端的屏幕分辨率来对屏幕坐标的映射关系进行自适应调整,从而实现多屏互动中的屏幕同步显示,无需再由用户手动进行设置,大大提高了多屏互动的操作效率。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。