一种屏幕数据获得方法及装置与流程

文档序号:11690978阅读:206来源:国知局
一种屏幕数据获得方法及装置与流程

本发明涉及计算机技术领域,特别是涉及一种屏幕数据获得方法及装置。



背景技术:

屏幕数据是指设备屏幕呈现的画面对应的数据,实际中,例如手持终端的显示屏幕较小,可以将屏幕数据发送至其他的设备中,以进行放大显示。

但是,在现有技术中,一些操作系统未向应用开发者提供录制屏幕的功能接口,如ios(苹果公司的移动操作系统)设备由于系统接口的限制,对于用户来说常规的录屏软件就不能实现录屏,即就无法获得ios设备的屏幕数据。

因此,获得终端设备的屏幕数据是一种亟待解决的问题。



技术实现要素:

本发明实施例的目的在于提供一种屏幕数据发获得方法及装置,以实现获得终端设备的屏幕数据。具体技术方案如下:

一种屏幕数据获得方法,应用于屏幕数据接收端,所述方法包括:

基于目标操作系统发布镜像服务的信息时遵从的目标通信协议,发布镜像服务的目标信息,所述目标信息用于指示所述屏幕数据接收端与屏幕数据采集端建立镜像连接,其中,所述目标操作系统为:所述屏幕数据接收端和所述屏幕数据采集端所运行在的操作系统;

获得所述屏幕数据采集端发送的屏幕数据。

可选的,所述目标信息包括:用于建立镜像连接的目标端口号和所述屏幕数据接收端的ip地址;

所述目标操作系统的屏幕数据采集端根据所述目标信息感知所述屏幕数据接收端并与所述屏幕数据接收端建立镜像连接,包括:

所述目标操作系统的屏幕数据采集端根据所述ip地址感知所述屏幕数据接收端,并通过所述目标端口号对应的端口与所述屏幕数据接收端建立镜像连接。

可选的,所述方法还包括:

基于预设的镜像通信协议,建立用于与所述数据采集端进行交互的镜像协议栈;

所述获得所述屏幕数据采集端发送的屏幕数据,包括:

基于所述镜像协议栈,接收所述屏幕数据采集端发送的屏幕数据。

可选的,所述镜像通信协议为:无线播放协议;所述目标通信协议为组播协议。

可选的,所述方法还包括:

将所述屏幕数据发送至服务器。

一种屏幕数据获得装置,应用于屏幕数据接收端,所述装置包括:

发布模块,用于基于目标操作系统发布镜像服务的信息时遵从的目标通信协议,发布镜像服务的目标信息,所述目标信息用于指示所述屏幕数据接收端与屏幕数据采集端建立镜像连接,其中,所述目标操作系统为:所述屏幕数据接收端和所述屏幕数据采集端所运行在的操作系统;

获得模块,用于获得所述屏幕数据采集端发送的屏幕数据。

可选的,所述目标信息包括:用于建立镜像连接的目标端口号和所述屏幕数据接收端的ip地址;

所述发布模块,具体用于:

基于目标操作系统发布镜像服务的信息时遵从的目标通信协议,发布镜像服务的目标信息,所述目标操作系统的屏幕数据采集端根据所述ip地址感知所述屏幕数据接收端,并通过所述目标端口号对应的端口与所述屏幕数据接收端建立镜像连接。

可选的,所述装置还包括:

建立模块,用于基于预设的镜像通信协议,建立用于与所述数据采集端进行交互的镜像协议栈;

所述获得模块,具体用于:

基于所述镜像协议栈,获得所述屏幕数据采集端端发送的屏幕数据。

可选的,所述镜像通信协议为:无线播放协议;所述目标通信协议为组播协议。

可选的,所述装置还包括:

发送模块,用于将所述屏幕数据发送至服务器。

一种屏幕数据获得设备,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;

存储器,用于存放计算机程序;

处理器,用于执行存储器上所存放的程序时,实现上述任一屏幕数据获得方法所述的方法步骤。

在本发明实施的又一方面,还提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述任一所述的屏幕数据获得方法。

在本发明实施的又一方面,本发明实施例还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述任一所述的屏幕数据获得方法。

