数据处理方法、装置及机顶盒与流程

文档序号:20703345发布日期:2020-05-12 16:02阅读:160来源:国知局
数据处理方法、装置及机顶盒与流程

本发明属于数据处理技术领域,尤其涉及一种数据处理方法、装置及机顶盒。



背景技术:

web应用指的是通过web访问的应用,通过浏览器即可访问应用程序。在web应用中,对不同图像数据来源的图像分层显示,一般分成两层显示,分别为视频层和osd层,其中,视频层位于osd层下面。

在osd层输出显示图像时,若视频层也同时输出显示图像,将存在osd层的图像把视频层的图像遮挡的问题。



技术实现要素:

有鉴于此,本发明的目的在于提供一种数据处理方法、装置及机顶盒,以解决现有技术中osd层图像遮挡视频层图像的问题。

技术方案如下:

本发明提供一种数据处理方法,包括:

接收播放指令;获取与所述播放指令对应的播放页面;

解析所述播放页面,得到所述播放页面中在osd层上显示输出的各个页面元素以及各个页面元素分别对应的层次属性值;

确定不同页面元素的层次属性值之间是否存在不同值;

若确定不同页面元素的层次属性值之间存在不同值,则确定不同页面元素的层次属性值中的最大值;

针对同一层次属性值的页面元素,在osd层上绘制该层次属性值的所有页面元素后,确定该层次属性值是否小于所述最大值;

若确定该层次属性值小于所述最大值,则对该层次属性值对应的层中与播放参数对应的显示区域透明处理,直至完成对所有层次属性值小于所述最大值的层次属性值对应的层的透明处理;所述播放参数为接收到所述播放指令后为在视频层显示输出的图像设置的参数。

可选地,确定不同页面元素的层次属性值之间是否存在不同值之后,还包括:

若确定不同页面元素的层次属性值均相同,则确定紧邻最后一个页面元素的前一个页面元素对应的标识;

在osd层上绘制所述标识对应的页面元素后,对所述osd层中与所述播放参数对应的显示区域透明处理。

可选地,还包括:

接收提示框显示指令;

在所述osd层上显示提示框。

可选地,接收到所述播放指令后为在视频层显示输出的图像设置的播放参数包括:

通过js函数设置播放参数;其中,所述播放参数至少包括:播放窗口位置坐标以及播放窗口大小。

可选地,对与所述播放参数对应的显示区域透明处理包括:

根据所述播放窗口位置坐标以及所述播放窗口大小,确定所述osd层上与显示播放窗口对应的显示区域;

将与显示播放窗口对应的显示区域内的每个像素点的透明位设置为0。

本发明还提供了一种数据处理装置,包括:

第一接收单元,用于接收播放指令;获取单元,用于获取与所述播放指令对应的播放页面;

解析单元,用于解析所述播放页面,得到所述播放页面中在osd层上显示输出的各个页面元素以及各个页面元素分别对应的层次属性值;

第一确定单元,用于确定不同页面元素的层次属性值之间是否存在不同值;若确定不同页面元素的层次属性值之间存在不同值,则确定不同页面元素的层次属性值中的最大值;

第二确定单元,用于针对同一层次属性值的页面元素,在osd层上绘制该层次属性值的所有页面元素后,确定该层次属性值是否小于所述最大值;

透明处理单元,用于若确定该层次属性值小于所述最大值,则对该层次属性值对应的层中与播放参数对应的显示区域透明处理,直至完成对所有层次属性值小于所述最大值的层次属性值对应的层的透明处理;所述播放参数为接收到所述播放指令后为在视频层显示输出的图像设置的参数。

可选地,还包括:

第三确定单元,用于若确定不同页面元素的层次属性值均相同,则确定紧邻最后一个页面元素的前一个页面元素对应的标识;

所述透明处理单元,还用于在osd层上绘制所述标识对应的页面元素后,对所述osd层中与所述播放参数对应的显示区域透明处理。

可选地,还包括:

第二接收单元,用于接收提示框显示指令;

显示单元,用于在所述osd层上显示提示框。

可选地,所述透明处理单元包括:

确定子单元,用于根据播放窗口位置坐标以及播放窗口大小,确定所述osd层上与显示播放窗口对应的显示区域;

