播放多媒体数据的方法、界面渲染方法及装置、设备与流程

文档序号:11589984阅读:160来源:国知局

本申请涉及播放多媒体数据的技术,尤其涉及播放多媒体数据的方法、界面渲染的方法及播放多媒体数据的装置、界面渲染的装置、播放多媒体数据的设备。



背景技术:

目前某些场景下,在应用的界面上播放多媒体数据时,需要借助多媒体数据播放服务来播放多媒体数据,在应用的界面上有一个区域作为多媒体数据的显示区域。目前实现该效果的一种方案是在对该应用的界面渲染时,在绘制界面的绘图层绘制一个透明区域,另外,再在另一个绘图层绘制一个播放窗口,将播放窗口的位置重叠于透明区域的位置,播放窗口内显示每一帧待播放的多媒体数据。

当用户执行滚动或翻页等操作时,透明区域的位置发生改变,需要相应的调整播放窗口的位置。但目前对透明区域和播放窗口调整的过程容易造成界面出现白边或数据抖动现象。



技术实现要素:

本申请提供播放多媒体数据的方法、界面渲染的方法及播放多媒体数据的装置、界面渲染的装置,能够避免界面滚动引起的界面白边或数据抖动。

根据本申请实施例的第一方面,提供一种播放多媒体数据的方法,所述方法包括步骤:

通知在第一绘图层上绘制透明区域;通知在第二绘图层上绘制多媒体数 据的播放窗口,所述多媒体数据的播放窗口与所述透明区域重叠;

通知同步显示所述透明区域和所述播放窗口,以及通知在所述播放窗口中播放所述多媒体数据。

根据本申请实施例的第二方面,提供一种界面渲染的方法,包括步骤:

将第一信息和第二信息发给图像处理单元gpu进程;所述第一信息用于指示绘制透明区域,所述第二信息用于指示绘制多媒体数据的播放窗口;

当接收到所述gpu进程的通知时,根据所述第一信息在绘图层绘制所述透明区域。

根据本申请实施例的第三方面,提供一种播放多媒体数据的装置,包括:

绘图控制模块,用于通知在第一绘图层上绘制透明区域;通知在第二绘图层上绘制多媒体数据的播放窗口,所述多媒体数据的播放窗口与所述透明区域重叠;

显示控制模块,用于通知同步显示所述透明区域和所述播放窗口,以及通知在所述播放窗口中播放所述多媒体数据。

根据本申请实施例的第四方面,提供一种界面渲染的装置,包括:

通知模块,用于将第一信息和第二信息发给图像处理单元gpu进程;所述第一信息用于指示绘制透明区域,所述第二信息用于指示绘制多媒体数据的播放窗口;

绘图模块,用于当接收到所述gpu进程的通知时,根据所述第一信息在绘图层绘制所述透明区域。

根据本申请实施例的第五方面,提供一种播放多媒体数据的设备,包括:

处理器;

用于存储处理器可执行指令的存储器;

其中,所述处理器被配置为:

发送第一信息和第二信息;所述第一信息用于指示绘制透明区域,所述第二信息用于指示绘制多媒体数据的播放窗口;

根据所述第一信息通知在第一绘图层上绘制透明区域;根据所述第二信 息通知在第二绘图层上绘制多媒体数据的播放窗口,所述多媒体数据的播放窗口与所述透明区域重叠;

当收到所述通知后,根据所述第一信息绘制所述透明区域,根据所述第二信息绘制所述播放窗口;

通知同步显示所述透明区域和所述播放窗口,以及通知在所述播放窗口中播放所述多媒体数据。

由于本申请对透明区域和播放窗口的显示过程进行了同步控制,因此可以避免现有技术中界面滚动时引起的界面白边和数据抖动现象。

附图说明

图1为本申请实施例中设备100的硬件框图;

图2为本申请实施例中播放多媒体数据的方法的流程图;

图3为本申请实施例中界面渲染的方法的流程图;