本发明实施例提供的一种屏幕数据获得方法、装置和设备,通过基于目标操作系统的屏幕数据接收端发布的目标信息,在屏幕数据采集端根据目标信息感知到屏幕数据接收端并与其建立镜像连接后,使得屏幕数据接收端能够获得屏幕数据采集端的屏幕数据。且整个过程并未用到录制屏幕的功能接口,因此能够解决现有技术中由于系统接口的限制,无法得到屏幕数据接收端设备的屏幕数据的问题。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍。

图1为本发明实施例提供的屏幕数据获得方法的一种流程示意图;

图2为本发明实施例提供的屏幕数据获得方法的另一种流程示意图;

图3为本发明实施例提供的屏幕数据获得方法的再一种流程示意图;

图4为应用本发明实施例提供的屏幕数据获得方法的一个实例的交互示意图;

图5为本发明实施例提供的屏幕数据获得装置的一种结构示意图;

图6为本发明实施例提供的屏幕数据获得装置的另一种结构示意图;

图7为本发明实施例提供的屏幕数据获得装置的再一种结构示意图;

图8为本发明实施例提供的屏幕数据获得设备的结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行描述。

需要说明的是,本发明实施例所提供的一种屏幕数据获得方法的执行主体可以为一种屏幕数据获得装置。在实际应用中,该屏幕数据获得装置可以运行于终端设备中。

为解决上述技术问题,本发明实施例提供一种屏幕数据获得方法及装置,以下分别进行详细说明。

参见图1,图1为本发明实施例提供的屏幕数据获得方法的一种流程示意图;所述方法包括步骤:

s101,基于目标操作系统发布镜像服务的信息时遵从的目标通信协议,发布镜像服务的目标信息,所述目标信息用于指示所述屏幕数据接收端与屏幕数据采集端建立镜像连接,其中,所述目标操作系统为:所述屏幕数据接收端和所述屏幕数据采集端所运行在的操作系统。

需要说明的是,终端设备上安装有目标操作系统,而屏幕数据接收端运行于目标操作系统上,例如,终端设备为手机,屏幕数据接收端为运行于目标操作系统上的软件;现在不同厂家的手机使用的操作系统不一样,可以是安卓操作系统、塞班操作系统、网际操作系统(internetworkoperatingsystem,简称:ios),安装了操作系统的手机可以实现手机中的应用软件与其他设备进行交互等操作。示例性的,苹果手机所运行在的操作系统为ios,那么,ios为目标操作系统。

在一种实现方式中,屏幕数据接收端为:目标操作系统中安装的应用软件,该应用软件发布镜像服务的信息;示例性的,在屏幕数据接收端为目标操作系统中安装的录屏应用软件,录屏应用软件发布镜像服务的信息,本发明实施例中屏幕数据获得方法的执行主体可以为该应用软件。

需要说明的是,屏幕数据接收端发布镜像服务的信息要达到的目的是:告诉周边的设备,目标操作系统中的屏幕数据接收端是一个可以实现镜像服务的设备,是镜像连接的触发条件。可以理解的是,通信的过程中,总有一方作为发起人,首先进行数据或者信号的传输,传输的方向可以是有目的(如点对点通信)的也可以无目的的(如广播)。

本发明实施例中,发布镜像服务的信息是没有目的的,只有在其他屏幕数据接收端或者是目标操作系统中的其他应用软件(智能终端中可以安装多个软件,软件之间也可以实现通信)接收镜像服务的信息,并进行信息反馈,才能实现通信连接。

本领域技术人员可以理解的是,屏幕数据接收端负责将镜像服务的信息发布出去,那么就存在一个接收该信息的信息接收方,且信息接收方与屏幕数据接收端达成一个固定的目标通信协议,按照目标通信协议双方进行信息的发送和接收。本发明实施例中,信息接收方为目标操作系统中的屏幕数据采集端,可以理解的是,屏幕数据采集端能够获得屏幕数据。

具体的,目标通信协议可以为组播协议,例如:组播dns(multicastdomainnamesystem,简称:mdns),使用5353端口(mdns规定的端口),在内网没有dns服务器时,就会出现此组播信息。在一个没有常规dns服务器的小型网络内,可以使用mdns来实现类似dns的编程接口、包格式和操作语义。另外,与屏幕数据接收端通信的目标操作系统的屏幕数据采集端也遵从目标通信协议,从而进行双方的信息交互。

