具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
图1示出了根据本发明一个实施例的一种运行窗口直播方法的流程。如图1所示,本发明实施例提供的运行窗口直播方法的流程包括如下步骤:
步骤S11:获取客户端当前运行的软件窗口信息,根据软件窗口信息确定待直播的备选目标数据。
在客户端中,一个运行的软件在桌面上对应一个软件窗口信息,客户端当前运行有多少个软件,就获取与运行的软件数量相同的软件窗口信息,每一个软件窗口信息表示一个待直播的备选目标数据。例如:客户端当前运行有三个软件,则对应有三个软件窗口信息,待直播的备选目标数据的数量为三个。
获取软件窗口信息的目的就是为了获取待直播的备选目标数据,以从获取的待直播的备选目标数据中选定备选目标数据作为直播的目标数据。
备选目标数据包括摄像头实时获取的视频数据、用户所在客户端实时显示的数据、浏览器窗口实时显示的数据以及用户确认直播的第三方数据。直播的目标数据由上述四种类型数据中的至少一种数据类型构成。其中,摄像头实时获取的视频数据为摄像头实时拍摄到的影像。用户所在客户端实时显示的数据为用户在客户端开启后运行的程序,包括打开的word、excel、音乐、电影、单机或者在线游戏等等。浏览器窗口实时显示的数据为用户通过浏览器所浏览的网页内容,该网页可以是后台打开的网页,不必实时显示在客户端;另外,该网页内容可以是任意一个允许访问的网站的内容。用户确认直播的第三方数据可以是浏览器的服务器(以下简称为浏览服务器)推送的数据,也可以是第三方服务器推送到浏览服务器的数据,或是浏览器所在的客户端通过其他方式(如U盘、蓝牙、电子邮件、QQ等)接收到的外部数据。
在用户确认直播的第三方数据为浏览服务器推送的数据时,浏览服务器直接向浏览器推送数据,将该推送的数据作为目标数据,该推送的数据优选为推送的广告。
在用户确认直播的第三方数据为第三方服务器推送到浏览服务器的数据时,在第三方服务器端和浏览服务器端建立数据对接的数据接口,第三方服务器通过建立的数据接口向浏览服务器传输数据,将该传输的数据作为目标数据,该传输的数据优选为显示在直播窗口的广告。
在用户确认直播的第三方数据为浏览器所在的客户端接收到的外部数据时,该外部数据可以是通过U盘传输到客户端的数据,也可以是通过QQ等通信软件传输的数据,或是通过网络下载到客户端的数据。本发明中,用户确认直播的第三方数据还可以是通过其它方式传输到客户端的数据,不局限于上述几种方式。
步骤S12:根据用户对备选目标数据的选择确定待直播的目标数据。
在获取到所有的备选目标数据后,选定其中一个或多个备选目标数据作为待直播的目标数据,未被选定的备选目标数据不会作为待直播的目标数据,自然也不会被直播。在直播的过程中,如果客户端有新启动运行的程序,也不会作为目标数据被直播,直播的目标数据只能是选定的备选目标数据。因此,本发明可以实现选择性的直播功能,该选择性是指用户的主动选择,而不是被动选择,用户想要保护某个备选目标数据,在直播窗口内不选择即可,选择的备选目标数据会被直播,未选择的备选目标数据不会被直播,从而起到保护用户隐私的作用。
步骤S13:直播目标数据。
在选定备选目标数据后,直播选定的备选目标数据,即为在所有的待直播的目标数据中选定将要直播的目标数据,在选定目标数据后,直播目标数据。
本发明将用户(即主播)的客户端内安装的浏览器作为直播的入口,所要直播的内容通过浏览器直播出去。具体地,在浏览器创建一个窗口,在浏览器启动后的预设时间内,通过浏览器创建的窗口弹出直播提示窗。当然,也可以在启动浏览器后不设置预设时间,而直接通过浏览器创建的窗口弹出直播提示窗,直播提示窗可以为下拉式菜单、触发按钮、弹窗或浏览器页面浮层等等。
根据用户对直播提示窗的触发操作,以浏览器内嵌插件的形式直播选定的目标数据。其中,在客户端为台式机时,触发操作包括用户的鼠标点击、声控等操作形式,在客户端为智能终端时,触发操作包括触屏、声控等操作形式。
需要说明的是,在直播目标数据时,目标数据为至少一种,在目标数据为一种时,直播窗口内全屏显示该目标数据,在目标数据为两种或两种以上时,在直播窗口内通过分屏或套屏的方式直播多种目标数据。
此处,分屏是指根据目标数据的种类将直播窗口分成相应数量的小窗口,每个小窗口显示一种目标数据。套屏是指根据目标数据的种类在直播窗口的基础上创建相应数量的小窗口,在直播窗口内选定一种目标数据进行直播,而其它种类的目标数据分别一一对应地在每个小窗口内直播。
需要说明的是,在直播目标数据之前,预先将插件内嵌到浏览器中,直播目标数据是通过内嵌在浏览器内的插件调用选定的备选目标数据,从而进行直播。在直播目标数据的过程中,浏览器可以向外提供直播用户交互接口,用于在该接口中编辑相关信息或者和他人互动,该接口可以通过下拉式菜单或浮动弹窗的形式向用户呈现。编辑相关信息包括在直播窗口中编辑表情包、增设美颜、设置背景颜色等等,与他人互动包括发表评论、赠送礼物、点赞等等操作。
对于观看直播的用户来说,其观看到的画面为主播的客户端的桌面上所选定的备选目标数据,即为选定的目标数据,在主播切换不同的目标数据时,目标数据会发生改变,而观看直播的用户会观看到与改变后的目标数据相对应的画面。在直播的过程中,实际上是将桌面上运行的软件窗口的图像(即目标数据)一帧一帧的显示到观看直播的用户的浏览器上。为了详述直播的过程,下面对图像的结构做出说明。
在客户端中,图像是分层显示的,用户在桌面上看到的图像,实际上是多层图像叠加在一起的结果。例如,桌面使用的壁纸图片是一层,桌面上的图标是另一层,打开的程序窗口又是另一层。各层图像之间具有层次的前后关系,这种先后关系可通过创建时间上的先后体现出来,例如桌面壁纸图片所在的图层一般是最先创建的,因此,处于最底层,之后创建桌面上的图标所在的图层,因此,该图层在桌面壁纸图片所在的图层之上,之后创建应用程序的窗口所在的图层,所以该图层又在桌面图标所在图层之上。需要说明的是,程序窗口(即软件窗口)所在的图层,在该图层中可以绘制多个程序窗口,各个程序窗口之间也有层次上的前后关系,这种先后关系除了可以通过创建上的先后顺序体现出来,还可以通过切换焦点的方式,来改变和调整这种前后关系。例如,最先创建窗口A,然后创建窗口B,此时,窗口B应该位于窗口A的上层,但是如果用户鼠标点击窗口A,则窗口A又会成为窗口B的上层。其中,当前处于焦点的窗口为屏幕的前景,其他各图层以及同一图层中的其他窗口叠加在一起为屏幕的背景,也即,前景一般是指当前处于焦点的一个窗口,而背景则可能是由多个图层以及多个应用程序窗口叠加而成的。
因此,本发明实施例直播的过程,包括:
步骤a:主播的浏览器获取屏幕状态的结构化信息,并将结构化信息发送到观看直播的用户的浏览器;其中,结构化信息包括主播的屏幕中创建的图层标识信息,以及在各个图层中绘制的内容。
步骤b:当主播的屏幕状态的结构化信息发生变化时,获取变化后的结构化信息,并发送至观看直播的用户的浏览器。
步骤c:观看直播的用户的浏览器根据变化后的结构化信息,展现主播变化后的屏幕状态。
上述内容详细描述了本发明提供的基于浏览器的直播弹出方法。与上传方法相对应,本发明还提供一种用于直播的浏览器。
图2示出了根据本发明实施例的浏览器的逻辑结构。
如图2所示,本发明实施例提供的浏览器200包括:窗口信息获取单元210、备选目标确定单元220、直播目标确定单元230和直播单元240。
其中,窗口信息获取单元210用于获取客户端当前运行的软件窗口信息。在客户端中,一个运行的软件在桌面上对应一个软件窗口信息,客户端当前运行有多少个软件,窗口信息获取单元210就获取多少个软件窗口信息,每一个软件窗口信息表示一个待直播的备选目标数据。
备选目标确定单元220用于根据软件窗口信息确定待直播的备选目标数据。备选目标数据包括摄像头实时获取的视频数据、用户所在客户端实时显示的数据、浏览器窗口实时显示的数据以及用户确认直播的第三方数据。直播的目标数据由上述四种类型数据中的至少一种数据类型构成。
其中,摄像头实时获取的视频数据为摄像头实时拍摄到的影像。用户所在客户端实时显示的数据为用户在客户端开启后运行的程序,包括打开的word、excel、音乐、电影、单机或者在线游戏等等。
浏览器窗口实时显示的数据为用户通过浏览器所浏览的网页内容,该网页内容可以是任意一个允许访问的网站的内容。
用户确认直播的第三方数据可以是浏览器的服务器(以下简称为浏览服务器)推送的数据,也可以是第三方服务器推送到浏览服务器的数据,或是浏览器所在的客户端通过其他方式(如U盘、蓝牙、电子邮件、QQ等)接收到的外部数据。在用户确认直播的第三方数据为浏览服务器推送的数据时,浏览服务器直接向浏览器推送数据,将该推送的数据作为目标数据,该推送的数据优选为推送的广告。在用户确认直播的第三方数据为第三方服务器推送到浏览服务器的数据时,在第三方服务器端和浏览服务器端建立数据对接的数据接口,第三方服务器通过建立的数据接口向浏览服务器传输数据,将该传输的数据作为目标数据,该传输的数据优选为显示在直播窗口的广告。在用户确认直播的第三方数据为浏览器所在的客户端接收到的外部数据时,该外部数据可以是通过U盘传输到客户端的数据,也可以是通过QQ等通信软件传输的数据,或是通过网络下载到客户端的数据。本发明中,用户确认直播的第三方数据还可以是通过其它方式传输到客户端的数据,不局限于上述几种方式。
直播目标确定单元230用于根据用户对备选目标数据的选择确定待直播的目标数据,待直播的目标数据可以确定为一个或多个。
直播单元240用于直播目标数据。直播单元240直播的方式包括全屏直播、分屏直播和套屏直播;在用户选择直播一种目标数据时,以全屏直播的方式直播目标数据;在用户选择直播两种或者两种以上目标数据,以分屏、套屏的方式直播目标数据。分屏是指根据目标数据的种类将直播窗口分成相应数量的小窗口,每个小窗口显示一种目标数据。套屏是指根据目标数据的种类在直播窗口的基础上创建相应数量的小窗口,在直播窗口内选定一种目标数据进行直播,而其它种类的目标数据分别一一对应地在每个小窗口内直播。
需要说明的是,直播单元240只会直播选定的备选目标数据,未被选定的备选目标数据不会被直播单元240直播,未被选定的备选目标数据包括在直播之前未被选定的软件窗口信息和在直播的过程中新启动运行的软件窗口信息。
在发明的一个具体实施方式中,直播单元240包括直播交互子单元241,用于在直播目标数据的过程中,以下拉式菜单或浮动弹窗的形式提供直播用户交互接口,以实现在该接口中编辑相关信息或者和他人互动的功能;其中,编辑相关信息包括在直播窗口中编辑表情包、增设美颜、设置背景颜色等等,与他人互动包括发表评论、赠送礼物、点赞等等操作。
另外,本发明实施例还提供一种运行窗口直播***,如图3所示,运行窗口直播***300包括:浏览器服务器310和前述的浏览器200,其中,浏览器服务器310用于向浏览器200提供直播的第三方数据,直播的第三方数据即为直播的目标数据,而浏览器200用于直播目标数据。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的网关、代理服务器、***中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。