图3a、图3b、图3c为本申请实施例中三种场景图;

图4为本申请实施例中一个应用实例中的时序图;

图5为本申请实施例中播放多媒体数据的装置或界面渲染的装置的硬件架构图;

图6为本申请实施例中播放多媒体数据的装置软件逻辑框图;

图7为本申请实施例中界面渲染的装置软件逻辑框图。

具体实施方式

这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。

在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制 本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。

应当理解,尽管在本申请可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。

图1中,设备100具有中央处理器(centralprocessingunit,cpu)101、图形处理器(graphicprocessingunit,gpu)102等硬件设备,以及操作系统、操作系统内部或上层的应用(例如多媒体数据播放客户端、浏览器、移动终端桌面应用等)等软件,操作系统可以提供多种服务,例如多媒体数据播放服务等。

设备100可以是具有无线通信功能的手持设备、车载设备、可穿戴设备、电视设备、计算设备或连接到无线调制解调器的其它处理设备等等。

gpu102可以提供界面元素的渲染功能,通过渲染可以实现对界面上的界面元素进行排版。例如,浏览器运行时所呈现的界面效果、操作系统运行时所呈现的桌面效果、应用客户端呈现在操作系统桌面上的某个显示区域的效果均是gpu对待显示的数据的渲染结果。在硬件层面,cpu101与gpu102连接。操作系统运行在cpu101上,应用通过操作系统提供的接口将需要渲染的数据发给gpu;gpu对需要渲染的数据进行渲染,并将渲染后的结果存储,例如,可以存储在gpu102的显示存储器(vram,videoram)中。

可以通过渲染引擎调用gpu102来实现gpu的渲染功能。在某些例子中,渲染引擎可以是属于应用本身所提供的模块,在某些例子中,渲染引擎也可以是操作系统或第三方以插件等形式所提供的模块。在渲染时,渲染引擎可 以在vram中生成绘图层,绘制层是绘图的介质,在绘图层上绘制界面元素。通过操作系统中提供显示功能的显示应用获取绘图层的绘制结果进行呈现。

在界面上播放多媒体数据的一种方案是,在渲染界面的界面元素时,在一个绘图层设置透明区域,可以通过多媒体数据播放服务在另一个绘图层设置多媒体数据的播放窗口,在一个例子中,播放窗口的位置与透明区域的位置可以重叠(本申请中,重叠是指二者完全重合或基本重合)。

本申请所提供的播放多媒体数据的技术方案能够解决在界面滚动时引起的界面白边或数据抖动。

本申请提供的播放多媒体数据的方法的流程可参考图2,详细过程如下:

s201,通知在第一绘图层上绘制透明区域;通知在第二绘图层上绘制多媒体数据的播放窗口,多媒体数据的播放窗口与透明区域重叠;

s202,通知同步显示透明区域和播放窗口,以及通知在播放窗口中播放所述多媒体数据。

作为例子,s202可以在s201执行完成后运行,执行s201和s202的主体可以相同,也可以不同。例如可以s201和s202均通过gpu进程来执行(gpu进程是当gpu被调用时在操作系统启动的进程);也可以通过其他主体来执行s201,通过gpu进程来执行s202等。如果s201和s202的执行主体相同,将更有利于控制透明区域和播放窗口的同步显示过程。

本申请通过执行s202来控制显示服务同步显示透明区域和播放窗口,以避免界面白边和数据抖动。

本申请中,“通知”可以理解为通过发送指令指示(或控制)被通知的主体执行某个动作,该通知可以通过计算机执行指令承载。例如,可以通过gpu进程发送一条指令,通知该指令的接收者在第一绘图层上绘制透明区域;或者发送一条指令通知该指令的接收者在第二绘图层上绘制多媒体数据的播放窗口等等。