透明处理子单元,用于将与显示播放窗口对应的显示区域内的每个像素点的透明位设置为0。

本发明还提供了一种机顶盒,包括:

存储器,用于至少存储一组指令集;

处理器,用于调用所述指令集,以执行以下操作:

接收播放指令;

获取与所述播放指令对应的播放页面;

解析所述播放页面,得到所述播放页面中在osd层上显示输出的各个页面元素以及各个页面元素分别对应的层次属性值;

确定不同页面元素的层次属性值之间是否存在不同值;

若确定不同页面元素的层次属性值之间存在不同值,则确定不同页面元素的层次属性值中的最大值;

针对同一层次属性值的页面元素,在osd层上绘制该层次属性值的所有页面元素后,确定该层次属性值是否小于所述最大值;

若确定该层次属性值小于所述最大值,则对该层次属性值对应的层中与播放参数对应的显示区域透明处理,直至完成对所有层次属性值小于所述最大值的层次属性值对应的层的透明处理;所述播放参数为接收到所述播放指令后为在视频层显示输出的图像设置的参数。

与现有技术相比,本发明提供的上述技术方案具有如下优点:

从上述技术方案可知,本申请中接收到播放指令后,通过解析获取到的与播放指令对应的播放页面,得到所述播放页面中在osd层上显示输出的各个页面元素以及各个页面元素分别对应的层次属性值,并确定不同页面元素的层次属性值之间是否存在不同值,在存在不同值的情况下,确定层次属性值的最大值,其中,提示框所在层的层次属性值为最大值。针对每一层次属性值对应的层,绘制完该层上的页面元素后,确定该层的层次属性值是否小于层次属性值的最大值,在确定小于最大值的情况下,将该层的显示区域中与播放参数对应的显示区域透明处理,直至完成对所有层次属性值小于层次属性值的最大值的层的透明处理。通过将小于层次属性值最大值的所有层次属性值对应的层中与播放参数对应的显示区域透明处理后,实现了将除提示框所在层之外的其他层的透明处理,可以在osd层显示输出图像时暴露出视频层用于显示输出图像的显示区域,避免了osd层显示输出的图像对视频层显示输出图像的遮挡。且,由于提示框所在层没有经过透明处理,因此不会对提示框的显示输出造成影响,可以完整显示输出提示框。

附图说明

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

图1是本发明实施例提供的一种数据处理方法的流程图;

图2是本发明实施例提供的在osd层上绘制页面元素的示意图;

图3是本发明实施例提供的在osd层上与播放参数对应的显示区域透明处理后的示意图;

图4是本发明实施例提供的在osd层上与播放参数对应的显示区域透明处理后显示输出提示框的示意图;

图5是本发明实施例提供的另一种数据处理方法的流程图;

图6是本发明实施例提供的在osd层的同一层次上绘制页面元素的示意图;

图7是本发明实施例提供的在osd层的同一层次上绘制页面元素的示意图;

图8是本发明实施例提供的在osd层的同一层次上绘制页面元素的示意图;

图9是本发明实施例提供的在osd层上与播放参数对应的显示区域透明处理后的示意图;

图10是本发明实施例提供的在osd层上与播放参数对应的显示区域透明处理后显示输出提示框的示意图;

图11是本发明实施例提供的一种数据处理装置的结构示意图。

具体实施方式

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

为了方便理解本方案,对本实施例中涉及到的技术名词进行解释说明:

web应用:通过web访问的应用。

视频层:系统划分出来的一块内存区域,用来保存用视频播放器解码输出的每帧画面的数据。每帧画面的数据一般都是像素点,从而可以看到视频的一帧帧图像。

osd层:系统划分出来的一块内存区域,用来保存由浏览器渲染页面产生的图像的像素点数据。通过此块内存区域,浏览器可以把所加载的网页内容显示成画面,供用户查看。其中,osd层处在视频层的上面。

