发明内容
本申请提供一种基于Web-based OS运行环境的屏幕影像传输播放方法,以解决现有的屏幕投射技术存在的问题。
本申请提供一种基于Web-based OS运行环境的屏幕影像传输播放方法,包括以下步骤:
投射端与播放端使用Web-based OS提供的点到点连接接口建立点到点通信链路;
投射端使用Web-based OS提供的屏幕访问接口访问屏幕影像,将屏幕影像实时转换为屏幕影像数据,并通过所述通信链路发送所述屏幕影像数据;
所述播放端接收所述屏幕影像数据,并使用Web-based OS提供的影像播放控件将屏幕影像数据绘制在屏幕上。
可选的,执行所述建立投射端与播放端的点到点通信链路的步骤之前,包括下述步骤:
投射端内置Web-based OS原始运行环境通过url访问一Web服务器,从该Web服务器载入投射端所需逻辑代码,并执行完成投射端注册初始化相关的代码;
播放端内置Web-based OS原始运行环境通过url访问所述Web服务器,从该Web服务器载入播放端所有逻辑代码,并执行完成播放端注册初始化相关的代码。
可选的,所述投射端与所述播放端在所述Web服务器的中介下,通过各自的注册信息建立所述的点到点通信链路。
可选的,所述Web-based OS运行环境为具有WebRTC应用的HTML5运行环境。
可选的,所述投射端与播放端使用Web-based OS提供的点到点连接接口建立点到点通信链路,是使用WebRTC的RTCPeerConnection接口建立。
可选的,所述投射端使用Web-based OS提供的屏幕访问接口访问屏幕影像,是通过WebRTC的MediaStream接口实现。
可选的,所述播放端使用的影像播放控件,是HTML5的Video控件。
可选的,所述使用Web-based OS提供的影像播放控件将屏幕影像数据绘制在屏幕上之前,还包括:
播放端内置Web-based OS运行环境选择下述分辨率之一播放所述屏幕影像数据:
播放端屏幕分辨率,或者发送端屏幕分辨率,或者自定义的屏幕分辨率。
可选的,所述投射端与播放端使用Web-based OS提供的点到点连接接口建立点到点通信链路的步骤中,所述点到点通信链路为以下形式之一:
同一局域网内的有线通信链路;或者,同一局域网内以Wifi或者蓝牙建立的无线通信链路;或者,互联网上建立的远程的点到点通信链路。
本申请另外提供一种基于Web-based OS运行环境的屏幕影像传输方法,包括:
使用Web-based OS提供的点到点连接接口建立与播放端的点到点通信链路;
使用Web-based OS提供的屏幕访问接口访问屏幕影像,将屏幕影像实时转换为屏幕影像数据,并通过所述通信链路向所述播放端发送。
可选的,执行所述建立与播放端的点到点通信链路的步骤之前,包括下述步骤:
内置Web-based OS原始运行环境通过url访问一Web服务器,从该Web服务器载入投射端所需逻辑代码,并执行完成初始化相关的代码,然后在该Web服务器上注册。
可选的,所述在该Web服务其上注册,是通过初始化完成后的Web-based OS运行环境,将获取到的设备的注册相关信息上传至所述Web服务器,完成注册。
可选的,所述使用Web-based OS提供的点到点连接接口建立与播放端的点到点通信链路步骤包括:
内置Web-based OS运行环境定义一个新的RTCPeerConnection接口,并完成所述RTCPeerConnection接口的初始化;
内置Web-based OS运行环境向播放端发出点到点的连接请求消息;
收到播放端反馈的答复消息后,执行RTCPeerConnection接口连接的相关代码,与播放端之间建立点到点通信链路。
可选的,所述屏幕影像数据的读取以及发送过程如下:
内置Web-based OS运行环境定义并初始化一个新的MediaStream接口,并通过所述MediaStream接口读取当前屏幕的屏幕影像数据;
内置Web-based OS运行环境WebRTC运行环境将上述获取到的当前屏幕影像数据添加到上述RTCPeerConnection接口中,所述RTCPeerConnection接口将该屏幕影像数据通过上述点到点的通信链路发送至播放端。
本申请还提供一种基于Web-based OS运行环境的屏幕影像播放方法,包括:
使用Web-based OS提供的点到点连接接口建立与投射端之间的点到点通信链路;
将接收到的所述屏幕影像数据使用Web-based OS提供的影像播放控件绘制在屏幕上。
可选的,执行所述建立与投射端的点到点通信链路的步骤之前,包括下述步骤:
内置Web-based OS原始运行环境通过url访问一Web服务器,从该Web服务器载入投射端所需逻辑代码,并执行完成播放端初始化相关的代码,然后在该Web服务器上注册。
可选的,所述在该Web服务器上注册,是通过初始化完成后的Web-based OS运行环境,将获取到的设备信息上传至所述Web服务器,完成注册。
可选的,所述使用Web-based OS提供的点到点连接接口建立与投射端的点到点通信链路步骤包括:
内置Web-based OS运行环境定义一个新的RTCPeerConnection接口,并完成所述RTCPeerConnection接口的初始化;
内置Web-based OS运行环境接收到来自投射端点到点的连接请求消息,向投射端返回答复消息后执行RTCPeerConnection接口连接的相关代码建立与投射端之间的点到点通信链路。
可选的,所述将接收到的所述屏幕影像数据,使用Web-based OS提供的影像播放控件将屏幕影像数据绘制在屏幕上,具体播过程如下:
内置Web-based OS运行环境定义初始化一个新的Video控件;
通过所述Video控件获取上述RTCPeerConnection接口接收的屏幕影像数据;
内置Web-based OS运行环境选择在播放端的屏幕分辨率或者投射端分辨率或者自定义分辨率中选择一个分辨率;
所述Video控件将上述屏幕影像数据根据选定的屏幕分辨率绘制到当前播放端屏幕上。
本申请还提供一种基于Web-based OS运行环境的屏幕影像传输播放装置,包括:
通信链路建立单元,用于在投射端与播放端之间使用Web-based OS提供的点到点连接接口建立点到点通信链路;
屏幕影像数据转换单元,用于在投射端使用Web-based OS提供的屏幕访问接口访问屏幕影像,将屏幕影像实时转换为屏幕影像数据,并通过所述点对点通信链路发送所述屏幕影像数据;
屏幕影像数据播放单元,用于在播放端接收所述屏幕影像数据,并使用Web-based OS提供的影像播放控件将屏幕影像数据绘制在屏幕上。
可选的,,所述基于Web-based OS运行环境的屏幕影像传输播放装置还包括注册初始化单元,该注册初始化单元包括:
连接服务器子单元,用于投射端以及播放端内置Web-based OS原始运行环境与Web服务器之间建立连接;
注册初始化子单元,用于投射端以及播放端通过各自内置Web-based OS原始运行环境通过url访问一Web服务器,从该Web服务器载入投射端以及播放端各自注册初始化所需逻辑代码,并执行该注册初始化相关的代码。
可选的,所述基于Web-based OS运行环境的屏幕影像传输播放装置还包括:
屏幕分辨率选择单元,用于播放端内置Web-based OS运行环境选择下述分辨率之一播放所述屏幕影像数据:
播放端屏幕分辨率,或者发送端屏幕分辨率,或者自定义的屏幕分辨率。
与现有技术相比,本申请的技术方案具有以下优点:
1、具有广泛的通用性。由于本申请基于普通内置Web-based OS运行环境即可实现,而无需安装专门的支持软件,使其具有广泛的通用性,可以在多种电子设备之间实现屏幕投射。
2、显著降低了应用门槛。本申请的技术方案不需要安装专门的支持软件即可实现电子设备之间的屏幕投射,显著降低了屏幕投射设备的门槛,使目前大部分的设备都可以使用该技术方案实现屏幕投射。同样由于不需要安装专门的支持软件,显著降低了一般使用者应用难度,使更多使用者有可能使用该技术。
此外,该技术方案中,进行屏幕投射的设备之间可以通过局域网内的无线连接,而且可以通过有线连接,也可以通过互联网连接,增加了屏幕投射的投射范围以及屏幕投射技术的使用范围。由于无需购置专门的投射装置或者安装特定的软件,也使其具有较低的实施成本。
具体实施方式
在下面的描述中阐述了很多具体细节以便于充分理解本申请。但是本申请能够以很多不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本申请内涵的情况下做类似推广,因此本申请不受下面公开的具体实施的限制。
参照图1,其示出了根据本申请实施例一提供的基于Web-based OS运行环境的屏幕影像传输播放方法的系统架构图。
本实施例提供了一种基于Web-based OS运行环境的屏幕影像传输播放方法,该方法包括:投射端与播放端使用Web-based OS提供的点到点连接接口通过Web服务器的中介建立点到点通信链路;投射端使用Web-based OS提供的屏幕访问接口访问屏幕影像数据,并通过所述通信链路将屏幕影像数据发送至播放端;所述播放端接收到屏幕影像数据后,使用Web-based OS提供的影像播放控件选择合适的屏幕分辨率将屏幕影像数据绘制在播放端当前屏幕上以实现播放。
需要说明的是,Web服务器是指驻留于因特网上某种类型计算机的程序,该程序可以向发出请求的浏览器提供文档,并且可以向Internet上的Web浏览器(客户端)提供WWW、Email和FTP等各种Internet服务。Web服务器是一种被动程序:只有当Internet上运行在其他计算机中的Web浏览器(客户端)发出请求时,Web服务器才会响应。当Web浏览器(客户端)连接到Web服务器上并请求文件时,Web服务器将处理该请求并将文件反馈到该Web浏览器(客户端)上,附带的信息会告诉Web浏览器(客户端)如何查看该文件(即文件类型)。
进一步地,投射端以及播放端要想与Web服务器之间建立连接,必须具备上述的Web浏览器(客户端)。在本实施例中,所述的Web浏览器(客户端)是指投射端和播放端内置的Web-based OS运行环境。Web-based OS运行环境是以承载和运行web代码为主的操作系统,该操作系统的实现方式有多种,目前一种比较可行的方案是基于HTML5技术进行开发,在此情况下,该Web-based OS运行环境支持HTML5的特性,尤其支持HTML5的支持网页浏览器进行实时语音对话或视频对话的技术,例如WebRTC技术。
参照图2,其示出了根据本申请实施例一提供的一种基于Web-based OS运行环境的屏幕影像传输播放方法的步骤流程图。
S101;投射端以及播放端通过内置Web-based OS原始运行环境与Web服务器建立连接后访问Web服务器获得初始化代码,并执行该初始化代码。
需要说明的是,Web服务器与Web浏览器(客户端)之间的信息交流是通过HTTP(超文本传输协议)进行交流的。Web浏览器(客户端)要想访问Web服务器获得信息,必须与Web服务器之间建立HTTP连接。本实施例中,投射端以及客户端内置Web-based OS原始运行环境与Web服务器之间建立HTTP连接的步骤如下:
1)投射端以及播放端通过拨号分别与各自的访问路由器之间建立物理连接;所述物理连接可以是有线连接,如光缆连接;也可以是无线连接,如WIFI、蓝牙等;
2)投射端以及播放端通过各自内置Web-based OS原始运行环境获取本机IP地址;
3)投射端以及播放端通过各自内置Web-based OS原始运行环境与访问路由器之间建立数据链路;
4)投射端以及播放端通过各自内置Web-based OS原始运行环境获取Web服务器的IP地址;
5)投射端以及播放端通过各自内置Web-based OS原始运行环境与Web服务器之间建立TCP连接;
6)投射端以及播放端通过各自内置Web-based OS原始运行环境与Web服务器之间建立HTTP连接。该步骤完成后,投射端以及播放端内置Web-based OS运行环境与Web服务器之间可以进行访问以及信息的交流。
完成上述投射端以及播放端与Web服务器的连接之后,投射端以及播放端就可以分别通过内置Web-based OS原始运行环境访问Web服务器获得各自的初始化代码,并执行该初始化代码,完成初始化。具体步骤如下:
投射端以及播放端向Web服务器发出访问Web服务器的访问请求消息,Web服务器收到该访问请求消息后,向投射端以及播放端反馈同意访问的消息,投射端以及播放端收到该Web服务器反馈同意访问的消息后,投射端以及播放端内置Web-based OS原始运行环境通过URL访问web服务器,载入投射端以及播放端各自初始化所需要的所有的逻辑代码,Web-based OS运行环境载入上述初始化逻辑代码完成之后,执行该初始化逻辑代码并完成投射端以及播放端各自的初始化。初始化完成后,投射端即具有了运行屏幕投射所需的完整的Web-based OS运行环境,播放端也具有了将所接收的屏幕影像数据绘制到屏幕的完整的Web-based OS运行环境。
此处需要说明的是,投射端以及播放端内置Web-based OS原始运行环境在不同设备中可能有所区别。一些投射端设备已经内置了完整的Web-based OS运行环境,可以直接进行屏幕投射的操作,或者一些播放端设备内置了完整的Web-based OS运行环境,当接收到投射端发送的屏幕影像数据时,能够直接将所述屏幕影像数据在当前设备屏幕播放,但一些设备可能仅仅具有Web-basedOS原始运行环境,该环境使其具有基本的网络连接功能,但是并不具有一些复杂的功能,这些功能应当根据需要,通过访问Web服务器获得。此处假设上述的投射端和播放端仅仅设置了Web-based OS原始运行环境。上述所说的初始化,是在Web-based OS原始运行环境的基础上,使其具备完整的Web-based OS运行环境的过程。在本实施例中,所述Web-based OS运行环境具体为HTML5运行环境。该运行环境下需要支持WebRTC架构组件,WebRTC是Web Real-TimeCommunication的缩写,中文名称可以称为网页实时通讯,该架构组件用于支持网页浏览器之间进行实时语音对话或视频对话。
S102;投射端以及播放端通过内置Web-based OS运行环境向Web服务器提交注册信息。
投射端以及播放端具有了完整的HTML5环境后,投射端以及播放端就可以实现更多的功能。注册的目的是为了通过Web服务器的中介建立投射端和播放端之间的通信链路。具体的注册过程如下:
第一步,投射端以及播放端分别获取本机的设备信息,所述的设备信息包括:本机IP地址、设备标识以及设备的屏幕分辨率;
第二步,投射端以及播放端通过各自内置Web-based OS运行环境将本机的设备信息发送至Web服务器,完成注册。
S103;投射端执行内置Web-based OS运行环境提供的RTCPeerConnection接口相关代码以及配置播放端信息的代码。
本步骤所述的RTCPeerConnection接口是WebRTC架构组件提供的一个面向第三方开发者的WebRTC标准API(应用程序编程接口),该API允许用户在两个正在运行的浏览器之间直接建立通信关系。
本步骤中投射端使用内置Web-based OS运行环境执行RTCPeerConnection接口相关代码以及投射端配置播放端信息相关代码的执行过程如下:
需要说明的是,本实施例所述的与RTCPeerConnection接口相关代码以及配置播放端信息相关代码仅仅是指目前建立投射端与播放端二者之间点到点通信链路的一种方法所对应的代码,除此之外,也可以采用与本实施例所描述的代码相类似或者之外的代码实现相同的功能(即在投射端与播放端之间建立点到点通信链路),在此不作限制。
另外,还需要说明的是,所述的一个RTCPeerConnection对象允许两个浏览器之间直接通讯,该通信是通过一个信号通道来协调;同时,这个连接还可以用于中转语音和视频的数据。在实际的应用当中,采用上述RTCPeerConnection接口建立的点到点通信链路来传输屏幕影像数据时,对网络带宽的要求比较高。一般要求保证投射端和播放端在同一局域网内,并且投射端和播放端两端都通过有线连接或者WIFI连接的方式连接到同一路由器;此外,在云OS平台实施的效果最佳,能够最大程度的保证屏幕投射的图像质量以及实时性。在保证屏幕投射的图像质量以及实时性的前提下,也可以采用其他的连接方式,在此不做限制。
S104;播放端执行内置Web-based OS提供的RTCPeerConnection接口相关代码以及配置投射端信息的代码。
与上述步骤S103中相对应的,播放端内置Web-based OS运行环境执行RTCPeerConnection接口相关代码,以及播放端配置投射端信息相关代码的执行过程如下:
需要说明的是,本实施例所述的与RTCPeerConnection接口相关代码以及配置接收端信息相关代码仅仅是指目前建立投射端与播放端二者之间点到点通信链路的一种方法所对应的代码,也可以采用与本实施例所描述的代码相类似或者之外的代码实现相同的功能(即:在投射端与播放端之间建立点到点通信链路),在此不作限制。
执行完上述步骤S103和步骤S104以后,则完成了投射端与播放端之间点到点通信链路的建立。
S105;投射端通过Web-based OS提供的MediaStream接口访问投射端屏幕,将获取到的屏幕影像数据通过上述步骤建立的点到点通信链路发送至播放端。
1)投射端通过内置Web-based OS提供的MediaStream接口调用当前投射端的屏幕影像数据;
MediaStream接口调用投射端当前屏幕影像数据的代码执行过程如下:
MediaStream接口获取到投射端当前的屏幕影像数据后,通过上述步骤S103和步骤S104建立的点到点通信链路将该屏幕影像数据发送至播放端。
需要说明的是,上述MediaStream接口用来表示一段向远端节点发送的数据流或者是从远端节点接受的数据流。此外,上述的MediaStream接口指本实施例采取的一种目前调用屏幕影像数据的方法,也可以采用其它的接口或者方法来获取屏幕影像数据,在此不做限制。
2)屏幕影像数据转换为超文本标记语言HTML5支持的音视频流,本实施例中,是将屏幕影像数据转换为内置Web-based OS运行环境支持的音视频流;
需要说明的是,超文本标记语言(英文:Hypertext Markup Language,简称:HTML)5支持的音视频流包括但不限于OGG格式、WEBM格式和MP4格式,如果屏幕影像数据是音频信号可以转换为OGG格式,如果屏幕影像数据是视频信号可以转换为WEBM格式或MP4格式,由于部分浏览器不支持WEBM格式,如IE浏览器,而MP4即支持音频信号也支持视频信号,因此MP4格式是最优选择;
进一步需要说明的是,目前主流浏览器包括火狐、网际浏览(InternetExplorer,简称:IE)、谷歌浏览器、傲游浏览器、360浏览器和腾讯浏览器等都支持HTML5标准,因此可以播放HTML5支持的音视频流;
3)所述MediaStream接口被上述步骤S104中RTCPeerConnection接口调用,即:MediaStream接口获取到屏幕影像数据转换后的音视频流通过RTCPeerConnection接口发送至播放端。
S106;播放端接收到来自投射端发送的屏幕影像数据后,播放端内置Web-based OS运行环境选择合适的屏幕分辨率。
播放端通过RTCPeerConnection接口接收到来自投射端发送的屏幕影像数据后,播放端内置Web-based OS运行环境选择在当前屏幕播放所述屏幕影像数据采用的屏幕分辨率,可选择的分辨率有:播放端屏幕分辨率,或者发送端屏幕分辨率,或者自定义的屏幕分辨率。选择好分辨率后,执行下一步操作。
S107;播放端使用Web-based OS提供的Video控件将屏幕数据绘制在播放端当前屏幕上。
播放端通过Web-based OS提供HTML5的一个Video控件将所述音视频流绘制到当前屏幕上。具体代码执行过程如下:
需要说明的是,上述的Video控件指本实施例采取的一种目前将接收到的屏幕影像数据在当前屏幕播放的方法,也可以采用其它控件或者方法来播放屏幕影像数据,在此不做限制。
本实施例中使用的具体的代码,以及具体使用环境,随着技术发展可能会有所变化,只要是通过两个浏览器之间的通讯实现屏幕影像数据的传输播放即可。
本申请第二实施例提供一种基于Web-based OS运行环境的屏幕影像传输方法。
参照图3,其示出了根据本申请实施例二提供的投射端投射屏幕的步骤流程图。
S201;投射端通过内置Web-based OS原始运行环境与Web服务器建立连接。
Web服务器是指驻留于因特网上某种类型计算机的程序,该程序可以向发出请求的浏览器提供文档,并且可以向Internet上的Web浏览器(客户端)提供WWW、Email和FTP等各种Internet服务。Web服务器是一种被动程序:只有当Internet上运行在其他计算机中的Web浏览器(客户端)发出请求时,Web服务器才会响应。当Web浏览器(客户端)连接到Web服务器上并请求文件时,Web服务器将处理该请求并将文件反馈到该Web浏览器(客户端)上,附带的信息会告诉Web浏览器(客户端)如何查看该文件(即文件类型)。
进一步地,投射端以及播放端要想与Web服务器之间建立连接,必须具备上述的Web浏览器(客户端)。在本实施例中,所述的Web浏览器(客户端)是指投射端和播放端内置Web-based OS运行环境。Web-based OS运行环境是以承载和运行web代码为主的操作系统,该操作系统的实现方式有多种,目前一种比较可行的方案是基于HTML5技术之进行开发,在此情况下,该Web-based OS运行环境支持HTML5的特性,尤其支持HTML5的支持网页浏览器进行实时语音对话或视频对话的技术,例如WebRTC技术。
更近一步地,Web服务器与Web浏览器(客户端)之间的信息交流是通过HTTP(超文本传输协议)进行交流的。Web浏览器(客户端)要想访问Web服务器获得信息,首先必须与Web服务器之间建立HTTP连接。本实施例中,投射端内置Web-based OS原始运行环境与Web服务器建立HTTP连接的步骤如下:
1)投射端通过拨号与访问路由器之间建立物理连接;所述物理连接可以是有线连接,如光缆连接;也可以是无线连接,如WIFI、蓝牙等;
2)投射端通过内置Web-based OS原始运行环境获取本机IP地址;
3)投射端通过内置Web-based OS原始运行环境与访问路由器之间建立数据链路;
4)投射端通过内置Web-based OS原始运行环境获取Web服务器的IP地址;
5)投射端通过内置Web-based OS原始运行环境与Web服务器之间建立TCP连接;
6)投射端通过内置Web-based OS原始运行环境与Web服务器之间建立HTTP连接。该步骤完成后,投射端内置Web-based OS原始运行环境与Web服务器之间可以进行访问以及信息的交流。
S202;投射端通过内置Web-based OS原始运行环境访问Web服务器获得初始化代码,并执行该初始化代码。
投射端内置Web-based OS原始运行环境在不同设备中可能有所区别。一些投射端设备已经内置了完整的Web-based OS运行环境,可以直接进行屏幕投射的操作,但一些设备可能仅仅具有Web-based OS初始环境,该环境使其具有基本的网络连接功能,但是并不具有一些复杂的功能,这些功能应当根据需要,通过访问Web服务器获得。此处假设投射端仅仅设置了Web-based OS原始运行环境。
首先,投射端向Web服务器发出访问Web服务器的访问请求消息,Web服务器收到该访问请求消息后,向投射端反馈同意访问的消息,投射端收到该Web服务器反馈的同意访问的消息后,投射端内置Web-based OS原始运行环境通过URL访问web服务器,载入投射端初始化所需要的所有的逻辑代码,Web-basedOS原始运行环境载入上述初始化逻辑代码完成之后,执行该初始化逻辑代码并完成投射端的初始化。初始化完成后,投射端即具有了运行屏幕投射所需的完整的Web-based OS运行环境。
S203;投射端通过内置Web-based OS运行环境向Web服务器提交注册信息。
投射端具有了完整的HTML5环境后,投射端就设备可以实现更多的功能。注册的目的是为了通过Web服务器的中介建立投射端和播放端之间的通信链路。具体的注册过程如下:
第一步,投射端获取本机的设备信息,所述的设备信息包括:本机IP地址、设备标识以及设备的屏幕分辨率;
第二步,投射端通过内置Web-based OS运行环境将本机的设备信息发送至Web服务器,完成注册。
S204;投射端使用Web-based OS提供的点到点连接接口连接到播放端。
本步骤所述的点到点连接接口是指RTCPeerConnection接口,RTCPeerConnection接口是WebRTC架构组件提供的一个面向第三方开发者的WebRTC标准API(应用程序编程接口),该API允许用户在两个正在运行的浏览器之间直接建立通信关系。
本步骤中投射端使用内置Web-based OS运行环境执行RTCPeerConnection接口相关代码以及投射端配置播放端信息相关代码的执行过程如下:
需要说明的是,本实施例所述的与RTCPeerConnection接口相关代码以及配置播放端信息相关代码仅仅是指目前建立投射端与播放端二者之间点到点通信链路的一种方法所对应的代码,也可以采用与本实施例所描述的代码相类似或者之外的代码实现相同的功能(即:在投射端与播放端之间建立点到点通信链路),在此不作限制。
另外,还需要说明的是,所述的一个RTCPeerConnection对象允许两个浏览器之间直接通讯,该通信是通过一个信号通道来协调;同时,这个连接还可以用于中转语音和视频的数据。在实际的应用当中,采用上述RTCPeerConnection接口建立的点到点通信链路来传输屏幕影像数据时,对网络带宽的要求比较高。一般要求保证投射端和播放端在同一局域网内,并且投射端和播放端两端都通过有线连接或者WIFI连接的方式连接到同一路由器;此外,在云OS平台实施的效果最佳,能够最大程度的保证屏幕投射的图像质量以及实时性。在保证屏幕投射的图像质量以及实时性的前提下,也可以采用其他的连接方式,在此不做限制。
S205;投射端通过Web-based OS提供的MediaStream接口获取屏幕影像数据并通过上述S204步骤建立的点到点通信链路将所述屏幕影像数据发送至播放端。
投射端通过内置Web-based OS提供的MediaStream接口调用投射端当前屏幕影像数据的代码执行过程如下:
MediaStream接口获取到投射端当前的屏幕影像数据后,通过上述步骤S204步骤建立的点到点通信链路将该屏幕影像数据发送至播放端。
上述MediaStream接口用来表示一段向远端节点发送的数据流或者是从远端节点接受的数据流。需要说明的是,上述的MediaStream接口指本实施例采取的一种目前调用屏幕影像数据的方法,也可以采用其它的接口或者方法来获取屏幕影像数据,在此不做限制。
2)屏幕影像数据转换为超文本标记语言HTML5支持的音视频流,本实施例中,是将屏幕影像数据转换为内置Web-based OS运行环境支持的音视频流;
需要说明的是,超文本标记语言(英文:Hypertext Markup Language,简称:HTML)5支持的音视频流包括但不限于OGG格式、WEBM格式和MP4格式,如果屏幕影像数据是音频信号可以转换为OGG格式,如果屏幕影像数据是视频信号可以转换为WEBM格式或MP4格式。目前,由于部分浏览器不支持WEBM格式,如IE浏览器,而MP4即支持音频信号也支持视频信号,因此MP4格式是当前最优选择;
进一步需要说明的是,目前主流浏览器包括火狐、网际浏览(InternetExplorer,简称:IE)、谷歌浏览器、傲游浏览器、360浏览器和腾讯浏览器等都支持HTML5标准,因此可以播放HTML5支持的音视频流;
3)所述MediaStream接口被上述步骤S204中RTCPeerConnection接口调用,即:MediaStream接口获取到屏幕影像数据转换后的音视频流通过RTCPeerConnection接口发送至播放端。
上述介绍的一些具体的使用环境和支持情况,只是目前的情况,随着技术的发展,情况可能发生变化,但并不影响本实施例的实质内容。
本申请实施例三提供一种基于Web-based OS运行环境的屏幕影像播放方法,该方法和上述第二实施例提供的基于Web-based OS运行环境的屏幕影像传输方法相配合,以实现屏幕影像在本地浏览器的播放。
参照图4,其示出了根据本申请实施例三提供的屏幕影像播放方法的流程图。
S301;播放端通过内置Web-based OS运行环境与Web服务器建立连接。
与上述实施例二中步骤S201当中描述的投射端通过内置Web-based OS原始运行环境与Web服务器建立连接的过程类似,本步骤所述的投射端与Web服务器建立连接HTTP的步骤如下:
1)播放端通过拨号与访问路由器之间建立物理连接;所述物理连接可以是有线连接,如光缆连接;也可以是无线连接,如WIFI、蓝牙等;
2)播放端通过内置Web-based OS原始运行环境获取本机IP地址;
3)播放端通过内置Web-based OS原始运行环境与访问路由器之间建立数据链路;
4)播放端通过内置Web-based OS原始运行环境获取Web服务器的IP地址;
5)播放端通过内置Web-based OS原始运行环境与Web服务器之间建立TCP连接;
6)播放端通过内置Web-based OS原始运行环境与Web服务器之间建立HTTP连接。该步骤完成后,播放端内置Web-based OS原始运行环境与Web服务器之间可以进行访问以及信息的交流。
S302;播放端通过内置Web-based OS原始运行环境访问Web服务器获得初始化代码,并执行该初始化代码。
播放端通过内置Web-based OS原始运行环境通过步骤S301建立的连接向Web服务器发出访问的消息请求,Web服务器收到该消息请求后,向播放端反馈同意访问的消息,播放端收到该Web服务器反馈的消息后,通过内置Web-based OS原始运行环境通过URL访问web服务器并从该服务器载入播放端初始化所需要的所有的逻辑代码,载入初始化逻辑代码完成后,执行该初始化逻辑代码并完成播放端的初始化。初始化完成后,完整的Web-based OS运行环境即完全建立。
S303;播放端通过内置Web-based OS运行环境向Web服务器提交注册信息。
注册过程就是播放端首先获取本机的设备信息,所述的本地设备信息包括:本机IP地址、设备标识以及设备的屏幕分辨率;其次播放端通过内置Web-basedOS运行环境将本机的设备信息发送至Web服务器,完成注册。
S304;播放端使用Web-based OS提供的点到点连接接口与投射端建立点到点通信链路。
与上述实施例二当中的步骤S204相对应,播放端使用Web-based OS提供的RTCPeerConnection接口连接到投射端的具体连接过程如下:
//基于ICE建立连接
需要说明的是,本实施例所述的与RTCPeerConnection接口相关代码以及配置接收端信息的代码仅仅是指目前建立投射端与播放端二者之间点到点通信链路的一种方法所对应的代码,也可以采用与本实施例所描述的代码相类似或者之外的代码实现相同的功能(即:在投射端与播放端之间建立点到点通信链路),在此不作限制。
本步骤与相对应的步骤S204都完成以后,则投射端与播放端之间的点到点通信链路建立完成。
S305;播放端通过RTCPeerConnection接口接收到来自投射端发送的屏幕影像数据后,播放端内置Web-based OS运行环境选择在当前屏幕播放所述屏幕影像数据采用的屏幕分辨率,可选择的分辨率有:播放端屏幕分辨率,或者发送端屏幕分辨率,或者自定义的屏幕分辨率。选择好分辨率后,执行下一步操作。
S306;播放端使用HTML5的Video控件将屏幕影像数据绘制在当前屏幕上。
首先由上述步骤S304中的RTCPeerConnection接口接收到对应步骤S205投射端发送的音视频流;
播放端通过Web-based OS提供HTML5的一个Video控件将所述音视频流绘制到当前屏幕上。具体代码执行过程如下:
需要说明的是,上述的Video控件指本实施例采取的一种目前将接收到的屏幕影像数据在当前屏幕播放的方法,也可以采用其它控件或者方法来播放屏幕影像数据,在此不做限制。
本申请第四实施例提供一种基于Web-based OS运行环境的屏幕影像传输播放装置。
参照图5,其示出了根据本申请实施例四提供的基于Web-based OS运行环境的屏幕影像传输播放装置的单元框图。
如图5所示,本实施例提供的基于Web-based OS运行环境的屏幕影像传输播放装置包括:注册初始化单元401、通信链路建立单元402、屏幕影像数据转换单元403、屏幕分辨率选择单元404和屏幕影像数据播放单元405。
所述注册初始化单元401包括连接服务器子单元401-1和注册初始化子单元401-2。
连接服务器子单元401-1,用于投射端以及播放端内置Web-based OS原始运行环境与Web服务器之间建立连接;
需要说明的是,Web服务器与Web浏览器(客户端)之间的信息交流是通过HTTP(超文本传输协议)进行交流的。本实施例中,投射端以及播放端内置Web-based OS原始运行环境要想访问Web服务器并从Web服务器获得数据信息,则必须与Web服务器之间建立HTTP连接。
注册初始化子单元401-2,包括两个子单元:初始化子单元和注册子单元。
初始化子单元用于投射端以及播放端向Web服务器发出访问Web服务器的访问请求消息,Web服务器收到该访问请求消息后,向投射端以及播放端反馈同意访问的消息,投射端以及播放端收到该Web服务器反馈的同意访问的消息后,投射端以及播放端内置Web-based OS原始运行环境通过URL访问web服务器,载入投射端以及播放端各自初始化所需要的所有的逻辑代码,Web-basedOS原始运行环境载入上述初始化逻辑代码完成之后,执行该初始化逻辑代码并完成投射端以及播放端各自的初始化。初始化完成后,投射端即具有了运行屏幕投射所需的完整的Web-based OS运行环境,播放端也具有了将所接收的屏幕影像数据绘制到屏幕的完整的Web-based OS运行环境。
注册子单元用于投射端以及播放端通过各自内置Web-based OS运行环境获取本机的设备信息并将该设备信息发送至Web服务器,完成注册。所述设备信息包括:本机IP地址、设备标识以及设备的屏幕分辨率。
所述通信链路建立单元402,用于在投射端执行内置Web-based OS运行环境提供的RTCPeerConnection接口相关代码以及配置播放端信息的代码;以及在播放端执行内置Web-based OS提供的RTCPeer Connection接口相关代码以及配置投射端信息的代码。所述投射端和播放端的代码执行完毕后,建立投射端与播放端之间的点到点通信链路。
所述屏幕影像数据转换单元403用于投射端通过Web-based OS提供的MediaStream接口访问投射端屏幕并获取到屏幕影像数据;并将获取到屏幕影像数据转换为超文本标记语言HTML5支持的音视频流,本实施例中,是将屏幕影像数据转换为内置Web-based OS运行环境支持的音视频流;并通过上述的RTCPeer Connection接口将所述音视频流发送至播放端。
所述屏幕分辨率选择单元404,用于播放端通过RTCPeerConnection接口接收到来自投射端发送的屏幕影像数据后,播放端内置Web-based OS运行环境选择在当前屏幕播放所述屏幕影像数据采用的屏幕分辨率。本实施例中,可选择的屏幕分辨率包括:播放端通过RTCPeerConnection接口接收到来自投射端发送的屏幕影像数据后,播放端内置Web-based OS运行环境选择在当前屏幕播放所述屏幕影像数据采用的屏幕分辨率。
所述屏幕影像数据播放单元405用于使用Web-based OS提供的Video控件将播放端接收到来自投射端发送的屏幕数据绘制在播放端当前屏幕上。此处,在播放端屏幕播放屏幕影像数据采用的屏幕分辨率是上述屏幕分辨率选择单元404选定的屏幕分辨率。
本申请虽然以较佳实施例公开如上,但其并不是用来限定本申请,任何本领域技术人员在不脱离本申请的精神和范围内,都可以做出可能的变动和修改,因此本申请的保护范围应当以本申请权利要求所界定的范围为准。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
1、计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括非暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
2、本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。