在s201阶段,绘制透明区域的通知和绘制播放窗口的通知的发送时机可以是获得第一信息和第二信息后,本申请中第一信息用来指示绘制透明区 域,第二信息用来指示绘制播放窗口,作为示例,第一信息和第二信息可以是诸如透明区域的坐标或尺寸等信息,也可以是能够计算出透明区域坐标或尺寸的信息。

以下以gpu进程执行图2所示的流程为例,第一信息和第二信息的获取方式可以是gpu进程从其他主体接收,例如,从渲染线程接收,还可以是gpu进程从其他主体接收第一信息,然后根据第一信息计算获得第二信息。

渲染线程发送第一信息或第二信息的时机可以是当初次渲染界面元素时,或者需要重新对界面元素排版时(例如,用户发出触发指令、界面从服务端下载新的业务数据等情况)。对于其他实体将第一信息和第二信息发送给gpu的过程可结合图3参考本文的相关部分描述。

gpu进程通知绘制透明区域和播放窗口的消息中可以携带第一信息和第二信息,也可以通知接收消息的实体从其他途径获取第一信息和第二信息。例如,gpu进程可以通知渲染引擎将第一信息和第二信息分别发给负责绘制透明区域的模块和绘制播放窗口的模块,或者gpu可以通知负责绘制透明区域的模块和绘制播放窗口的模块分别向渲染引擎请求第一信息和第二信息。

对于gpu进程来通知绘制透明区域和播放窗口的方式可以不作限制,例如,gpu进程可以分别启动两个并行的线程,一个线程负责通知绘制透明区域的位置,另一个线程负责通知绘制播放窗口的位置。再例如,gpu进程可以启动一个线程来串行发送绘制透明区域和播放窗口的通知,可以先通知绘制透明区域,再通知绘制播放窗口;也可以先通知播放窗口,再通知绘制透明区域。gpu进程可以通过扩展接口向多媒体播放服务发命令,以便设置播放窗口的位置。例如,可通过以下命令通知多媒体播放服务在绘制层绘制播放窗口,其中surfacex表示播放窗口所在的绘制层。

gl_apicallvoidgl_apientryglsetsurfacex(glintxoffset,glintyoffset,glintwidth,glintheight)

在本申请的s202阶段,可以由gpu进程通知操作系统的显示服务来显示重新排版后的应用的界面以及多媒体数据的播放窗口,由于统一由gpu进程 来通知显示服务,因此消除了透明区域和播放窗口的不同步显示问题,避免了白边和抖动现象。gpu进程还可以通知显示服务获取下一帧待显示的多媒体数据。

对于多媒体播放服务绘制播放窗口的方案可参考现有技术的实现方式,以下结合图3描述本申请中界面渲染的详细流程。

s301,将第一信息和第二信息发给gpu进程;第一信息和第二信息的定义参考前文描述;

s302,当接收到gpu进程的通知时,根据第一信息在绘图层绘制透明区域。

图3所述的流程可通过渲染引擎执行,不同于现有技术,渲染引擎发送第二信息的对象是gpu进程而不是多媒体数据播放服务;这里用gpu进程指代s202的执行主体。

获得第一信息的途径可以是根据预设参数获得,或者根据服务器下发的业务数据获得,或者根据用户的触发指令获得。例如,在初次渲染界面元素时,可以根据预设参数获得第一信息,或者将服务器下发的业务数据生成渲染树后获得第一信息,也可以是根据用户的触发指令获得第一信息。获得第二信息的途径可以与第一信息相同,也可以是先获得第一信息后,根据第一信息计算得到第二信息。

根据用户的触发指令生成第一信息和第二信息的过程可以参照以下描述:

用户向界面发出触发指令,该触发指令导致界面元素的位移发生改变。界面接收到用户的触发指令后,可以通知渲染引擎重新渲染,触发指令可以是按键消息、触摸消息等,触发指令中可以包括“上”、“下”、“左”、“右”以及移动距离等信息。界面通知渲染引擎的方式可以是从触发指令中获取与界面元素的位置变化有关的信息(例如代表方向的参数、偏移量的参数等)发给渲染引擎。渲染引擎可以根据界面元素的位置变化信息计算出界面元素新的位置信息,新的位置信息中包括第一信息和第二信息。