基于上述可知,对于要输出显示的图像包括从视频流中解码得到的图像和浏览器显示页面的图像,由于不同来源的图像分别在不同层上显示输出的,视频层显示输出的是从视频流中解码得到的图像,osd层显示输出的是浏览器显示页面的图像。如果视频层和osd层同时存在要输出的图像,若osd层图像的像素点不是透明的,则位于视频层上方的osd层输出的图像将遮挡视频层输出的图像,导致不能看到视频层输出的图像。

针对位于视频层上方的osd层输出的图像遮挡视频层输出的图像,导致不能看到视频层输出图像的问题,本实施例提供了一种数据处理方法,应用于web应用中,如机顶盒应用。

目前,机顶盒的操作系统一般是linux系统或者android系统,机顶盒开机启动时,默认打开的应用称之为中间件。中间件是机顶盒的核心,该中间件集成了浏览器、视频播放器、dvd码流解析器等部件。中间件的浏览器是经过深度定制的浏览器,进行了很多功能和javascript扩展,使其能够调用视频播放器和dvb码流解析器等部件的相关功能接口。

在机顶盒连接电视机或者其他显示设备,以通过连接的显示设备输出显示图像。其中,通过连接的显示设备输出显示图像的方式为:经过浏览器加载运营商提供的页面,并经过一系列的解析、布局、渲染,在osd层上输出显示图像,使得用户可以查看到机顶盒输出的界面。用户通过输出的界面可以选择要观看的视频,如根据遥控器触发输出界面上显示的对某一视频的播放指令。

在接收到播放指令后,浏览器解析页面以获取到视频播放的地址,并把视频播放地址传递给视频播放器;视频播放器接收到浏览器传递的视频播放地址后,根据视频播放地址发送网络请求,以获得待播放的视频数据;视频播放器获得待播放的视频数据后,对待播放的视频数据进行解析得到待播放的视频的相关信息,如视频名称、视频时长、图像信息等,最后将待播放的视频的每一帧图像经过转换,输出到视频层对应的内存区域中,通过持续输出视频的每一帧图像,使得用户观看到视频内容。

参见图1,该实施例包括以下步骤:s101、接收播放指令;

以机顶盒应用为例描述,在通过osd层显示输出图像以使得用户看到提供的界面后,用户可以根据自身需求选择要观看的视频,并通过遥控器触发播放指令,如,界面上显示有“如懿传”,用户想要观看“如懿传”的相关视频,需要通过遥控器上的方向选择按钮将光标移动到“如懿传”,并通过遥控器上的确认按钮触发对“如懿传”的选择操作,生成对“如懿传”的播放指令。

浏览器接收到播放指令后,视频层上存在显示输出的图像,需要执行后续在视频层上显示输出图像以及对osd层上显示输出图像的处理操作。

在没有接收到播放指令的情况下,即没有视频播放的情况下,视频层上不存在显示输出的图像,通常视频层为全黑显示,只看到osd层上显示输出的图像,以使用户看到提供的界面并供用户操作。并不需要执行后续在视频层上显示输出图像以及对osd层上显示输出图像的处理操作。s102、获取与所述播放指令对应的播放页面;

响应播放指令后显示输出的页面称为播放页面。不同的播放指令对应的播放页面不同。

其中,播放页面采用两层结构输出来自不同数据源的图像。播放页面的一层结构为视频层,视频层用于显示输出与播放指令对应的图像,播放页面的另一层结构为位于视频层上的osd层,osd层用于显示输出通过浏览器加载的页面。

在实际应用中,通过osd层显示输出页面的方式为分层渲染,按照由下往上的顺序,逐层绘制每层上的页面元素。其中页面元素为构成页面的元素,如提示框、图片等。其中,层次是由设置的层次属性值z-index确定的。z-index的值越大,代表层次越高,越后绘制。即先绘制z-index值小的页面元素,然后再绘制z-index值大的页面元素。

s103、解析播放页面,得到所述播放页面中在osd层上显示输出的各个页面元素以及各个页面元素分别对应的层次属性值;

一个实例中,浏览器获取到的播放页面为:

<bodystyle=”background-color:#f8a09a;”>

<divstyle=”background-color:red”>

<imgsrc=”xxx.jpg”>

</div>

</body>

