CN111083551B - 弹幕渲染方法、装置、计算机可读存储介质和计算机设备 - Google Patents
弹幕渲染方法、装置、计算机可读存储介质和计算机设备 Download PDFInfo
- Publication number
- CN111083551B CN111083551B CN201911299140.2A CN201911299140A CN111083551B CN 111083551 B CN111083551 B CN 111083551B CN 201911299140 A CN201911299140 A CN 201911299140A CN 111083551 B CN111083551 B CN 111083551B
- Authority
- CN
- China
- Prior art keywords
- bullet screen
- picture
- configuration file
- screen data
- thread
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/431—Generation of visual interfaces for content selection or interaction; Content or additional data rendering
- H04N21/4312—Generation of visual interfaces for content selection or interaction; Content or additional data rendering involving specific graphical features, e.g. screen layout, special fonts or colors, blinking icons, highlights or animations
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0484—Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
- G06F3/04845—Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range for image manipulation, e.g. dragging, rotation, expansion or change of colour
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/435—Processing of additional data, e.g. decrypting of additional data, reconstructing software from modules extracted from the transport stream
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/443—OS processes, e.g. booting an STB, implementing a Java virtual machine in an STB or power management in an STB
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/47—End-user applications
- H04N21/475—End-user interface for inputting end-user data, e.g. personal identification number [PIN], preference data
- H04N21/4756—End-user interface for inputting end-user data, e.g. personal identification number [PIN], preference data for rating content, e.g. scoring a recommended movie
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/47—End-user applications
- H04N21/478—Supplemental services, e.g. displaying phone caller identification, shopping application
- H04N21/4788—Supplemental services, e.g. displaying phone caller identification, shopping application communicating with other users, e.g. chatting
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/80—Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
- H04N21/81—Monomedia components thereof
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- General Engineering & Computer Science (AREA)
- Human Computer Interaction (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Processing Or Creating Images (AREA)
- User Interface Of Digital Computer (AREA)
Abstract
本申请涉及一种弹幕渲染方法、装置、计算机可读存储介质和计算机设备,所述方法包括:当触发弹幕展示操作时,创建用于弹幕渲染的主线程所对应的子线程;基于所述子线程获取弹幕数据,将所述弹幕数据转换为弹幕图片;将所述弹幕图片传递至所述主线程;基于所述主线程渲染展示所述弹幕图片。本申请提供的方案可以实现弹幕渲染效率以及弹幕展示流畅性。
Description
技术领域
本申请涉及计算机技术领域,特别是涉及一种弹幕渲染方法、装置、计算机可读存储介质和计算机设备。
背景技术
随着计算机技术的发展,人们进行沟通交流的方式越来越丰富,采用弹幕的方式对多媒体进行评论、与他人进行交流互动的现象也越来越普遍。终端可以将用户在观看多媒体时触发的弹幕数据发送给服务器,由服务器下发到其他的终端,以使其他的终端解析弹幕数据并进行展示在多媒体页面。
传统方式中终端需要对每条弹幕数据逐一解析渲染,渲染效率低,严重影响多媒体页面流畅性。
发明内容
基于此,有必要针对弹幕渲染效率低的技术问题,提供一种弹幕渲染方法、装置、计算机可读存储介质和计算机设备。
一种弹幕渲染方法,包括:
当触发弹幕展示操作时,创建用于弹幕渲染的主线程所对应的子线程;
基于所述子线程获取弹幕数据,将所述弹幕数据转换为弹幕图片;
将所述弹幕图片传递至所述主线程;
基于所述主线程渲染展示所述弹幕图片。
一种弹幕渲染装置,所述装置包括:
线程创建模块,用于当触发弹幕展示操作时,创建用于弹幕渲染的主线程所对应的子线程;
弹幕解析模块,用于基于所述子线程获取弹幕数据,将所述弹幕数据转换为弹幕图片;将所述弹幕图片传递至所述主线程;
弹幕渲染模块,用于基于所述主线程渲染展示所述弹幕图片。
一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时,使得所述处理器执行所述弹幕渲染方法的步骤。
一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行所述弹幕渲染方法的步骤。
上述弹幕渲染方法、装置、计算机可读存储介质和计算机设备,将零散的弹幕数据绘制成一张弹幕图片,相比对弹幕数据进行逐一解析逐一渲染,基于弹幕图片可以实现弹幕数据的统一渲染,可以提高弹幕渲染效率;在触发弹幕展示操作时,创建主线程对应的子线程;复杂的弹幕数据解析的工作全部交由子线程完成,而用于弹幕渲染的主线程只需对现成的弹幕图片渲染展示即可,极大的缓解了主线程的渲染压力,进一步提高弹幕渲染效率,提升弹幕渲染流畅性。
附图说明
图1为一个实施例中弹幕渲染方法的应用环境图;
图2为一个实施例中弹幕渲染方法的流程示意图;
图3为一个实施例中由多种弹幕元素拼接而成的弹幕内容的示意图;
图4a为一种多媒体播放场景中多媒体播放页面的界面示意图;
图4b为另一种多媒体播放场景中多媒体播放页面的界面示意图;
图5为一个实施例中基于多个子线程进行弹幕图片绘制的流程示意图;
图6为一个实施例中用于弹幕数据解析的两级配置文件的示意图;
图7为一个具体实施例中弹幕渲染方法的流程示意图;
图8为另一个具体实施例中弹幕渲染方法的流程示意图;
图9为一个实施例中弹幕渲染装置的结构框图;
图10为另一个实施例中弹幕渲染装置的结构框图;
图11为一个实施例中计算机设备的结构框图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
图1为一个实施例中弹幕渲染方法的应用环境图。参照图1,该弹幕渲染方法应用于弹幕渲染系统。该弹幕渲染系统包括终端110和服务器120。终端110和服务器120通过网络连接。终端110具体可以是台式终端或移动终端,移动终端具体可以手机、平板电脑、笔记本电脑等中的至少一种。服务器120可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
如图2所示,在一个实施例中,提供了一种弹幕渲染方法。本实施例主要以该方法应用于上述图1中的终端110来举例说明。参照图2,该弹幕渲染方法具体包括如下步骤:
S202,当触发弹幕展示操作时,创建用于弹幕渲染的主线程所对应的子线程。
其中,弹幕展示操作是能够触发在多媒体播放页面展示弹幕数据的操作。弹幕展示操作可以是人为触发操作,比如在多媒体播放过程中用户作用于多媒体播放页面所展示的弹幕展示控件的触发操作。该触发操作可以是触摸操作、点击操作、光标操作、按键操作或语音操作等。弹幕展示操作也可以是自动触发操作,比如,当用户预先设定了默认展示弹幕的配置信息时,终端在每次打开多媒体播放页面时自动触发弹幕展示操作。
多媒体播放页面是指终端基于视频应用、直播应用等目标应用展示的页面。多媒体播放页面不仅用于展示多媒体,还用于展示弹幕数据。多媒体是由文本、音频、图像、视频等其中一种或多种组成的信息表达方式。弹幕数据是指服务器下发给终端与弹幕相关的数据,通过对弹幕数据进行解析,可以得到需要展示的弹幕内容。其中,弹幕是指在观看多媒体时展示的评论性字幕。弹幕可以是由用户观看多媒体时输入的评论内容生成的,也是根据用户观看多媒体时所触发的互动操作生成的。
当目标应用启动时,终端基于操作系统(Operating System,OS)为目标应用创建一个进程,与此同时立刻运行一个对应的线程,该线程为目标应用的主线程(MainThread)。主线程在目标引用启动时就开始运行。为目标应用创建的进程具有至少一个主线程。不同的主线程可以用于完成不同的数据处理任务。在本申请的实施例中,目标应用的至少一个主线程用于弹幕渲染,即将弹幕数据渲染展示在多媒体播放页面。在目标应用启动后,终端可以进一步为目标应用创建线程,此时创建的线程为主线程的子线程。每个主线程可以具有对应的一个或多个子线程。
具体地,终端基于目标应用的主线程展示多媒体播放页面。用户在观看多媒体过程中,可以基于多媒体播放页面输入评论内容或触发互动操作。终端将接收的评论内容或互动操作的信息发送给服务器。服务器可以根据该评论内容或互动操作的信息生成对应的弹幕数据,并下发给观看该多媒体的每个终端。若在多媒体播放过程中发生了弹幕展示操作,终端基于目标应用的主线程创建对应的子线程。
在一个实施例中,终端也可以根据接收的评论内容或互动操作的信息生成弹幕数据,并通过服务器下发到观看该多媒体的每个终端。
S204,基于子线程获取弹幕数据,将弹幕数据转换为弹幕图片。
其中,一条弹幕数据可以包括一种或多种弹幕元素。弹幕元素是组成弹幕内容的对象。弹幕内容是指需要展示的内容。组成弹幕内容的弹幕元素可以但不限于是弹幕正文、用户标识、用户等级、背景、发送时间中的至少一种。可选地,弹幕元素还可以包括互动操作信息、互动操作所对应的响应信息等,在此不做限定。其中,弹幕正文是指用户在观看多媒体时输入的评论内容,互动操作信息是指用户观看多媒体时所触发的互动操作相关的信息。
不同弹幕元素对应的元素内容可以不同。元素内容是指弹幕数据中弹幕元素对应的具体内容。例如,弹幕元素“用户标识”对应的元素内容可以是具体的用户的昵称、用户的手机号码、或用户的头像等。弹幕元素“背景”对应的元素内容可以是具体的一张或多张图片。弹幕元素“弹幕正文”对应的元素内容可以是终端获取的用户输入的评论内容等。比如,假设一条弹幕数据的弹幕内容为如图3所示,则该弹幕内容所包含的元素内容包括用户勋章、用户等级、用户昵称和弹幕正文。弹幕图片是指基于弹幕元素的元素内容绘制而成的图片。
具体地,终端基于子线程获取多媒体播放页面当前展示的多媒体所对应的弹幕数据。弹幕数据可以是实时从服务器获取的,也可以是预先存储在终端的弹幕数据等。具体地,终端可以在多媒体播放过程中向服务器发送对弹幕数据的拉取请求,该拉取请求用于指示服务器下发对应的该多媒体对应的弹幕数据,从而终端可以接收下发的弹幕数据。终端也可以在缓存或下载多媒体时从服务器获取该多媒体对应的弹幕数据,并将弹幕数据存储于终端,从而播放多媒体时可以从缓存中获取该多媒体对应的弹幕数据。
进一步地,终端基于子线程从拉取到的每条弹幕数据中解析出当前多媒体播放场景所需要展示的每种弹幕元素的元素内容。终端基于子线程按照预设顺序分别将每条弹幕数据对应的元素内容进行拼接,得到每条弹幕数据对应的弹幕内容。终端基于子线程对目标时段的多条弹幕数据对应的弹幕内容进行排版布局,将排版后的弹幕内容绘制成一张弹幕图片。可以理解,每个目标时段具有对应的弹幕图片。
在一个实施例中,目标应用对应的程序代码中包含用于对弹幕数据进行解析的解析脚本。终端在子线程中通过运行该解析脚本对弹幕数据进行解析,转换得到对应的弹幕图片。
S206,将弹幕图片传递至主线程。
具体地,终端在子线程中完成弹幕图片绘制后,将弹幕图片回调至主线程。在一个实施例中,主线程对子线程进行弹幕图片绘制的过程进行监听,当监听到弹幕图片绘制完成时,主动调取弹幕图片。
S208,基于主线程渲染展示弹幕图片。
其中,弹幕图片与多媒体可以基于不同图层展示在多媒体播放页面的同一区域,即多媒体页面与弹幕图片重叠展示。多媒体与弹幕图片也可以是展示在多媒体页面不同区域。
具体地,如图4a所示,当弹幕图片402与多媒体404展示在多媒体播放页面的同一区域时,终端在主线程中基于目标图层的上层图层渲染展示弹幕图片。如图4b所示,当弹幕图片402与多媒体404展示在多媒体播放页面的不同区域时,终端在主线程中可以基于目标图层渲染展示弹幕图片。目标图层是多媒体播放页面中用于渲染展示多媒体的图层。以图片的形式展示弹幕内容可以提前将零散的弹幕数据固化下来,主线程无需对弹幕数据逐条解析渲染,有助于提高弹幕渲染效率。
在一个实施例中,若弹幕数据是从终端本地缓存拉取得到的,终端只需在用户首次基于缓存的弹幕数据进行弹幕渲染时将弹幕数据转换为弹幕图片,后续可以基于首次渲染得到的弹幕图片直接进行弹幕渲染,实现弹幕图片复用,减少了弹幕图片转换次数,节约终端资源,同时提高了弹幕渲染效率。
上述弹幕渲染方法,将零散的弹幕数据绘制成一张弹幕图片,相比对弹幕数据进行逐一解析逐一渲染,基于弹幕图片可以实现弹幕数据的统一渲染,可以提高弹幕渲染效率;在触发弹幕展示操作时,创建主线程对应的子线程;复杂的弹幕数据解析的工作全部交由子线程完成,而用于弹幕渲染的主线程只需对现成的弹幕图片渲染展示即可,极大的缓解了主线程的渲染压力,进一步提高弹幕渲染效率,提升弹幕渲染流畅性。
在一个实施例中,根据多媒体播放页面当前所展示的多媒体片段的起始时间和持续时长,生成弹幕同步请求;基于弹幕同步请求从服务器拉取在起始时间和持续时长对应的目标时段内产生的至少一条弹幕数据;根据预设的弹幕屏蔽信息对所拉取的弹幕数据进行过滤。
其中,多媒体播放页面所展示的多媒体内容包括多个多媒体帧。根据多媒体的表达形式不同,对应的多媒体帧可以是视频帧、音频帧等。连续的一个或多个多媒体帧可以构成一个多媒体片段。多媒体包括至少一个多媒体片段。每个多媒体片段具有对应的起始时间和持续时长。起始时间是多媒体片段在真个多媒体中开始播放的时间。不同多媒体片段具有不同的起始时间,但所对应的播放时长可以相同也可以不同。根据起始时间t1和持续时长T,可以确定相应多媒体片段对应的播放时段[t1,t1+T],下文称作目标时段。
在多媒体播放过程中,任一观看该多媒体的用户可以针对该多媒体内容发起弹幕。在此期间产生的每条弹幕数据具有对应的时间。该时间戳可以是构成弹幕数据的用户评论内容的获取时间或互动操作的触发时间,也可以是弹幕数据的生成时间。
具体地,当多媒体播放页面展示至哪一多媒体片段时,终端在多媒体播放页面同步渲染展示在该多媒体片段对应目标时段所产生的每条弹幕数据。多媒体播放页面按照播放时序依次展示每个多媒体片段。多媒体播放页面所展示的多媒体资源具有对应的多媒体标识。多媒体标识是能够唯一标识一则多媒体资源的信息,具体可以是多媒体的标题、简介、资源提供方等其中一项或多项拼接形成的字符串。
终端在开始播放每个多媒体片段时,终端根据多媒体标识,以及该多媒体片段的起始时间和持续时长生成弹幕同步请求,将弹幕同步请求发送至服务器。服务器获取起始时间和持续时长对应目标时段内产生的弹幕数据,将所获取的弹幕数据返回至终端。
进一步地,终端查询目标应用当前的登录用户是否配置有对应的弹幕屏蔽信息。弹幕屏蔽信息包括用户指定需要屏蔽不需要展示的弹幕类型。换言之,用户可以按照弹幕类型进行弹幕内容屏蔽,如重复的弹幕内容、位于屏幕顶部的弹幕内容、位于屏幕底部的弹幕内容、滚动展示的弹幕内容、以彩色展示的弹幕内容、包含某种特定弹幕元素的弹幕内容,或者包含互动操作信息的弹幕内容等。互动操作信息可以是礼物发送触发信息、表情发送触发信息等。
终端根据弹幕屏蔽信息对所拉取的每条弹幕数据进行筛选。当一条弹幕数据的弹幕类型属于弹幕屏蔽信息所指定的弹幕类型,终端将该弹幕数据过滤,不再进行后续处理。当一条弹幕数据不属于弹幕屏蔽信息所指定的弹幕类型,终端将该弹幕数据保留,可以对该弹幕数据进一步解析转换至弹幕图片。
在一个实施例中,终端接收的弹幕数据并不一定是用于展示的弹幕数据。当一条弹幕数据的弹幕类型属于弹幕屏蔽信息所指定的弹幕类型,终端可以进一步解析弹幕数据中是否包含有弹幕元素。当弹幕数据中包含弹幕元素时,可以确定弹幕数据为用于展示的弹幕数据,可以进一步解析弹幕元素对应的元素内容。当确定弹幕数据不为用于展示的弹幕数据,终端也可将该弹幕数据过滤。
在一个实施例中,在不属于直播的场景中,终端也可以一次从服务器拉取多个多媒体片段对应的弹幕数据,以节约服务器交互资源。
本实施例中,在对弹幕数据进行解析之前对弹幕数据进行过滤,可以精准线索需要解析的弹幕数据的数据量,可以节约终端数据处理资源,同时可以提高弹幕数据解析效率。
在一个实施例中,将弹幕数据转换为弹幕图片包括:基于弹幕数据生成弹幕图片的绘制任务;将绘制任务存储至任务队列;基于空闲的至少一个子线程对任务队列中的绘制任务进行处理,得到每个绘制任务对应的弹幕图片。
具体地,在本实施例中,用于弹幕渲染的主线程所对应的子线程具有多个,如图5所示,其中至少一个子线程专用于获取弹幕数据,在对弹幕数据进行过滤后,基于过滤后的弹幕数据生成对应的弹幕图片绘制任务,并将绘制任务存储至任务队列。其余子线程用于执行任务队列中的绘制任务。当任务队列中存在待处理的绘制任务时,基于该待处理的绘制任务的任务标识生成任务通知,将任务通知发送至每个处于空闲状态的子线程。当存在子线程响应任务通知,对该待处理的绘制任务进行处理时,将该绘制任务的任务状态变更为处理中。当处理完毕时将得到的弹幕图片传递至主线程进行渲染展示。
假设在某一时刻存在i个处于空闲状态的子线程,且任务队列中同时存在j个待处理的绘制任务,则当i≥j时每个待处理的绘制任务可分得一个空闲的子线程,当j≥2时可以对多个待处理的绘制任务进行并发处理。当j≥i时,可以基于每个空闲的子线程处理一个待处理的任务,当i≥2时部分待处理的绘制任务得到并发处理。
在一个实施例中,上述弹幕渲染方法还包括:基于主线程对来自子线程的异常通知进行监听;当监听到异常时,释放发生异常的子线程,重新创建对应的子线程。当存在子线程抛出异常时,子线程基于线程唯一标识符生成异常通知,将异常通知发送至主线程。主线程触发关闭该异常的子线程,重新创建对应的子线程继续执相应绘制任务,形成一个良性循环控制系统,从而可以使绘制任务能够得到及时执行,保证弹幕渲染效果。
在一个实施例中,当子线程执行绘制任务执行失败时自动触发重新执行该绘制任务。若在重复执行预设次数之后仍旧失败,将该绘制任务丢弃。
本实施例中,基于任务队列,可以利用多个子线程对多个绘制任务进行并发处理,大大提高绘制任务处理效率,进而提高弹幕渲染效率。
在一个实施例中,上述弹幕渲染方法还包括:当触发弹幕展示操作时,确定弹幕展示操作所指向的多媒体播放场景;获取多媒体播放场景所涉及的每种弹幕类型分别对应的第一配置文件以及适用于全部弹幕类型的第二配置文件。
其中,终端可以为不同多媒体播放场景提供的不同的多媒体播放界面。比如,当多媒体为视频时,视频可是通过网络实时获取的视频,也可以是缓存于终端的视频,还可以是终端实时录制的视频等。终端实时录制的视频所对应的视频播放界面可以包括录屏直播界面和摄像头直播界面。终端可以在视频播放界面,接收与该视频相关的弹幕数据。
不同多媒体播放场景所涉及的弹幕类型可能不同。弹幕类型是将弹幕数据按照弹幕展示样式分类后对应的类型。终端可以根据弹幕数据对应的弹幕类型确定对应的弹幕展示样式。可选地,每种多媒体播放场景可以包含一种或多种弹幕展示样式。
如上文所述,一条弹幕内容是由多种弹幕元素按照一定顺序拼接而成的。同一弹幕元素在不同多媒体播放场景中的展示参数(如字体大小、字体颜色、图片大小等)也可能不同。因而,弹幕展示样式的差异主要表现在所涉及的弹幕元素、弹幕元素之间的拼接顺序和弹幕元素的展示参数。例如,终端可以只展示弹幕数据包含的评论内容;也可以展示弹幕数据包含的评论内容以及该评论内容对应的发送终端的用户标识;还可以在展示评论内容时,展示该评论内容对应的发送终端的用户标识、该用户标识对应的等级图标等。
如上图4a所示,在经典游戏直播场景中,所采用的弹幕展示样式可以是将勋章、用户等级、用户昵称和弹幕正文四种元素依次拼接。如上图4b所示,在录屏直播场景中,所采用的弹幕展示样式可以有多种,如将用户昵称与弹幕正文两种元素依次拼接,将用户等级、用户昵称及弹幕正文三种元素依次拼接等。可以理解,在语音直播、摄像头直播或视频回放等其他场景均可根据需求采用不同的弹幕展示方式。
对于不同弹幕类型的弹幕数据,对应的解析逻辑不同。传统方式基于目标应用中解析脚本对弹幕数据进行解析,这种硬编码的方式只能以一种写死的解析逻辑对弹幕数据进行解析,一旦需要对多媒体播放场景的弹幕展示样式进行变更或者进行多媒体播放场景的拓展,就只能依赖对目标应用进行版本更新,才能实现解析逻辑的变更,具有较高的弹幕展示样式变更成本。
为了解决上述问题,本申请的实施例基于配置文件记录弹幕数据对应的解析逻辑。基于配置文件可以支持对弹幕数据的解析逻辑进行动态配置。目标应用的开发人员随时可以在配置文件中其所记录的解析逻辑进行变更,继而实现弹幕展示样式的变更。为了适应不同的多媒体播放场景,可以在配置文件中同时配置多媒体播放场景对应的弹幕数据解析逻辑。
为了在支持动态变更弹幕展示样式的基础上,提高弹幕渲染效率,可以基于不同的配置文件分别记录对不同弹幕类型的弹幕数据进行解析的逻辑,即一个配置文件用于基于对一种弹幕类型的弹幕数据进行解析的逻辑。如此,当终端基于子线程进行弹幕数据解析时只需加载相应弹幕类型对应的配置文件,减少配置信息加载量,从而可以提高弹幕数据解析效率。
每种弹幕类型对应的配置文件所需记录的配置信息包括:弹幕类型、该弹幕类型所需展示的弹幕元素、每种弹幕元素的元素属性等。其中,元素属性包括元素类型、展示参数等。元素类型可以是文本、图片等。当弹幕类型所需展示的弹幕元素包含图片时,配置文件所记录的弹幕元素的元素属性还包括该图片的图片来源类型和图片存储地址等。同一条弹幕内容可能包含多种类型的图片,如勋章、等级图标等。
虽然不同弹幕类型所需展示的弹幕元素、弹幕元素之间的拼接顺序或者弹幕元素的展示参数可能不同,但不同弹幕类型所涉及的图片却是基本一致的,而描述这些图片的存储地址的语句在配置文件中却占据了较多的字节。基于此,本申请的实施例将配置文件拆分为两级,即拆分为第一配置文件和第二配置文件。其中,第一配置文件仅用于记录相应弹幕类型所需展示的弹幕元素以及每种弹幕元素的基本元素属性。基本元素属性包括元素类型、展示参数、图片来源类型、图片资源索引等。第二配置文件用于记录图片来源类型弹幕元素的通用元素属性。通用元素属性是指图片存储地址。第二配置文件还记录了图片存储地址与第一配置文件中图片资源索引的对应关系。如此,服务器预存储了多种弹幕类型分别对应的第一配置文件和适用于全部弹幕类型的一个第二配置文件。
具体地,当触发弹幕展示操作时,终端确定发生弹幕展示操作的多媒体标识,基于多媒体标识生成弹幕同步请求,将弹幕同步请求发送至服务器。服务器根据多媒体标识可以确定当前的多媒体播放场景,进一步确定该多媒体播放场景所涉及的弹幕类型(下文称作目标弹幕类型)。服务器将第二配置文件以及每个目标弹幕类型对应的第一配置文件发送至终端。如图6所示,假设服务器预存储了弹幕类型Ai对应的第一配置文件Ai和通用于全部弹幕类型的第二配置文件B,1≤i。弹幕同步请求所涉及的目标弹幕类型为A1和A2,则服务器将第一配置文件A1、第一配置文件A2和第二配置文件B发送至终端。
本实施例中,基于配置文件的形式实现对弹幕的解析,可以支持对弹幕数据的解析逻辑进行动态配置,具备动态增、删、改的能力,通过对配置文件的修改,动态控制弹幕的展示样式,提高弹幕展示样式变更灵活性。对于多场景的情况,可以极大减少弹幕展示变更成本,也便于用户在无需对目标应用进行版本升级的情况下体验到最新的弹幕展示样式。
在一个实施例中,弹幕数据包括弹幕类型;将弹幕数据转换为弹幕图片包括:根据弹幕类型对应第一配置文件所记录的配置信息,确定弹幕类型所需展示的弹幕元素;从弹幕数据或预置的第二配置文件中解析弹幕元素的元素内容;根据第一配置文件记录的配置信息,将元素内容转换为弹幕图片。
其中,弹幕数据包括弹幕类型。第一配置文件还记录了相应弹幕类型所需展示的弹幕元素的元素标识,即第一配置文件中所记录的基本元素属性还包括元素标识。元素标识相当于目标元素对应的元素内容的取值索引,根据该元素标识可以查找该目标元素对应的元素内容。元素标识可以通过数字、字母和符号中的至少一种字符组成的字符串来表示。例如,目标元素“勋章”对应的元素标识可以表示为gm;目标元素“用户等级”对应的元素标识可以表示为ul;目标元素“用户昵称”对应的元素标识可以表示为nick;目标元素“弹幕正文”对应的元素标识可以表示为msg。
具体地,终端在子线程中根据弹幕数据所记录的弹幕类型获取对应的第一配置文件,基于第一配置文件确定该弹幕类型所需展示的目标元素。弹幕类型所需要展示的目标元素可以是一个或多个。终端根据第一配置文件所记录的每个目标元素的元素标识从弹幕数据或第二配置文件中获取相应的元素内容。终端基于获取到的元素内容,拼接转换得到对应的弹幕图片。
在一个实施例中,元素内容的获取方式有多种,例如,可以直接根据目标元素的元素标识从弹幕数据中获取对应的元素内容;也可以是综合第二配置文件及弹幕数据得到目标元素对应的元素内容;还可以是根据目标元素的元素标识从服务器获取的元素内容等,在此不做限定。
本实施例中,针对不同弹幕类型分别建立不同的配置文件,当触发了弹幕展示时,只需拉取适用于当前多媒体播放场景所涉及弹幕类型的配置文件,在满足任意多媒体播放场景的渲染需求情况下精准线索了配置信息,有助于提高弹幕渲染效率。此外,基于两级配置文件记录弹幕元素的元素属性,而非直接将元素属性记录在弹幕数据中,由于两级配置文件只需从服务器拉取一次即可多次利用,如此,面对海量弹幕数据,可以大大减少数据传输量,节约数据传输资源。
鉴于不同场景的弹幕展示样式的差异往往体现在字体大小、颜色等方面上,而图片素材往往是一致的,采用二级配置文件的方式将图片存储路径放到第二配置文件中,而第一配置文件只存放图片索引序号,如此,不同多媒体播放场景可以复用第二配置文件,而只需独立配置自身的第一配置文件。通过两级配置文件来描述元素属性,可以有效减小配置文件体积,有效降低配置文件的大小,避免终端解析配置文件时出现OOM(Out OfMemory,是指应用程序占用内存过高而被终端操作系统强制关闭)的现象,可以进一步提高弹幕渲染效率。尤其在需要处理复杂的图文混排弹幕数据时,两级配置文件的方式对弹幕渲染效率的提高效果尤为明显。
在一个实施例中,从弹幕数据或预置的第二配置文件中解析弹幕元素的元素内容包括:根据第一配置文件记录的配置信息,确定弹幕元素所属的元素类型;基于元素类型,从弹幕数据或预置的第二配置文件中解析弹幕元素的元素内容。
其中,元素类型是将元素按照元素内容的属性分类后对应的类型。元素类型包括文本、图片。在一些实施例中,元素类型可包括语音等。例如,用户标识通常是由数字、字母和符号中的至少一种字符组成的字符串,则用户标识所属的元素类型为文本;可选地,若用户标识为用户头像,则用户标识所属的元素类型为图片。第一配置文件还记录了相应弹幕类型所需展示的弹幕元素的元素类型,即第一配置文件中所记录的基本元素属性还包括元素类型。终端根据第一配置文件可确定目标元素所属的元素类型。
具体地,不同的元素类型对应的元素内容的获取方式通常是不同的。终端可以根据元素类型确定元素内容的获取方式,进而根据该元素内容的获取方式从弹幕数据或第二配置文件中获取目标元素对应的元素内容。可选地,元素类型与元素内容的获取方式的对应关系可以根据实际应用需求设定。例如,文本类型的元素内容的获取方式可以是直接根据目标元素的元素标识从弹幕数据中获取对应的元素内容;图片类型的元素内容的获取方式可以是综合第二配置文件及弹幕数据得到目标元素对应的元素内容;语音类型的元素内容的获取方式可以是从服务器获取的元素内容等,在此不做限定。可以理解,当弹幕数据所中弹幕元素不涉及图片时,弹幕数据解析过程可以不涉及第二配置文件。
在一个实施例中,目标元素所属的元素类型可以是一个或多个。具体地,当目标元素所属的元素类型是文本类型和图片来源类型时,则终端可以按照文本类型的元素内容的获取方式获取目标元素对应的文本内容,及按照图片类型的元素内容的获取方式获取目标元素对应的图片内容,将获取的文本内容和图片内容组成该目标元素对应的元素内容。例如,弹幕正文可以包含用户输入的文本内容和图片内容,其中,图片内容可以是用户上传的图像,也可以是用户选中的表情等。
在本实施例中,第一配置文件直接记录了目标元素所属的元素类型,终端确定目标元素所属的元素类型后,可以针对每种元素类型采用用一种元素内容获取方式,而不需要针对每一个元素采用不同的内容获取方式,可以提高弹幕数据处理的简便性。
在一个实施例中,基于元素类型,从弹幕数据或预置的第二配置文件中解析弹幕元素的元素内容包括:当元素类型为文本时,从第一配置文件中获取弹幕元素所关联的元素标识;从弹幕数据中获取与元素标识相对应的文本内容,将文本内容作为弹幕元素对应的元素内容。
其中,弹幕数据的数据格式可以是Json格式。Json格式的弹幕数据以键值对的方式记录了弹幕类型以及一种或多种弹幕元素的元素取值。比如,对于上图3所示的弹幕内容,对应的弹幕数据可以是:
其中,键名“type”代表弹幕类型,对应的键值为1;键名“nick”代表用户昵称,对应的键值为火炎焱燚;键名“msg”代表弹幕正文,对应的键值为Fold:弃牌;键名“gm”代表勋章等级,对应的键值为middle;键名“ul”代表勋章等级,对应的键值为47。
配置文件的数据格式也可以是Json格式。Json格式的第一配置文件以键值对的方式记录了弹幕类型以及该弹幕类型所需展示的一种或多种弹幕元素(下文称作目标元素)的基础元素属性。比如,弹幕类型1对应的第一配置文件可以是:
其中,键名“danmaku_type”代表弹幕类型,对应的键值为1;所需要展示的目标元素包括:"guardian_medal_image","user_level_image","nick",和"content"。该四个目标元素分别对应图3中的一种弹幕元素。其中,目标元素"guardian_medal_image"代表勋章图片,对应的元素属性包括:元素类型element_type为2(1为文本,2为图片),图片来源类型source_type为1(1为本地图片、2为网络图片),图片资源索引source_index为guardian_medal,元素标识key为gm,元素权重weight为200,对应的展示参数为height图片高度18,width图片宽度18。对于元素类型element_type为1的目标元素,如nick对应的展示参数为color文本字体颜色0x888899,size文本字体大小18。目标元素nick对应的可点击属性clickable为true(true为可点击,false为不可点击)。当目标元素的元素属性不包括可点击属性clickable时,默认该目标元素不可点击。
具体地,当元素类型为文本时,终端从弹幕数据中获取与该元素标识相对应的文本内容,将获取的文本内容作为相应目标元素的元素内容。也就是说,弹幕数据包含了需要展示的文本内容,当目标元素的元素类型为文本,终端可以从第一配置文件得到目标元素的元素标识,在弹幕数据中查询将元素标识作为键名的键值对,将该键值对中的键值作为所需要展示的目标元素对应的元素内容。例如,在上述举例中,当目标元素为用户昵称,用户昵称对应的元素标识为nick,在弹幕数据中查询将nick作为键名的键值对"nick":"火炎焱燚",将该键值对中的键值火炎焱燚作为目标元素用户昵称的元素内容。
在一个实施例中,基于元素类型,从弹幕数据或预置的第二配置文件中解析弹幕元素的元素内容包括:当元素类型为图片时,从第一配置文件中获取弹幕元素所关联的元素标识和图片资源索引;根据元素标识,从弹幕数据中获取对应的图片取值;基于图片资源索引和图片取值,从第二配置文件中获取相应图片存储地址;根据图片存储地址获取对应的图片,将获取的图片作为弹幕元素对应的元素内容。
其中,图片类型弹幕元素的展示形式可以是图标、图像等,如用户等级图标、用户性别图标、用户标识图像等。第二配置文件可以包含每一个图片类型弹幕元素所能展示的一种或多种图片的图片存储地址。
Json格式的第二配置文件以键值对的方式记录了一个或多个图片资源索引以及图片资源索引对应的图片存储地址。比如,在一些实施例中,第二配置文件可以是:
其中,/image/height.png为图片资源索引guardian_medal和图片取值height的图片所对应的图片存储地址。
具体地,当元素类型为图片时,终端综合第二配置文件和弹幕数据中获取与该元素标识相对应的图片存储地址。终端根据第一配置文件所记录的图片类型弹幕元素的元素标识,基于子线程从弹幕数据中查找将该元素标识对应的图片取值。也就是说,弹幕数据并不包含该目标元素对应的图片存储地址,而是提供了目标元素对应的图片存储地址的取值。
当目标元素的元素类型为图片,终端可以从第一配置文件得到目标元素的元素标识,在弹幕数据中查询将元素标识作为键名的键值对,将该键值对中的键值作为所需要展示的目标元素对应的图片取值。例如,在上述举例中,当目标元素为用户等级,用户等级对应的元素标识为ul,在弹幕数据中查询将ul作为键名的键值对"ul":47,将该键值对中的键值47作为目标元素用户等级的图片取值。
进一步地,第一配置文件还记录了图片类型弹幕元素对应的图片资源索引。图片资源索引是用于从第二配置文件中提取图片类型弹幕元素所对应图片存储地址的索引字段。终端在第一配置文件中读取该图片类型弹幕元素的图片资源索引,基于该图片资源索引以及从弹幕数据中提取的图片取值从第二配置文件中获取对应的图片存储地址。
第二配置文件中包含了不同多媒体播放场景所涉及的全部图片类型弹幕元素基于不同图片取值的图片的存储地址。图片取值和图片资源索引形成索引条件。图片存储地址与索引条件一一对应。终端根据图片取值和图片资源索引形成的索引条件,可以从第二配置文件中获取对应的图片存储地址。例如,在上述举例中,当目标元素为用户等级时,则用户等级对应的配置信息可以包含每一个用户等级对应的图片,终端根据接收的弹幕数据可以确定用户等级元素对应的图片取值,从而从用户等级对应的配置信息中获取对应的图片作为该用户等级元素对应的元素内容。
当目标元素的元素类型为图片,终端可以从第一配置文件得到目标元素的元素标识,在弹幕数据中查询将元素标识作为键名的键值对,将该键值对中的键值作为所需要展示的目标元素对应的图片取值。例如,在上述举例中,目标元素用户等级对应的图片取值为47,图片资源索引为user_level,由此可以在第二配置文件中查询到目标元素用户等级对应的图片存储地址为https//www.egame.qq.com/47.jpg。终端将从该图片存储地址获取的图片作为目标元素对应的元素内容。
在一个实施例中,第二配置文件记录了每个图片类型弹幕元素基于不同图片取值的图片。也就是说,第二配置文件直接包含图片本身。第二配置文件中包含的图片可以是按照图片格式进行压缩后保存的。不同的图片格式对应的图片解析方式不同。其中,图片的格式可以包括png(Portable Network Graphics,便携式网络图形)格式、gif(GraphicsInterchangeFormat,图像互换格式)格式、webp(有损压缩预测编码)格式等。终端在获取到目标元素对应的图片之后,可以根据该图片的格式对应的图片解析方式解析该图片,以展示该图片。
在一个实施例中,图片类型弹幕元素所对应的图片存储地址或图片本身也可以直接从弹幕数据中获取。终端可以根据实际应用将归属于图片类型的弹幕元素作进一步的区分。
类似地,在一些实施例中,对于文本内容的数据量较大的弹幕元素,也可以采用图片类型对应的元素内容获取方式。即基于第二配置文件或者第三配置文件预存文本类型弹幕元素所能展示的文本内容,进而根据第一配置文件记录的元素标识在第二配置文件或者第三配置文件中获取文本内容。第三配置文件是区别于第一配置文件和第二配置文件的其他配置文件。
在一个实施例中,第一配置文件还记录图片类型弹幕元素的图片来源类型。图片来演类型包括本地图片和网络图片。图片来源类型可以和上述图片资源索引及图片取值共同构成索引条件。对应地,在第二配置文件中可以根据图片来源类型对图片存储地址进行分类。如此,终端确定图片来源类型后,可以仅在该图片来源类型的图片存储地址中查询图片类型弹幕元素的图片存储地址,进一步精准线索图片地址查询范围,有助于提高弹幕图片转换效率,进而提高弹幕渲染效率。
在本实施例中,通过区分文本类型和图片类型,文本类型弹幕元素可以从弹幕数据中获取对应的文本内容,图片类型弹幕元素可以从弹幕数据中获取图片取值,根据图片取值从第二配置文件中获取对应的图片存储地址。弹幕数据只需要包含需要展示的元素内容的文本数据,而不需要携带图片数据,可以极大地减少弹幕数据的数据量,降低弹幕数据传输时的网络开销。
在一个实施例中,根据第一配置文件记录的配置信息,将元素内容转换为弹幕图片包括:基于子线程从第一配置文件中获取弹幕元素的元素权重;按照元素权重依次将弹幕数据中各弹幕元素的元素内容进行拼接,得到相应弹幕数据的富文本消息;对所获取的多条弹幕数据的富文本消息进行排版后,绘制生成目标时段的弹幕图片。
其中,元素权重是用于控制各弹幕元素之间拼接顺序的参数。富文本消息是富文本格式的弹幕内容。富文本消息包括拼接并排版布局好的多个弹幕元素。比如,上图3即为将弹幕数据中用户勋章、用户等级、用户昵称和弹幕正文依次拼接得到的一则富文本消息。
具体地,要得到该富文本消息首选按照上述方式确定构成该富文本消息的弹幕元素以及每个弹幕元素的元素内容。在获取元素内容后,终端基于子线程在第一配置文件中读取构成该富文本消息的每个弹幕元素的元素权重,按照元素权重升序或者降序将各弹幕元素的元素内容进行拼接。比如,在上述举例的弹幕数据中,四种弹幕元素"guardian_medal_image","user_level_image","nick",和"content"对应的元素权重weight依次为200、190、100和90。按照元素权重降序拼接各弹幕元素的元素内容,即可得到上图3所示的富文本消息。
进一步地,终端对拼接得到的富文本消息进行预排版,并将排版后的富文本消息绘制成一张弹幕图片,最终渲染在显示屏幕上。不同操作系统的终端可以采用不同的排版方法。比如,iOS系统中常基于CoreText或TextKit等实现文字排版或者图文混排的需求。其中,CoreText是用于处理文字和字体的底层技术,它直接和Core Graphics(核心绘图框架)交互;真正负责绘制的是文本部分。当需要绘制图片时,可以使用CoreText给图片预留出位置,然后用Core Graphics绘制图片。TextKit是对CoreText的封装。
在一个实施例中,可以基于拉取得到的目标时段所产生的每条弹幕数据分别生成对应的解析任务,将解析任务存储至任务队列。同时基于拉取得到的目标时段所产生的全部弹幕数据生成一个对应的绘制任务,将该绘制任务存储任务队列。通过执行一个解析任务可以得到相应弹幕数据对应的富文本消息。目标时段内全部弹幕数据分别对应的解析任务的输出作为绘制任务的输入。通过执行该绘制任务可以将目标时段产生的全部弹幕数据对应的富文本消息排版绘制成一张弹幕图片。如此,可以将解析任务分散至多个子线程同步执行,最后只需要将同步得到的这些富文本消息整合在一起即可,大大提高弹幕解析效率。
本实施例中,首先将每条弹幕数据中弹幕元素的元素内容拼接成为对应的富文本消息,以富文本消息为单位进行排版,可以保证弹幕图片绘制时对弹幕元素之间的排版更加整齐可控,提高弹幕图片绘制效率。
在一个实施例中,按照权重依次将弹幕数据中各弹幕元素的元素内容进行拼接包括:基于子线程从第一配置文件中获取弹幕元素的展示参数;基于展示参数对应的目标展示样式展示相应弹幕元素的元素内容;按照元素权重依次将弹幕数据中基于目标展示样式展示的各元素内容进行拼接。
其中,展示参数是指与元素内容的展示特性相关的参数。第一配置文件中记录了相应弹幕类型所需展示的每个弹幕元素的展示参数。终端根据第一配置文件可以确定元素内容对应的展示参数。素内容对应的展示参数包括颜色、大小和触控响应信息中的至少一种。颜色是指元素内容在展示时的颜色。大小即为元素内容在展示时的大小。可选地,文本的大小可以具体为文字的字号大小;图片的大小即为图片展示时的尺寸。触控响应信息是指在接收到对元素内容的触控操作时的响应信息。触控响应信息可以包含元素内容是否可被触控,还可以包括被触控之后所对应的响应信息。不同的弹幕元素可以对应不同的触控响应信息。比如,用户等级弹幕元素对应的触控响应信息为不可触控;用户标识对应的触控响应信息可以是展示用户标识对应的用户界面,或以弹窗的形式展示用户标识对应的账户信息等。
在一个实施例中,存在不同弹幕元素对应的展示参数是相同的情况。比如,可以根据采用的展示参数对弹幕元素分类,将展示参数相同的弹幕元素划分为同一类别,只需保存该类别对应的展示参数,可以减少第一配置文件的数据量;终端在确定需要展示的目标元素后,即可根据目标元素的类别确定元素内容的展示参数。
具体地,终端按照展示参数将各元素内容拼接为富文本消息,即将处于展示参数所对应显示状态的元素内容拼接为富文本消息,进而在多媒体播放页面展示由这些富文本消息绘制而成的弹幕图片。
在一个实施例中,多媒体播放界面接收的弹幕图片还可以通过其他连接的终端进行解析得到。例如,终端A在进行录屏直播时,可以通过连接的终端B接收与实时录制的视频相关联的弹幕数据,并解析得到弹幕图片,在接收展示来自终端B的弹幕图片,如此可以避免弹幕解析对视频录制造成影响。
在一个实施例中,多媒体播放页面中弹幕图片的显示位置是有限的,受显示位置的大小的限制,终端可以按照弹幕数据的接收时序滚动展示对应的弹幕图片,可以在接收到最近一个目标时段的弹幕数据时,将显示位置中展示的弹幕图片逐渐移出该显示位置,以展示最新绘制得到的弹幕图片。
在一个实施例中,终端在多媒体播放界面的显示位置展示弹幕图片时,还可以接收对显示位置的移动指令,根据显示位置的移动指令确定移动后的显示位置,在移动后的显示位置展示弹幕图片。
本实施例中,基于第一配置文件可以预置每个弹幕元素的元素内容对应的展示参数,可以提高弹幕数据展示时的可读性,丰富弹幕数据的展示方式。此外,将零散弹幕元素按照展示参数绘制成一张弹幕图片后展示,可以提高多媒体播放时弹幕数据的展示效果。更重要的是,将弹幕数据的展示参数记录在第一配置文件,而不是直接记载在弹幕数据中,在保证弹幕展示样式多样性的同时减少弹幕数据传输网络开销。
在一个具体的实施例中,参考图7,图7示出了一个实施例中弹幕渲染方法的流程示意图。如图7所示,终端基于子线程从服务器拉取弹幕数据,对弹幕数据进行过滤并解析出每条弹幕数据包含的弹幕元素,再根据两级配置文件进行弹幕元素解析,即按照第一配置文件记录的元素标识从弹幕数据或配置文件中提取弹幕元素的元素内容,并根据第一配置文件记录的元素权重将弹幕元素的元素内容进行排序和拼接,得到最终需要展示的富文本消息。进一步地,对富文本消息进行排版计算,并绘制成一整张弹幕图片,将该弹幕图片回调至主线程。最后,基于主线程将弹幕图片渲染到显示屏幕上。除了最后的显然上屏操作,整个弹幕图片的解析计算任务均可在一个独立的线程中进行。
在本实施例中,根据弹幕内容的特性,将每一条弹幕数据拆分成多个弹幕元素。通过两级配置文件来描述上述弹幕元素特性,诸如字体颜色、字体大小、图片大小、图片存储路径以及各个弹幕元素的展示顺序。两级配置文件有效减小了配置文件体积,简化配置。其次,还可以通过对配置文件的修改,动态控制弹幕的展示样式。在渲染层面进行预排版,并将图文绘制成一整张图片,最终渲染在屏幕上。这种异步渲染的方式有效保证了界面展示的流畅性,极大提高了用户体验。真正意义上实现一种高可配、高性能弹幕解析渲染方案。
在另一个具体的实施例中,如图8所示,本申请提供的弹幕渲染方法包括:
S802,当触发弹幕展示操作时,创建用于弹幕渲染的主线程所对应的子线程。
S804,基于子线程确定弹幕展示操作所指向的多媒体播放场景。
S806,获取多媒体播放场景所涉及的每种弹幕类型分别对应的第一配置文件以及适用于全部弹幕类型的第二配置文件。
S808,基于子线程根据多媒体播放页面当前所展示的多媒体片段的起始时间和持续时长,生成弹幕同步请求。
S810,基于弹幕同步请求从服务器拉取在起始时间和持续时长对应的目标时段内产生的至少一条弹幕数据。
S812,根据预设的弹幕屏蔽信息对所拉取的弹幕数据进行过滤。弹幕数据包括弹幕类型。
S814,基于子线程根据弹幕类型对应第一配置文件所记录的配置信息,确定弹幕类型所需展示的弹幕元素。
S816,根据第一配置文件记录的配置信息,确定弹幕元素所属的元素类型。
S818,当元素类型为文本时,从第一配置文件中获取弹幕元素所关联的元素标识。
S820,从过滤后的弹幕数据中获取与元素标识相对应的文本内容,将文本内容作为弹幕元素对应的元素内容。
S822,当元素类型为图片时,从第一配置文件中获取弹幕元素所关联的元素标识和图片资源索引。
S824,根据元素标识,从弹幕数据中获取对应的图片取值。
S826,基于图片资源索引和图片取值,从第二配置文件中获取相应图片存储地址。
S828,根据图片存储地址获取对应的图片,将获取的图片作为弹幕元素对应的元素内容。
S830,基于子线程从第一配置文件中获取弹幕元素的权重和展示参数。
S832,基于展示参数对应的目标展示样式展示相应弹幕元素的文本内容或图片内容。
S834,按照权重依次将弹幕数据中基于目标展示样式展示的各元素内容进行拼接,得到相应弹幕数据的富文本消息。
S836,对所获取的多条弹幕数据的富文本消息进行排版后,绘制生成目标时段的弹幕图片。
S838,基于子线程将弹幕图片传递至主线程。
S840,基于主线程渲染展示弹幕图片。
上述弹幕渲染方法,将零散的弹幕数据绘制成一张弹幕图片,相比对弹幕数据进行逐一解析逐一渲染,基于弹幕图片可以实现弹幕数据的统一渲染,可以提高弹幕渲染效率;在触发弹幕展示操作时,创建主线程对应的子线程;复杂的弹幕数据解析的工作全部交由子线程完成,而用于弹幕渲染的主线程只需对现成的弹幕图片渲染展示即可,极大的缓解了主线程的渲染压力,进一步提高弹幕渲染效率,提升弹幕渲染流畅性。
图2和8为一个实施例中弹幕渲染方法的流程示意图。应该理解的是,虽然图2和8的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2和8中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
如图9所示,在一个实施例中,提供了弹幕渲染装置900,包括线程创建模块902、弹幕解析模块904和弹幕渲染模块906。
线程创建模块902,用于当触发弹幕展示操作时,创建用于弹幕渲染的主线程所对应的子线程。
弹幕解析模块904,用于基于子线程获取弹幕数据,将弹幕数据转换为弹幕图片;将弹幕图片传递至主线程。
弹幕渲染模块906,用于基于主线程渲染展示弹幕图片。
在一个实施例中,如图10所示,弹幕解析模块904包括弹幕过滤模块9042,用于根据多媒体播放页面当前所展示的多媒体片段的起始时间和持续时长,生成弹幕同步请求;基于弹幕同步请求从服务器拉取在起始时间和持续时长对应的目标时段内产生的至少一条弹幕数据;根据预设的弹幕屏蔽信息对所拉取的弹幕数据进行过滤。
在一个实施例中,弹幕解析模块904还用于基于弹幕数据生成弹幕图片的绘制任务;将绘制任务存储至任务队列;基于空闲的至少一个子线程对任务队列中的绘制任务进行处理,得到每个绘制任务对应的弹幕图片。
在一个实施例中,弹幕数据包括弹幕类型;弹幕解析模块904还包括元素内容获取模块9044和弹幕图片绘制模块9046,元素内容获取模块9044,用于根据弹幕类型对应第一配置文件所记录的配置信息,确定弹幕类型所需展示的弹幕元素;从弹幕数据或预置的第二配置文件中解析弹幕元素的元素内容;弹幕图片绘制模块9046,用于根据第一配置文件记录的配置信息,将元素内容转换为弹幕图片。
在一个实施例中,如图10所示,上述弹幕渲染装置900还包括两级配置模块908,用于当触发弹幕展示操作时,确定弹幕展示操作所指向的多媒体播放场景;获取多媒体播放场景所涉及的每种弹幕类型分别对应的第一配置文件以及适用于全部弹幕类型的第二配置文件。
在一个实施例中,元素内容获取模块9044还用于根据第一配置文件记录的配置信息,确定弹幕元素所属的元素类型;基于元素类型,从弹幕数据或预置的第二配置文件中解析弹幕元素的元素内容。
在一个实施例中,元素内容获取模块9044还用于当元素类型为文本时,从第一配置文件中获取弹幕元素所关联的元素标识;从弹幕数据中获取与元素标识相对应的文本内容,将文本内容作为弹幕元素对应的元素内容。
在一个实施例中,元素内容获取模块9044还用于当元素类型为图片时,从第一配置文件中获取弹幕元素所关联的元素标识和图片资源索引;根据元素标识,从弹幕数据中获取对应的图片取值;基于图片资源索引和图片取值,从第二配置文件中获取相应图片存储地址;根据图片存储地址获取对应的图片,将获取的图片作为弹幕元素对应的元素内容。
在一个实施例中,弹幕图片绘制模块9046还用于基于子线程从第一配置文件中获取弹幕元素的权重;按照权重依次将弹幕数据中各弹幕元素的元素内容进行拼接,得到相应弹幕数据的富文本消息;对所获取的多条弹幕数据的富文本消息进行排版后,绘制生成目标时段的弹幕图片。
在一个实施例中,弹幕图片绘制模块9046基于子线程从第一配置文件中获取弹幕元素的展示参数;基于展示参数对应的目标展示样式展示相应弹幕元素的元素内容;按照权重依次将弹幕数据中基于目标展示样式展示的各元素内容进行拼接。
上述弹幕渲染装置,将零散的弹幕数据绘制成一张弹幕图片,相比对弹幕数据进行逐一解析逐一渲染,基于弹幕图片可以实现弹幕数据的统一渲染,可以提高弹幕渲染效率;在触发弹幕展示操作时,创建主线程对应的子线程;复杂的弹幕数据解析的工作全部交由子线程完成,而用于弹幕渲染的主线程只需对现成的弹幕图片渲染展示即可,极大的缓解了主线程的渲染压力,进一步提高弹幕渲染效率,提升弹幕渲染流畅性。
图11示出了一个实施例中计算机设备的内部结构图。该计算机设备具体可以是图1中的终端110。如图11所示,该计算机设备包括该计算机设备包括通过系统总线连接的处理器、存储器、网络接口、输入装置和显示屏。其中,存储器包括非易失性存储介质和内存储器。该计算机设备的非易失性存储介质存储有操作系统,还可存储有计算机程序,该计算机程序被处理器执行时,可使得处理器实现弹幕渲染方法。该内存储器中也可储存有计算机程序,该计算机程序被处理器执行时,可使得处理器执行弹幕渲染方法。计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
本领域技术人员可以理解,图11中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,本申请提供的弹幕渲染装置可以实现为一种计算机程序的形式,计算机程序可在如图11所示的计算机设备上运行。计算机设备的存储器中可存储组成该弹幕渲染装置的各个程序模块,比如,图9所示的线程创建模块、弹幕解析模块和弹幕渲染模块。各个程序模块构成的计算机程序使得处理器执行本说明书中描述的本申请各个实施例的弹幕渲染方法中的步骤。
例如,图11所示的计算机设备可以通过如图9所示的弹幕渲染装置中的线程创建模块执行步骤S202。计算机设备可通过弹幕解析模块执行步骤S204和S206。计算机设备可通过弹幕渲染模块执行步骤S208。
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器存储有计算机程序,计算机程序被处理器执行时,使得处理器执行上述弹幕渲染方法的步骤。此处弹幕渲染方法的步骤可以是上述各个实施例的弹幕渲染方法中的步骤。
在一个实施例中,提供了一种计算机可读存储介质,存储有计算机程序,计算机程序被处理器执行时,使得处理器执行上述弹幕渲染方法的步骤。此处弹幕渲染方法的步骤可以是上述各个实施例的弹幕渲染方法中的步骤。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,的程序可存储于一非易失性计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
Claims (14)
1.一种弹幕渲染方法,其特征在于,包括:
当触发弹幕展示操作时,创建用于弹幕渲染的主线程所对应的子线程;
基于所述子线程确定所述弹幕展示操作所指向的多媒体播放场景;
获取所述多媒体播放场景所涉及的每种弹幕类型分别对应的第一配置文件以及适用于全部弹幕类型的第二配置文件;所述第一配置文件用于记录相应弹幕类型所需展示的弹幕元素以及每种弹幕元素的基本元素属性,所述第二配置文件用于记录图片来源类型弹幕元素的图片存储地址;
基于所述子线程获取目标时段内产生的至少一条弹幕数据,所述弹幕数据包括弹幕类型;
根据所述弹幕类型对应第一配置文件所记录的配置信息,确定所述弹幕类型所需展示的弹幕元素以及所述弹幕元素所属的元素类型;
当所述元素类型为图片时,从所述第一配置文件中获取所述弹幕元素所关联的元素标识和图片资源索引,根据所述元素标识从所述弹幕数据中获取对应的图片取值,基于所述图片资源索引和所述图片取值从所述第二配置文件中获取相应图片存储地址,根据所述图片存储地址获取对应的图片,将获取的图片作为所述弹幕元素对应的元素内容;
根据所述第一配置文件记录的配置信息,基于所述子线程解析出所述弹幕数据包含的弹幕元素的元素内容,将所述弹幕数据中各弹幕元素的元素内容进行拼接,得到相应所述弹幕数据的弹幕内容,对所获取的多条弹幕数据的弹幕内容进行排版后,绘制生成所述目标时段的弹幕图片;
将所述弹幕图片传递至所述主线程;
基于所述主线程渲染展示所述弹幕图片。
2.根据权利要求1所述的方法,其特征在于,所述基于所述子线程获取目标时段内产生的至少一条弹幕数据包括:
根据多媒体播放页面当前所展示的多媒体片段的起始时间和持续时长,生成弹幕同步请求;
基于所述弹幕同步请求从服务器拉取在所述起始时间和持续时长对应的所述目标时段内产生的至少一条弹幕数据;
根据预设的弹幕屏蔽信息对所拉取的弹幕数据进行过滤。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
基于所述弹幕数据生成弹幕图片的绘制任务;
将所述绘制任务存储至任务队列;
基于空闲的至少一个子线程对所述任务队列中的绘制任务进行处理,得到每个绘制任务对应的弹幕图片。
4.根据权利要求1所述的方法,其特征在于,所述基于所述元素类型,从所述弹幕数据或预置的第二配置文件中解析所述弹幕元素的元素内容包括:
当所述元素类型为文本时,从所述第一配置文件中获取所述弹幕元素所关联的元素标识;
从所述弹幕数据中获取与所述元素标识相对应的文本内容,将所述文本内容作为所述弹幕元素对应的元素内容。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
基于所述子线程从第一配置文件中获取所述弹幕元素的权重;
按照所述权重依次将所述弹幕数据中各弹幕元素的元素内容进行拼接,得到相应所述弹幕数据的富文本消息;
对所获取的多条弹幕数据的富文本消息进行排版后,绘制生成所述目标时段的弹幕图片。
6.根据权利要求5所述的方法,其特征在于,所述按照所述权重依次将所述弹幕数据中各弹幕元素的元素内容进行拼接包括:
基于所述子线程从第一配置文件中获取所述弹幕元素的展示参数;
基于所述展示参数对应的目标展示样式展示相应弹幕元素的元素内容;
按照所述权重依次将所述弹幕数据中基于目标展示样式展示的各元素内容进行拼接。
7.一种弹幕渲染装置,其特征在于,所述装置包括:
线程创建模块,用于当触发弹幕展示操作时,创建用于弹幕渲染的主线程所对应的子线程;
两级配置模块,用于确定所述弹幕展示操作所指向的多媒体播放场景;获取所述多媒体播放场景所涉及的每种弹幕类型分别对应的第一配置文件以及适用于全部弹幕类型的第二配置文件;所述第一配置文件用于记录相应弹幕类型所需展示的弹幕元素以及每种弹幕元素的基本元素属性,所述第二配置文件用于记录图片来源类型弹幕元素的图片存储地址;
弹幕解析模块,用于基于所述子线程获取目标时段内产生的至少一条弹幕数据,所述弹幕数据包括弹幕类型;根据所述弹幕类型对应第一配置文件所记录的配置信息,确定所述弹幕类型所需展示的弹幕元素以及所述弹幕元素所属的元素类型;当所述元素类型为图片时,从所述第一配置文件中获取所述弹幕元素所关联的元素标识和图片资源索引,根据所述元素标识从所述弹幕数据中获取对应的图片取值,基于所述图片资源索引和所述图片取值从所述第二配置文件中获取相应图片存储地址,根据所述图片存储地址获取对应的图片,将获取的图片作为所述弹幕元素对应的元素内容;根据所述第一配置文件记录的配置信息,基于所述子线程解析出所述弹幕数据包含的弹幕元素的元素内容,将所述弹幕数据中各弹幕元素的元素内容进行拼接,得到相应所述弹幕数据的弹幕内容,对所获取的多条弹幕数据的弹幕内容进行排版后,绘制生成所述目标时段的弹幕图片;将所述弹幕图片传递至所述主线程;
弹幕渲染模块,用于基于所述主线程渲染展示所述弹幕图片。
8.根据权利要求7所述的装置,其特征在于,所述弹幕解析模块还用于根据多媒体播放页面当前所展示的多媒体片段的起始时间和持续时长,生成弹幕同步请求;基于所述弹幕同步请求从服务器拉取在所述起始时间和持续时长对应的所述目标时段内产生的至少一条弹幕数据;根据预设的弹幕屏蔽信息对所拉取的弹幕数据进行过滤。
9.根据权利要求7所述的装置,其特征在于,所述弹幕解析模块还用于基于所述弹幕数据生成弹幕图片的绘制任务;将所述绘制任务存储至任务队列;基于空闲的至少一个子线程对所述任务队列中的绘制任务进行处理,得到每个绘制任务对应的弹幕图片。
10.根据权利要求7所述的装置,其特征在于,所述弹幕解析模块还用于当所述元素类型为文本时,从所述第一配置文件中获取所述弹幕元素所关联的元素标识;从所述弹幕数据中获取与所述元素标识相对应的文本内容,将所述文本内容作为所述弹幕元素对应的元素内容。
11.根据权利要求7所述的装置,其特征在于,所述弹幕解析模块还用于基于所述子线程从第一配置文件中获取所述弹幕元素的权重;按照所述权重依次将所述弹幕数据中各弹幕元素的元素内容进行拼接,得到相应所述弹幕数据的富文本消息;对所获取的多条弹幕数据的富文本消息进行排版后,绘制生成所述目标时段的弹幕图片。
12.根据权利要求11所述的装置,其特征在于,所述弹幕解析模块还用于基于所述子线程从第一配置文件中获取所述弹幕元素的展示参数;基于所述展示参数对应的目标展示样式展示相应弹幕元素的元素内容;按照所述权重依次将所述弹幕数据中基于目标展示样式展示的各元素内容进行拼接。
13.一种计算机可读存储介质,存储有计算机程序,其特征在于,所述计算机程序被处理器执行时,使得所述处理器执行如权利要求1至6中任一项所述方法的步骤。
14.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述计算机程序被所述处理器执行时,使得所述处理器执行如权利要求1至6中任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911299140.2A CN111083551B (zh) | 2019-12-17 | 2019-12-17 | 弹幕渲染方法、装置、计算机可读存储介质和计算机设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911299140.2A CN111083551B (zh) | 2019-12-17 | 2019-12-17 | 弹幕渲染方法、装置、计算机可读存储介质和计算机设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111083551A CN111083551A (zh) | 2020-04-28 |
CN111083551B true CN111083551B (zh) | 2022-01-11 |
Family
ID=70314931
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911299140.2A Active CN111083551B (zh) | 2019-12-17 | 2019-12-17 | 弹幕渲染方法、装置、计算机可读存储介质和计算机设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111083551B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113806189B (zh) * | 2020-06-16 | 2024-07-09 | 北京字节跳动网络技术有限公司 | 用户界面操作监控方法、装置、设备和存储介质 |
CN112565824B (zh) * | 2020-12-03 | 2021-09-14 | 腾讯科技(深圳)有限公司 | 一种生成弹幕的方法、装置、终端及存储介质 |
CN113254492B (zh) * | 2021-07-07 | 2021-11-23 | 北京优锘科技有限公司 | 一种查询后台同步管理层级可视化对象的方法、装置和设备 |
CN114339440A (zh) * | 2021-12-30 | 2022-04-12 | 武汉斗鱼鱼乐网络科技有限公司 | 直播信息管理方法及相关设备 |
CN114520924A (zh) * | 2022-02-22 | 2022-05-20 | 上海哔哩哔哩科技有限公司 | 弹幕展示方法及装置 |
CN114697707B (zh) * | 2022-03-25 | 2023-10-27 | 上海哔哩哔哩科技有限公司 | 弹幕渲染方法、装置、电子设备及计算机存储介质 |
CN114760520A (zh) * | 2022-04-20 | 2022-07-15 | 广州方硅信息技术有限公司 | 直播中小视频拍摄互动方法、装置、设备及存储介质 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105992056B (zh) * | 2015-01-30 | 2019-10-22 | 腾讯科技(深圳)有限公司 | 一种视频解码的方法和装置 |
CN105592331B (zh) * | 2015-12-16 | 2019-09-27 | 广州华多网络科技有限公司 | 一种弹幕消息的处理方法、相关设备和系统 |
CN105872679A (zh) * | 2015-12-31 | 2016-08-17 | 乐视网信息技术(北京)股份有限公司 | 弹幕显示方法和装置 |
CN105939493B (zh) * | 2016-03-30 | 2019-02-22 | 广州华多网络科技有限公司 | 一种视频弹幕的显示方法及显示装置 |
EP3264783B1 (en) * | 2016-06-29 | 2021-01-06 | Nokia Technologies Oy | Rendering of user-defined messages having 3d motion information |
CN107092643B (zh) * | 2017-03-06 | 2020-10-16 | 武汉斗鱼网络科技有限公司 | 一种弹幕渲染方法及装置 |
CN108521583B (zh) * | 2018-04-23 | 2020-10-09 | 上海蓝云网络科技有限公司 | 弹幕并发处理方法、装置、存储介质、云计算服务器 |
CN108600852B (zh) * | 2018-04-28 | 2020-12-15 | 北京酷我科技有限公司 | 一种弹幕效果的实现方法 |
CN109788334A (zh) * | 2019-01-31 | 2019-05-21 | 北京字节跳动网络技术有限公司 | 弹幕处理方法、装置、电子设备及计算机可读存储介质 |
CN110475140B (zh) * | 2019-08-08 | 2022-09-02 | 腾讯科技(深圳)有限公司 | 弹幕数据处理方法、装置、计算机可读存储介质和计算机设备 |
-
2019
- 2019-12-17 CN CN201911299140.2A patent/CN111083551B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN111083551A (zh) | 2020-04-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111083551B (zh) | 弹幕渲染方法、装置、计算机可读存储介质和计算机设备 | |
US9195750B2 (en) | Remote browsing and searching | |
KR101454950B1 (ko) | 스트리밍 미디어에 연관된 딥 태그 클라우드 | |
CN110475140B (zh) | 弹幕数据处理方法、装置、计算机可读存储介质和计算机设备 | |
CN111930994A (zh) | 视频编辑的处理方法、装置、电子设备及存储介质 | |
KR102200317B1 (ko) | 디지털 비디오 컨텐츠 수정 | |
CN103310475A (zh) | 动画播放方法及装置 | |
CN115379136B (zh) | 特效道具处理方法、装置、电子设备及存储介质 | |
CN111309200B (zh) | 一种扩展阅读内容的确定方法、装置、设备及存储介质 | |
CN113746874A (zh) | 一种语音包推荐方法、装置、设备及存储介质 | |
US9092405B1 (en) | Remote browsing and searching | |
JP2023549903A (ja) | マルチメディアのインタラクション方法、情報インタラクション方法、装置、機器及び媒体 | |
CN111581564A (zh) | 一种应用Canvas实现的网页同步交流方法 | |
WO2019146466A1 (ja) | 情報処理装置、動画検索方法、生成方法及びプログラム | |
CN111258434A (zh) | 在聊天界面插入图片的方法、装置、设备及存储介质 | |
CN114924815A (zh) | 页面渲染方法、装置、电子设备及存储介质 | |
CN113709575B (zh) | 视频编辑处理方法、装置、电子设备及存储介质 | |
CN112995770B (zh) | 视频播放方法、装置、存储介质和计算机设备 | |
JP2016173803A (ja) | 文章表示装置、プログラム及び制御方法 | |
CN112256381A (zh) | 语言资源处理方法、装置、计算机设备和存储介质 | |
CN113127785A (zh) | 字幕处理方法、装置、计算机设备及存储介质 | |
CN110730379B (zh) | 一种视频信息处理方法、装置和存储介质 | |
CN111045674A (zh) | 一种播放器的交互方法和装置 | |
KR101370714B1 (ko) | 다중 스크린 장치 사용을 위한 웹 페이지 스크린 분할 방법 및 시스템 | |
CN115037960B (zh) | 互动视频的生成方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40022323 Country of ref document: HK |
|
GR01 | Patent grant | ||
GR01 | Patent grant |