具体的,当屏幕数据接收端发布镜像服务的信息为目标信息,目标信息用于指示屏幕数据接收端与屏幕数据采集端建立镜像连接。目标操作系统的屏幕数据采集端也采用目标通信协议接收屏幕数据接收端发布的镜像服务的目标信息。具体的,屏幕数据采集端可以为目标操作系统中的一个应用软件,也可以为目标操作系统中的一个功能模块;只要具有屏幕数据的采集功能即可,本发明实施例在此不做具体限定。以苹果手机为例,苹果手机的ios操作系统本身就是一个数据源设备,可以视为具有数据采集功能模块。

需要说明的是,目标信息中包含使屏幕数据采集端感知屏幕数据接收端的信息,用于数据采集端根据该信息感知屏幕数据接收端的存在。

示例性的,目标操作系统的屏幕数据采集端可以为目标操作系统中安装的应用程序a;应用程序a通过mdns协议接收屏幕数据接收端发送的目标信息,并从目标信息中获取信息,当获取到的信息为特定信息时,认为应用程序a感知到了屏幕数据接收端;否则,视为没有感知到屏幕数据接收端。具体的,特定信息可以是以一定的字符进行表示的字符串。

当目标操作系统的屏幕数据采集端感知到屏幕数据接收端以后,还需要同屏幕数据接收端建立镜像连接,可以理解的是,镜像是冗余的一种类型,目的是将一个存储区域上的数据在另一个存储区域上上存在一个完全相同的副本,实现镜像的过程,即为镜像连接。具体镜像连接的建立过程为现有技术,本发明实施例在此不对其进行赘述。

需要说明的是,在屏幕数据采集端、屏幕数据接收端两者之间建立镜像连接时,需要按照镜像通信协议栈建立镜像连接,所建立的镜像连接可以用于传送后续交互的数据。

在本发明的一种实现方式中,目标信息可以包括:用于建立镜像连接的目标端口号和所述屏幕数据接收端的ip地址,目标操作系统的屏幕数据采集端根据ip地址感知屏幕数据接收端,在感知到屏幕数据接收端后并通过目标信息中的目标端口号对应的端口与所述屏幕数据接收端建立镜像连接。

示例性的,目标操作系统的屏幕数据采集端接收到的目标信息中:屏幕数据接收端的ip地址为:192.168.5.21、用于建立镜像连接的目标端口号为6,那么对于目标操作系统的屏幕数据采集端来说,ip地址192.168.5.21的屏幕数据接收端可以提供镜像服务;并通过端口号6建立镜像连接。具体的,建立镜像连接的过程可以是:目标操作系统的屏幕数据采集端发送镜像连接请求;屏幕数据接收端接收到请求后确认是否允许建立镜像连接;如果允许,发送包含允许镜像连接的信息至屏幕数据采集端。在不允许建立镜像连接的情况下,屏幕数据接收端可以发送拒绝镜像连接的信息至屏幕数据采集端,也可以在不发送任何数据的情况下,默认为不允许镜像连接建立。

s102,获得所述屏幕数据采集端发送的屏幕数据。

需要说明的是,通过步骤s101所述的镜像连接定义可以得知,在目标操作系统的屏幕数据采集端根据目标信息感知到屏幕数据接收端,并与屏幕数据接收端建立镜像连接以后,屏幕数据采集端可以将屏幕数据发送给屏幕数据接收端,即实现了屏幕数据采集端的屏幕数据在屏幕数据接收端的共享。

应用本发明图1所示的实施例,通过基于目标操作系统的屏幕数据接收端发布的目标信息,在屏幕数据采集端根据目标信息感知到屏幕数据接收端并与其建立镜像连接后,使得屏幕数据接收端能够获得屏幕数据采集端的屏幕数据。且整个过程并未用到录制屏幕的功能接口,因此能够解决现有技术中由于系统接口的限制,无法得到屏幕数据接收端设备的屏幕数据的问题。

参见图2,图2为本发明实施例提供的屏幕数据获得方法的另一种流程示意图,在图1所示实施例的基础上,增加步骤s103;其中,

s103,基于预设的镜像通信协议,建立用于与所述数据采集端进行交互的镜像协议栈。

需要说明的是,协议栈是指网络中各层协议的总和,其形象的反映了一个网络中文件传输的过程:由上层协议到底层协议,再由底层协议到上层协议。而构建协议栈首先必须有通信协议,对于镜像通信协议顾名思义是为了实现镜像而采用的通信协议,具体的,可以有实现端口镜像的协议、无线播放协议,等等。