通过对上述播放页面进行解析,可以获知页面元素包括两个,分别是div和imgsrc,且这两个页面元素均没有设置层次属性值z-index,则这两个页面元素的层次属性值z-index相同,均为默认值,可以为0。在绘制的时候按照先后顺序在同一层顺序绘制这两个页面元素。

另一个实例中,浏览器获取到的播放页面为:

<body>

<divstyle=”position:left:0px;top:0px;width:100px;heigth:100px;background-color:red;”>

</div>

<divstyle=”position:left:50px;top:50px;width:100px;heigth:100px;background-color:blue;”>

</div>

<divstyle=”z-index:10;position:left:80px;top:50px;width:100px;heigth:100px;background-color:#f9a8c7;”>

</div>

</body>

通过对上述播放页面进行解析,可以获知页面元素包括三个,第一个页面元素是位于(0,0,100,100)位置处红色的页面元素,第二个页面元素是位于(50,50,100,100)位置处蓝色的页面元素,第三个页面元素是位于(80,50,100,100)位置处填充颜色为#f9a8c7的页面元素。其中,第一个页面元素和第二个页面元素没有设置层次属性值z-index,为默认值,可以为0,第三个页面元素设置的层次属性值z-index为10。在绘制的时候先绘制层次属性值为0的第一个页面元素和第二页面元素,然后再绘制层次属性值为10的第二个页面元素。

s104、确定不同页面元素的层次属性值之间是否存在不同值;

若确定不同页面元素的层次属性值之间存在不同值,则执行步骤s105;

基于上述获取到的两个播放页面为例,根据对前一个播放页面的解析,确定包括div和imgsrc这两个页面元素,且这两个页面元素的层次属性值z-index相同,则确定不同页面元素的层次属性值之间不存在不同值,表示不同的页面元素位于osd层的同一层中;

根据对后一个播放页面的解析,确定包括三个页面元素,且第一个页面元素和第二个页面元素的层次属性值均为默认值,第三个页面元素的层次属性值为10,则确定不同页面元素的层次属性值之间存在不同值,表示不同的页面元素位于osd层的不同层中。

s105、确定不同页面元素的层次属性值中的最大值;

在确定不同页面元素的层次属性值之间存在不同值,那么通过比较不同页面元素的层次属性值,确定层次属性值的最大值。

以后一个播放页面为例,第一个页面元素的层次属性值为默认值0,第二个页面元素的层次属性值为0,第三个页面元素的层次属性值为10,比较三个层次属性值,确定层次属性值的最大值为10。

s106、针对同一层次属性值的页面元素,在osd层上绘制该层次属性值的所有页面元素后,确定该层次属性值是否小于所述最大值;

若确定该层次属性值小于所述最大值,则执行步骤s107;

实际应用中,可能存在多个页面元素的层次属性值均相同,以后一个播放页面为例,层次属性值为默认值0上包括第一页面元素和第二页面元素这两个页面元素。在osd层上绘制页面元素的方式为逐层绘制,绘制完一层上的全部页面元素后再绘制该层的上一层中的页面元素。

以后一个播放页面为例,在osd层上绘制页面元素的过程为绘制body元素、第一页面元素和第二页面元素,如图2所示;

在绘制完成层次属性值为0上的第一页面元素和第二页面元素后,确定完成绘制页面元素的层的层次属性值是否小于层次属性值最大值;

确定层次属性值0小于层次属性值最大值,则执行步骤s106;即将层次属性值的最大值作为透明处理层数,对层次属性值小于透明处理层数的层进行透明处理;

若确定层次属性值等于或大于层次属性值最大值,则继续执行对该层的上一层内页面元素的绘制;即不对层次属性值等于透明处理层数的层进行透明处理,以保证层次属性值等于透明处理层数的层上显示输出的页面元素的完整。

通常将提示框这一页面元素绘制在层次属性值为最大值所在的层中,由于本实施例中不对层次属性值等于层次属性最大值的层进行透明处理,因此可以保证在层次属性最大值的层中绘制的提示框的完整性,从而可以显示输出完整的提示框。

s107、对该层次属性值对应的层中与播放参数对应的显示区域透明处理,直至完成对所有层次属性值小于所述最大值的层次属性值对应的层的透明处理;所述播放参数为接收到所述播放指令后为在视频层显示输出的图像设置的参数。