第一信息或第二信息可以与设置其他界面元素的位置信息一同发送,需要发送的各种信息可以通过一条消息发送,也可以通过不同的消息发送,具体可根据设计需求确定,本申请不做限制。作为示例,可以通过扩展接口将第一信息和第二信息通知渲染线程;由渲染线程将所述第一信息和第二信息分别通过不同的命令发给gpu进程,以触发gpu进程执行s202阶段的动作。

本申请中,界面滚动可以是在多媒体数据播放时,用户可能会对应用的界面进行某种操作,导致界面元素发生位移(例如用户触发滚动、翻页等动作)。当透明区域所在的界面上界面元素发生位移时,需要重新进行界面排版,透明区域的位置和多媒体数据的播放窗口的位置可能均需要相应调整。本申请中所指的界面不局限于应用的界面、操作系统的桌面等。多媒体数据可以是视频数据、3d动画、游戏数据等。

图3a-图3c列举了用户指令触发发生几种界面滚动现象的应用场景,值得注意,本申请所适用的应用场景不局限于所列举的实例。

图3a描述了浏览器的界面滚动的场景。浏览器界面中的透明区域是在绘制浏览器的界面元素时,由浏览器的渲染引擎所绘制;播放窗口是由多媒体数据播放服务在另一个绘图层绘制。由于透明区域和播放窗口重叠,因此用户看到的是播放窗口的呈现效果。浏览器的界面中其他区域显示有其他的界面元素(图中的文字块、图片块等)。用户通过界面上的滚动条发出触发指令,浏览器300在收到触发指令后,通知浏览器的渲染引擎对界面重新排版。

图3b中,在渲染iptv的操作系统的界面时,通过操作系统的渲染引擎绘制透明区域,通过多媒体数据播放服务绘制播放窗口;播放窗口和透明区域布满整个界面区域。用户通过遥控器发出上移、下移或翻页等触发指令,iptv的界面收到触发指令后,通知操作系统的渲染引擎对界面重新排版。

图3c中,平板电脑的桌面上放置有游戏app,游戏app的播放窗口重叠于桌面上的透明区域。用户通过手指左右滑动屏幕发出触发指令,使桌面元素的位置发生改变,桌面响应用户的触发指令,通知操作系统的渲染引擎对桌面元素重新排版。

对于其他可播放多媒体的设备的场景描述不再一一列举。

以下结合图4描述一个应用实例,当用户触发界面滚动时播放多媒体数据的时序图。通信的实体包括负责对应用的界面400进行渲染的渲染引擎401、gpu进程402、多媒体数据播放服务403,显示服务404、渲染引擎中实现绘图功能的绘图模块405。

用户向界面400发出触发指令,触发指令中携带有界面元素的移动方向和偏移量信息。

界面400响应触发指令,生成渲染请求发给渲染引擎401,渲染请求中携带有界面元素的移动方向和偏移量信息;

渲染引擎401计算获得界面元素新的位置信息,其中包括第一信息,并根据第一信息获得第二信息(第一/第二信息的定义参考上文描述),并通过渲染线程以两条指令分别发给gpu进程402;

gpu进程402将界面元素新的位置信息(包括第一信息)携带在一条绘图通知中发给绘图模块405,将第二信息携带在另一条绘图通知中发给多媒体数据播放服务403。

绘图模块405绘制界面元素时根据第一信息绘制透明区域的新位置,多媒体播放服务403将第二信息通知给该服务所对应的绘制模块,绘制播放窗口。

gpu进程403向显示服务404发送同步显示透明窗口和多媒体数据播放的通知,显示服务404获取绘制结果,呈现于界面,并将下一帧待显示的多媒体播放数据显示在播放窗口。