在本发明实施例中,通信协议为预设的镜像通信协议,用于建立屏幕数据接收端与数据采集端用于进行数据交互的规则,即镜像协议栈。屏幕数据采集端基于镜像协议栈设立的数据传输规则,发送屏幕数据至屏幕数据接收端,屏幕数据接收端进行接收屏幕数据。

本申请的一种实现方式中,预设的镜像通信协议为无线播放协议,即airplay协议。airplay协议是苹果公司实现的在苹果产品之间传输媒体流信息的一组协议,该协议还可以将手持智能终端设备(如ipad或者iphone)的整个屏幕投放到更大屏幕的电视机上,实现无线投屏的效果。当预设镜像协议为无线播放协议时,苹果公司的智能终端设备中均支持该协议,因此在苹果设备之间能够直接实现屏幕数据的发送。

具体的,s102可以为s102a:基于所述镜像协议栈,接收所述屏幕数据采集端发送的屏幕数据。

需要说明的是,屏幕数据接收端基于镜像协议栈接收屏幕数据采集端发送的屏幕数据,按照镜像协议栈的规则进行屏幕数据的传输能够保证数据传输过程的安全。

应用本发明图2所示的实施例,通过预设的镜像通信协议,屏幕数据接收端获得屏幕数据采集端发送的屏幕数据,能够进一步保证屏幕数据传输过程中的安全性。

参见图3,图3为本发明实施例提供的屏幕数据获得方法的再一种流程示意图,在图1所示实施例的基础上,增加步骤s104;其中,

s104,将所述屏幕数据发送至服务器。

可以理解的是,屏幕数据接收端在获得屏幕数据以后,将屏幕数据发送至服务器,服务器将该屏幕数据资源进行存储,当其他用户发对服务器中的该资源发送数据请求时,即可获得该数据。

基于本申请实施例所提供方案的直播场景中,主播屏幕数据接收端将所获得的屏幕数据发送至服务器,服务器再将主播屏幕数据接收端发送的屏幕数据广播至观看主播直播的用户屏幕数据接收端,从而实现直播。

示例性的,苹果手机的用户将当前正在进行的游戏画面对应的屏幕数据发送至某网站的直播服务器,直播服务器将游戏画面的屏幕数据存放在一站点中,当站点接收用户的数据请求时将屏幕数据发送至其他用户,实现了游戏过程的直播。

应用本发明图3所示的实施例,通过将屏幕数据接收端的屏幕数据发送至服务器,可以实现屏幕数据接收端的屏幕数据共享。

参见图4,图4为应用本发明实施例提供的屏幕数据获得方法的一个实例的交互示意图,本发明实施例中屏幕数据接收端和屏幕数据采集端均存在于同一个ios系统设备中,屏幕数据采集端为airplaysource(ios系统自带的功能,可以视为ios系统设备自身),屏幕数据接收端为airplaysink应用(可以视作一个虚拟的airplaysink设备)。

首先airplaysink应用通过组播协议发布自身是一个airplaysink(镜像服务中的接收方)服务的信息,并发布其ip地址和端口号;airplaysink通过airplay协议建立与airplaysource通信的镜像协议栈;airplaysource在接收到airplaysink服务的信息时,获得ip地址和端口号,并通过ip地址和端口号与airplaysink应用建立镜像连接;airplaysource将屏幕数据进行编码并发送至airplaysink应用;airplaysink应用接收屏幕数据。

另外,airplaysource和airplaysink应用可以存在于同一个ios系统设备中,也可以存在与不同的ios系统设备中,本发明实施例提供的技术方案均可以实现屏幕数据的获得,本发明实施例在此不对其进行具体限定。

应用本发明图4所示的实施例,通过ios系统设备本身实现虚拟airplaysink服务,解决ios系统设备不提供录屏接口的问题,可以实时的获取ios系统设备的屏幕画面,以实现游戏直播等。

参见图5,图5为本发明实施例提供的屏幕数据获得装置的一种结构示意图,所述装置包括:

发布模块501,用于基于目标操作系统发布镜像服务的信息时遵从的目标通信协议,发布镜像服务的目标信息,所述目标信息用于指示所述屏幕数据接收端与屏幕数据采集端建立镜像连接,其中,所述目标操作系统为:所述屏幕数据接收端和所述屏幕数据采集端所运行在的操作系统;