仍然以后一个播放页面为例,在层次属性值0对应的层上绘制完成了第一页面元素和第二页面元素后,得到如图2所示的页面,由于层次属性值0小于层次属性值最大值10,则对层次属性值0所对应的层中与播放参数对应的显示区域透明处理,其中,播放参数为接收到播放指令后为在视频层显示输出的图像设置的参数。

以机顶盒应用为例描述为在视频层显示输出的图像设置播放参数的方式。

在接收到播放指令后,通过javascript函数setpositioninfo设置播放参数,

setpositioninfo(x,y,w,h);

javascript函数包括四个参数,分别是x,y,w,h;其中,x表示播放窗口相对于屏幕左上角的水平方向的偏移,y表示播放窗口相对于屏幕左上角的竖直方向的偏移,w表示播放窗口的宽度,h表示播放窗口的高度。

本实施例中,播放参数至少包括播放窗口坐标和播放窗口大小,如设置如下:

setpositioninfo(100,100,200,200);

其表示以屏幕的左上角为坐标原点,屏幕左边延伸方向为y轴方向,屏幕上边延伸方向为x轴方向,播放窗口左上角的坐标为(100,100),即播放窗口左上角距离屏幕左边100像素,播放窗口左上角距离屏幕下边100像素,播放窗口大小为窗口宽度200像素、窗口高度200像素。

浏览器通过解析上述播放页面,得到播放参数并将播放参数设置给视频播放器,视频播放器在播放视频时将视频图像数据输出到视频层中播放参数所指示的区域。即视频层中播放窗口为播放窗口左上角距离屏幕左边100像素,播放窗口左上角距离屏幕下边100像素,播放窗口大小为窗口宽度200像素、窗口高度200像素。

对层中与播放参数对应的显示区域透明处理的方式为以屏幕左上角为坐标原点,确定离屏幕左边100像素,离屏幕下边100像素的位置为起点,宽度为200像素、高度为200像素的区域为与播放参数对应的显示区域,然后将该显示区域透明处理,得到如图3所示的页面。

图3中,osd层中的空白区域与在视频层显示输出图像的播放窗口完全重叠,使得在视频层显示输出图像的同时在osd层也显示输出图像时,可以通过osd层上的空白区域看到视频层显示输出的图像。

在完成对层次属性值0对应的层中的页面元素的绘制以及透明处理后,返回执行步骤s105-s106,直至完成对所有层次属性值小于所述最大值的层次属性值对应的层的透明处理。

仍然以后一个播放页面为例,在得到如图3所示的页面后,继续执行对层次属性值0对应的层的上一层中页面元素的绘制。即对层次属性值10对应的层中第三页面元素的绘制。需要注意的是,在最高层中通常绘制的是提示框,只有在需要显示提示信息时才会在osd层显示输出提示框,在接收到显示提示信息的指令后,浏览器在层次属性值10对应的层上绘制第三页面元素,绘制完成第三页面元素后,由于第三页面元素所在层的层次属性值10等于最大值,不满足层次属性值小于层次属性值最大值的条件,因此并不需要执行透明处理操作,得到如图4所示的页面。

从上述技术方案可知,本实施例中接收到播放指令后,通过解析获取到的与播放指令对应的播放页面,得到所述播放页面中在osd层上显示输出的各个页面元素以及各个页面元素分别对应的层次属性值,并确定不同页面元素的层次属性值之间是否存在不同值,在存在不同值的情况下,确定层次属性值的最大值,其中,提示框所在层的层次属性值为最大值。针对每一层次属性值对应的层,绘制完该层上的页面元素后,确定该层的层次属性值是否小于层次属性值的最大值,在确定小于最大值的情况下,将该层的显示区域中与播放参数对应的显示区域透明处理,直至完成对所有层次属性值小于层次属性值的最大值的层的透明处理。

通过将小于层次属性值最大值的所有层次属性值对应的层中与播放参数对应的显示区域透明处理后,实现了将除提示框所在层之外的其他层的透明处理,可以在osd层显示输出图像时暴露出视频层用于显示输出图像的显示区域,避免了osd层显示输出的图像对视频层显示输出图像的遮挡。且,由于提示框所在层没有经过透明处理,因此不会对提示框的显示输出造成影响,可以完整显示输出提示框。