与前述播放多媒体数据的方法和界面渲染的方法的实施例相对应,本申请还提供了播放多媒体数据的装置和界面渲染的装置的实施例。

本申请播放多媒体数据的装置或界面渲染的装置的实施例可以应用在图1的设备100上,设备100的种类可参考上文描述。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在设备100的处理器将非易失性存储 器中对应的计算机程序指令读取到内存中运行形成的。从硬件层面而言,如图5所示,为本申请播放多媒体数据的装置或界面渲染的装置所在设备100的一种硬件结构图,除了图5所示的处理器、内存、网络接口、以及非易失性存储器、显示存储器之外,实施例中装置所在的设备100通常根据该智能设备的实际功能,还可以包括其他硬件,例如gpu等对此不再赘述。

一个实施例中,设备100作为播放多媒体数据的设备,可以将播放多媒体数据的装置和界面渲染的装置装载于该设备中,另外,多媒体播放服务的可执行指令也可以被装载于设备100中。此时设备100的处理器可以被配置为:

发送第一信息和第二信息;第一信息和第二信息的定义可以参见前文描述;

根据第一信息通知在第一绘图层上绘制透明区域;根据第二信息通知在第二绘图层上绘制多媒体数据的播放窗口,多媒体数据的播放窗口与透明区域可以重叠;

当收到通知后,根据第一信息绘制所述透明区域,根据第二信息绘制所述播放窗口;

通知同步显示所述透明区域和所述播放窗口,以及通知在播放窗口中播放所述多媒体数据。

请参考图6,播放多媒体数据的装置600,包括:

绘图控制模块601,用于通知在第一绘图层上绘制透明区域;通知在第二绘图层上绘制多媒体数据的播放窗口,所述多媒体数据的播放窗口与所述透明区域重叠;

显示控制模块602,用于通知同步显示所述透明区域和所述播放窗口,以及通知在所述播放窗口中播放所述多媒体数据。

装置600可以位于图像处理单元gpu进程中。

在一个实施例中,装置600还可以包括:

接收模块(图未示出),用于接收第一信息和第二信息,并将所述第一 信息和第二信息通知所述绘图控制模块601,所述第一信息用于指示绘制所述透明区域,所述第二信息用于指示绘制所述播放窗口。接收模块在初次渲染界面元素时或用户发出触发指令时,从渲染线程接收所述第一信息和所述第二信息;所述触发指令包括用户的滚动指令或翻页指令。

在另一个实施例中,装置600还包括:

接收模块(图未示出),用于接收第一信息,所述第一信息用于指示绘制所述透明区域;以及

计算模块(图未示出),用于根据所述第一信息获得第二信息,所述第二信息用于指示绘制所述播放窗口。

绘图控制模块601通知在第二绘图层上绘制多媒体数据的播放窗口包括:

绘图控制模块601通知多媒体数据播放服务,多媒体数据播放服务根据第二信息在第二绘图层绘制多媒体数据的播放窗口;第二信息用于指示绘制所述播放窗口。

多媒体数据可以包括视频数据、3d动画数据、游戏数据。

请参考图7,界面渲染的装置700包括:

通知模块701,用于将第一信息和第二信息发给图像处理单元gpu进程;所述第一信息用于指示绘制透明区域,所述第二信息用于指示绘制多媒体数据的播放窗口;

绘图模块702,用于当接收到所述gpu进程的通知时,根据所述第一信息在绘图层绘制所述透明区域。

另外,还可以包括:

计算模块(图中未示出),用于根据在初次渲染界面元素时的预设参数或用户的触发指令获得所述第一信息;所述用户的触发指令包括滚动指令或翻页指令。

计算模块还可以用于根据所述第一信息获得所述第二信息。

通知模块701将所述第一信息和所述第二信息发给所述gpu进程可以包括:

通过扩展接口将所述第一信息和所述第二信息通知渲染线程;

所述渲染线程将所述第一信息和所述第二信息分别通知所述gpu进程。

上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。

对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本申请方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。

以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。

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