获得模块502,用于获得所述屏幕数据采集端发送的屏幕数据。

具体的,目标信息包括:用于建立镜像连接的目标端口号和所述屏幕数据接收端的ip地址;

所述发布模块501,可以用于:基于目标操作系统发布镜像服务的信息时遵从的目标通信协议,发布镜像服务的目标信息,所述目标操作系统的屏幕数据采集端根据所述ip地址感知所述屏幕数据接收端,并通过所述目标端口号对应的端口与所述屏幕数据接收端建立镜像连接。

应用本发明图5所示的实施例,通过基于目标操作系统的屏幕数据接收端发布的目标信息,在屏幕数据采集端根据目标信息感知到屏幕数据接收端并与其建立镜像连接后,使得屏幕数据接收端能够获得屏幕数据采集端的屏幕数据。且整个过程并未用到录制屏幕的功能接口,因此能够解决现有技术中由于系统接口的限制,无法得到屏幕数据接收端设备的屏幕数据的问题。

参见图6,图6为本发明实施例提供的屏幕数据获得装置的另一种结构示意图,在图5所示实施例的基础上,增加建立模块503;其中,

建立模块503,用于基于预设的镜像通信协议,建立用于与所述数据采集端进行交互的镜像协议栈;

所述获得模块502,具体用于:基于所述镜像协议栈,获得所述屏幕数据采集端端发送的屏幕数据。

应用本发明图6所示的实施例,通过预设的镜像通信协议,屏幕数据接收端获得屏幕数据采集端发送的屏幕数据,能够进一步保证屏幕数据传输过程中的安全性。

参见图7,图7为本发明实施例提供的屏幕数据获得装置的再一种结构示意图,在图5所示实施例的基础上,增加发送模块504;其中,

发送模块504,用于将所述屏幕数据发送至服务器。

应用本发明图7所示的实施例,通过将屏幕数据接收端的屏幕数据发送至服务器,可以实现屏幕数据接收端的直播。

本发明实施例还提供了一种屏幕数据获得设备,如图8所示,包括处理器801、通信接口802、存储器803和通信总线804,其中,处理器801,通信接口802,存储器803通过通信总线80完成相互间的通信,

存储器803,用于存放计算机程序;

处理器801,用于执行存储器803上所存放的程序时,实现

基于目标操作系统发布镜像服务的信息时遵从的目标通信协议,发布镜像服务的目标信息,所述目标信息用于指示所述屏幕数据接收端与屏幕数据采集端建立镜像连接,其中,所述目标操作系统为:所述屏幕数据接收端和所述屏幕数据采集端所运行在的操作系统;

获得所述屏幕数据采集端发送的屏幕数据。

上述屏幕数据获得设备的其他实现方式与前述方法实施例中提及的各种实现方式相同,这里不再赘述。

上述屏幕数据获得设备提到的通信总线可以是外设部件互连标准(peripheralpomponentinterconnect,简称pci)总线或扩展工业标准结构(extendedindustrystandardarchitecture,简称eisa)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。

通信接口用于上述屏幕数据获得设备与其他设备之间的通信。

存储器可以包括随机存取存储器(randomaccessmemory,简称ram),也可以包括非易失性存储器(non-volatilememory),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。

上述的处理器可以是通用处理器,包括中央处理器(centralprocessingunit,简称cpu)、网络处理器(networkprocessor,简称np)等;还可以是数字信号处理器(digitalsignalprocessing,简称dsp)、专用集成电路(applicationspecificintegratedcircuit,简称asic)、现场可编程门阵列(field-programmablegatearray,简称fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。

由以上可见,本实施例提供的技术方案中,上述设备通过基于目标操作系统的屏幕数据接收端发布的目标信息,在屏幕数据采集端根据目标信息感知到屏幕数据接收端并与其建立镜像连接后,使得屏幕数据接收端能够获得屏幕数据采集端的屏幕数据。且整个过程并未用到录制屏幕的功能接口,因此能够解决现有技术中由于系统接口的限制,无法得到屏幕数据接收端设备的屏幕数据的问题。

在本发明提供的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述实施例中任一所述的屏幕数据获得方法。

在本发明提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例中任一所述的屏幕数据获得方法。

在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(dsl))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,dvd)、或者半导体介质(例如固态硬盘solidstatedisk(ssd))等。,

需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置、设备、计算机可读存储介质、计算机程序产品实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

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