通常情况下,各个运营商提供的播放页面中设置了提示框的层次属性值,即明确了将提示框绘制在osd层的哪一层次中,在这种情况下,可以采用本实施例中根据层次属性值对应的层次,对osd层透明处理,以避免osd层显示输出的图像对视频层显示输出图像的遮挡的问题。

但是,可能存在运行商提供的播放页面中没有设置提示框的层次属性值,播放页面中各个页面元素的层次属性值都为默认值0的情况,在这种情况下,将不能采用根据层次属性值对应的层次对osd层透明处理的方法。

针对此,本实施例还提供了另一种数据处理方法,参见图5,该实施例包括以下步骤:

s201、接收播放指令;

s202、获取与所述播放指令对应的播放页面;

s203、解析播放页面,得到所述播放页面中在osd层上显示输出的各个页面元素以及各个页面元素分别对应的层次属性值;s204、确定不同页面元素的层次属性值之间是否存在不同值;若确定不同页面元素的层次属性值之间存在不同值,则执行步骤s205;

若确定不同页面元素的层次属性值均相同,则执行步骤s208;

通过比较osd层中不同层包括的各个页面元素的z-index值是否相同,若不同页面元素的层次属性值不同,则说明为不同页面元素设置了z-index属性值,此种情况下,为了能够在所有层之上显示提示框,将提示框这一页面元素的z-index属性值设置为最大值。而其他页面元素的z-index属性值设置为小于提示框所在层的z-index属性值。为了解决osd层显示输出的图像对视频层显示输出的图像的遮挡,将z-index属性值小于最大值的层全部执行透明处理,其中,透明处理的区域为与视频层用于显示输出图像的区域完全重叠,其中,采用播放参数限定用于显示输出图像的区域。

具体透明处理方式为:根据播放参数中的播放窗口位置坐标和播放窗口大小,确定osd层上与显示播放窗口对应的显示区域;将与显示播放窗口对应的显示区域内的每个像素点的透明位设置为0。

若不同页面元素的层次属性值之间均相同,则说明没有为不同页面元素设置z-index属性值,此种情况下,也没有为提示框设置z-index属性值,通常为了能够在需要显示提示信息时显示输出提示框,将提示框最后绘制。

s205、确定不同页面元素的层次属性值中的最大值;

s206、针对同一层次属性值的页面元素,在osd层上绘制该层次属性值的所有页面元素后,确定该层次属性值是否小于所述最大值;

若确定该层次属性值小于所述最大值,则执行步骤s207;

s207、对该层次属性值对应的层中与播放参数对应的显示区域透明处理,直至完成对所有层次属性值小于所述最大值的层次属性值对应的层的透明处理;所述播放参数为接收到所述播放指令后为在视频层显示输出的图像设置的参数;

本实施例中步骤s201-s207的实现方式与上一实施例中步骤s101-s107的实现方式类似,此处不再赘述。

s208、确定紧邻最后一个页面元素的前一个页面元素对应的标识;

示例性的,浏览器获取到的播放页面为:

<body>

<divid=“id1”style=”position:left:0px;top:0px;width:100px;heigth:100px;background-color:red;”>

</div>

<divid=“id2”style=”position:left:50px;top:50px;width:100px;heigth:100px;background-color:blue;”>

</div>

<divid=“id3”style=“position:left:80px;top:50px;width:100px;heigth:100px;background-color:#f9a8c7;”>

</div>

</body>

通过对上述播放页面进行解析,可以获知页面元素包括三个,分别是标识为id1的页面元素,标识为id2的页面元素和标识为id3的页面元素。由于这三个页面元素均没有设置z-index属性值,因此这三个页面元素的层次属性值为默认值0,即三个页面元素是位于同一层上。针对任意一层,在绘制页面元素时都是按照先后顺序绘制的,后绘制的页面元素可能覆盖前面绘制的页面元素。

为了保证在需要显示提示信息的情况下能够弹出显示提示框,通常将提示框设置为最后一个绘制的页面元素,从而认为标识id3对应的页面元素为提示框。标识id3对应的页面元素的前一个页面元素为标识为id2对应的页面元素,在获取到这一播放页面中,确定紧邻最后一个页面元素的前一个页面元素对应的标识为id2。

s209、在osd层上绘制所述标识对应的页面元素后,对所述osd层中与所述播放参数对应的显示区域进行透明处理。

在确定出标识id2后,在osd层上绘制页面元素以生成播放页面并显示输出的方式为:

步骤1:绘制body元素,如图6所示;

步骤2:绘制标识id1对应的页面元素,如图7所示;

步骤3:绘制标识id2对应的页面元素,如图8所示;

如图8所示,由于id1对应的页面元素和id2对应的页面元素位于同一层,后绘制的id2对应的页面元素覆盖部分先绘制的id1对应的页面元素;

步骤4:对osd层中与播放参数对应的显示区域透明处理,如图9所示。

对osd层中与播放参数对应的显示区域透明处理的方式与上一实施例中步骤s107中对该层次属性值对应的层中与播放参数对应的显示区域透明处理的方式类似,此处不再赘述。

可选地,在本实施例中,步骤s208之后还包括:

接收提示框显示指令,并在所述osd层上显示提示框。参见图10所示,为本实施例在根据页面元素对osd层上与播放参数对应的显示区域透明处理后,显示提示框的示意图。

通过对osd层与播放参数对应的显示区域的透明处理,可以看到osd层下方的视频层中根据播放参数确定的播放窗口中显示输出的图像。同时,透明处理并不会对提示框的显示输出造成影响,从而可以显示输出完整的提示框。

相较于上一实施例,本实施例中在播放页面中各个页面元素的层次属性值都为默认值0的情况下,确定紧邻最后一个页面元素的前一个页面元素对应的标识,在绘制完成所述标识对应的页面元素后,对osd层中与所述播放参数对应的显示区域进行透明处理。使得在osd层和视频层同时存在显示输出的图像的情况下,osd层上显示的图像不会遮挡视频层上显示的图像。且,通常情况下认为最后一个页面元素为提示框,在绘制完成提示框之前进行osd层的透明处理,使得在接收到提示框显示指令后在osd层显示输出提示框时,透明处理不会对显示输出的提示框产生影响,可以完整地显示输出提示框。

对应上述数据处理方法,本发明还提供了一种数据处理装置,所述装置可以集成到机顶盒系统中。

所述装置的结构示意图请参阅图11所示,本实施例中数据处理装置包括:

第一接收单元1101、获取单元1102、解析单元1103、第一确定单元1104、第二确定单元1105和透明处理单元1106;

第一接收单元1101,用于接收播放指令;获取单元1102,用于获取与所述播放指令对应的播放页面;

解析单元1103,用于解析所述播放页面,得到所述播放页面中在osd层上显示输出的各个页面元素以及各个页面元素分别对应的层次属性值;

第一确定单元1104,用于确定不同页面元素的层次属性值之间是否存在不同值;若确定不同页面元素的层次属性值之间存在不同值,则确定不同页面元素的层次属性值中的最大值;

第二确定单元1105,用于针对同一层次属性值的页面元素,在osd层上绘制该层次属性值的所有页面元素后,确定该层次属性值是否小于所述最大值;

透明处理单元1106,用于若确定该层次属性值小于所述最大值,则对该层次属性值对应的层中与播放参数对应的显示区域透明处理,直至完成对所有层次属性值小于所述最大值的层次属性值对应的层的透明处理;所述播放参数为接收到所述播放指令后为在视频层显示输出的图像设置的参数。

可选地,本实施例中,所述数据处理装置还可以包括:

第三确定单元1107;

第三确定单元1107,用于若确定不同页面元素的层次属性值均相同,则确定紧邻最后一个页面元素的前一个页面元素对应的标识;

透明处理单元1106,还用于在osd层上绘制所述标识对应的页面元素后,对所述osd层中与所述播放参数对应的显示区域透明处理。

可选地,本实施例中,所述数据处理装置还可以包括:

第二接收单元1108和显示单元1109;

第二接收单元1108,用于接收提示框显示指令;

显示单元1109,用于在所述osd层上显示提示框。

可选地,本实施例中,透明处理单元1106包括:

确定子单元和透明处理子单元;

所述确定子单元,用于根据播放窗口位置坐标以及播放窗口大小,确定所述osd层上与显示播放窗口对应的显示区域;

所述透明处理子单元,用于将与显示播放窗口对应的显示区域内的每个像素点的透明位设置为0。

从上述技术方案可知,本实施例中接收到播放指令后,通过解析获取到的与播放指令对应的播放页面,得到所述播放页面中在osd层上显示输出的各个页面元素以及各个页面元素分别对应的层次属性值,并确定不同页面元素的层次属性值之间是否存在不同值,在存在不同值的情况下,确定层次属性值的最大值,其中,提示框所在层的层次属性值为最大值。针对每一层次属性值对应的层,绘制完该层上的页面元素后,确定该层的层次属性值是否小于层次属性值的最大值,在确定小于最大值的情况下,将该层的显示区域中与播放参数对应的显示区域透明处理,直至完成对所有层次属性值小于层次属性值的最大值的层的透明处理。

通过将小于层次属性值最大值的所有层次属性值对应的层中与播放参数对应的显示区域透明处理后,实现了将除提示框所在层之外的其他层的透明处理,可以在osd层显示输出图像时暴露出视频层用于显示输出图像的显示区域,避免了osd层显示输出的图像对视频层显示输出图像的遮挡。且,由于提示框所在层没有经过透明处理,因此不会对提示框的显示输出造成影响,可以完整显示输出提示框。

通常情况下,各个运营商提供的播放页面中设置了提示框的层次属性值,即明确了将提示框绘制在osd层的哪一层次中,在这种情况下,可以采用本实施例中根据层次属性值对应的层次,对osd层透明处理,以避免osd层显示输出的图像对视频层显示输出图像的遮挡的问题。

但是,可能存在运行商提供的播放页面中没有设置提示框的层次属性值,播放页面中各个页面元素的层次属性值都为默认值0的情况,在这种情况下,将不能采用根据层次属性值对应的层次对osd层透明处理的方法,而是在播放页面中各个页面元素的层次属性值都为默认值0的情况下,确定紧邻最后一个页面元素的前一个页面元素对应的标识,在绘制完成所述标识对应的页面元素后,对osd层中与所述播放参数对应的显示区域进行透明处理。使得在osd层和视频层同时存在显示输出的图像的情况下,osd层上显示的图像不会遮挡视频层上显示的图像。且,通常情况下认为最后一个页面元素为提示框,在绘制完成提示框之前进行osd层的透明处理,使得在接收到提示框显示指令后在osd层显示输出提示框时,透明处理不会对显示输出的提示框产生影响,可以完整地显示输出提示框。

对应上述实施例公开的数据处理方法,本实施例还提供了一种机顶盒,机顶盒包括:存储器和处理器;

存储器,用于至少存储一组指令集;

处理器,用于调用所述指令集,以执行以下操作:

接收播放指令;

获取与所述播放指令对应的播放页面;

解析所述播放页面,得到所述播放页面中在osd层上显示输出的各个页面元素以及各个页面元素分别对应的层次属性值;

确定不同页面元素的层次属性值之间是否存在不同值;

若确定不同页面元素的层次属性值之间存在不同值,则确定不同页面元素的层次属性值中的最大值;

针对同一层次属性值的页面元素,在osd层上绘制该层次属性值的所有页面元素后,确定该层次属性值是否小于所述最大值;

若确定该层次属性值小于所述最大值,则对该层次属性值对应的层中与播放参数对应的显示区域透明处理,直至完成对所有层次属性值小于所述最大值的层次属性值对应的层的透明处理;所述播放参数为接收到所述播放指令后为在视频层显示输出的图像设置的参数。

使得在视频层和osd层同时显示输出图像时,避免osd层上显示输出的图像遮挡视频层上显示输出的图像,同时,可以避免透明处理对提示框的影响,从而可以在需要显示提示信息的情况下完整的显示输出提示框。

本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例提供的装置而言,由于其与实施例提供的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。

需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

对所公开的实施例的上述说明,使本领域技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

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