CN111031400A - 弹幕呈现方法和系统 - Google Patents

弹幕呈现方法和系统 Download PDF

Info

Publication number
CN111031400A
CN111031400A CN201911166832.XA CN201911166832A CN111031400A CN 111031400 A CN111031400 A CN 111031400A CN 201911166832 A CN201911166832 A CN 201911166832A CN 111031400 A CN111031400 A CN 111031400A
Authority
CN
China
Prior art keywords
bullet screen
screen data
data
launched
content
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.)
Granted
Application number
CN201911166832.XA
Other languages
English (en)
Other versions
CN111031400B (zh
Inventor
武修然
谭兆歆
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shanghai Bilibili Technology Co Ltd
Original Assignee
Shanghai Bilibili Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Shanghai Bilibili Technology Co Ltd filed Critical Shanghai Bilibili Technology Co Ltd
Priority to CN201911166832.XA priority Critical patent/CN111031400B/zh
Priority to US17/778,784 priority patent/US11924503B2/en
Priority to PCT/CN2020/081490 priority patent/WO2021103363A1/zh
Publication of CN111031400A publication Critical patent/CN111031400A/zh
Application granted granted Critical
Publication of CN111031400B publication Critical patent/CN111031400B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing 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/431Generation of visual interfaces for content selection or interaction; Content or additional data rendering
    • H04N21/4312Generation 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing 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/431Generation of visual interfaces for content selection or interaction; Content or additional data rendering
    • H04N21/4312Generation 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
    • H04N21/4316Generation 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 for displaying supplemental content in a region of the screen, e.g. an advertisement in a separate window
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/47End-user applications
    • H04N21/485End-user interface for client configuration
    • H04N21/4858End-user interface for client configuration for modifying screen layout parameters, e.g. fonts, size of the windows
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/47End-user applications
    • H04N21/488Data services, e.g. news ticker
    • H04N21/4884Data services, e.g. news ticker for displaying subtitles

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Business, Economics & Management (AREA)
  • Marketing (AREA)
  • Human Computer Interaction (AREA)
  • User Interface Of Digital Computer (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本申请实施例公开了一种弹幕呈现方法,包括:获取视频播放页面;获取多个原始弹幕数据,每个原始弹幕数据包括弹幕内容和弹幕发射时间;克隆所述多个原始弹幕数据,得到多个弹幕数据;根据各个弹幕数据的弹幕发射时间,从所述多个弹幕数据中获取多个目标弹幕数据;将所述多个目标弹幕数据中的至少一个弹幕内容呈现在所述视频播放页面的弹幕播放区域中。本申请还提供了弹幕呈现系统、计算机设备及计算机可读存储介质。本申请实施例,将所述多个原始弹幕数据作为原始数据,克隆得到的多个弹幕数据用于弹幕播放,当播放进度条每次拉回到先前的播放时间节点,无需再次请求下载,再次执行克隆操作即可。

Description

弹幕呈现方法和系统
技术领域
本申请实施例涉及通信领域,尤其涉及一种弹幕呈现方法、系统、计算机设备及计算机可读存储介质。
背景技术
弹幕,指的是在呈现视频时同时呈现评论性文字、表情、图案等。目前,弹幕成了为很多观众观看视频、直播的重要元素,其不仅能够使用户表达观看节目感受,而且还能使用户观看其他用户对节目的评论内容,实现用户观看视频时的互动性。然而,现在的弹幕可能会受到网络环境的影响,出现弹幕播放效果差的问题。
发明内容
有鉴于此,本申请实施例的目的是提供一种弹幕呈现方法、系统、计算机设备及计算机可读存储介质,用于解决现在的弹幕可能会受到网络环境的影响,出现弹幕播放效果差的问题。
本申请实施例的一个方面提供了一种弹幕呈现方法,包括:获取视频播放页面;获取多个原始弹幕数据,每个原始弹幕数据包括弹幕内容和弹幕发射时间;克隆所述多个原始弹幕数据,得到多个弹幕数据;根据各个弹幕数据的弹幕发射时间,从所述多个弹幕数据中获取多个目标弹幕数据;及将所述多个目标弹幕数据中的至少一个弹幕内容呈现在所述视频播放页面的弹幕播放区域中。
可选的,根据各个弹幕数据的弹幕发射时间,从所述多个弹幕数据中获取多个目标弹幕数据,包括:通过弹幕计算器遍历所述多个弹幕数据,获取与弹幕时间线的当前时间匹配的若干个弹幕数据;及将所述若干个弹幕数据确定为所述多个目标弹幕数据。
可选的,所述弹幕时间线与所述弹幕计算器是以递归调用的帧渲染模式并行工作的。
可选的,所述弹幕播放区域包括多个弹幕轨道;将所述多个目标弹幕数据中的至少一个弹幕内容呈现在所述弹幕播放区域中,包括:将所述多个目标弹幕数据添加到待发射弹幕队列中;及根据虚拟弹幕轨道判断各个弹幕轨道的当前状态,所述虚拟弹幕轨道为预先配置的嵌套数组,所述嵌套数组中包括多个子数组,每个子数组映射所述多个弹幕轨道中的其中一个弹幕轨道;及根据各个弹幕轨道的当前状态,确定是否将所述待发射弹幕队列中的至少一个目标弹幕数据发射出去,以将所述至少一个目标弹幕数据中的至少一个弹幕内容呈现在所述弹幕播放区域中。
可选的,根据虚拟弹幕轨道判断各个弹幕轨道的当前状态,包括:S1,判断第i个子数组是否为空,所述第i个子数组对应第i个弹幕轨道;S2,如果所述第i个子数组为空,则确定所述第i个弹幕轨道的当前状态为空闲状态。
可选的,根据虚拟弹幕轨道判断各个弹幕轨道的当前状态,还包括:S3,如果所述第i个子数组不为空,则判断所述待发射弹幕队列中的待发射队首弹幕数据中的队首弹幕内容和所述已发射尾部弹幕数据中的尾部弹幕内容是否会发生碰撞,其中,所述待发射队首弹幕数据为位于所述待发射弹幕队列头部的目标弹幕数据,所述已发射尾部弹幕数据为位于所述第i个数组尾部的已发射弹幕数据;S4,如果所述待发射队首弹幕数据中的队首弹幕内容和所述已发射尾部弹幕数据中的尾部弹幕内容不会发生碰撞,则确定所述第i个弹幕轨道的当前状态为空闲状态。
可选的,判断所述待发射弹幕队列中的待发射队首弹幕数据中的队首弹幕内容和所述已发射尾部弹幕数据中的尾部弹幕内容是否会发生碰撞,包括:根据所述已发射尾部弹幕数据中的发射时间t1和运动时间t2,计算所述已发射尾部弹幕数据中的尾部弹幕内容在所述弹幕播放区域的呈现时间t1+t2;根据所述待发射队首弹幕数据的发射时间t3、运动时间t4、弹幕宽度w2和所述弹幕播放区域的显示宽度w1,计算所述待发射队首弹幕数据中的队首弹幕内容达到所述弹幕播放区域的左边界时的达到时间t3+[w1*t4/(w1+w2)];判断所述呈现时间t1+t2是否小于所述到达时间t3+[w1*t4/(w1+w2)];如果所述呈现时间t1+t2小于所述到达时间t3+[w1*t4/(w1+w2)],则确定所述待发射队首弹幕数据中的队首弹幕内容和所述已发射尾部弹幕数据中的尾部弹幕内容不会发生碰撞;及如果所述呈现时间t1+t2不小于所述到达时间t3+[w1*t4/(w1+w2)],则确定所述待发射队首弹幕数据中的队首弹幕内容和所述已发射尾部弹幕数据中的尾部弹幕内容会发生碰撞。
可选的,根据虚拟弹幕轨道判断各个弹幕轨道的当前状态,还包括:S5,如果所述待发射队首弹幕数据中的队首弹幕内容和所述已发射尾部弹幕数据中的尾部弹幕内容会发生碰撞,则确定所述第i个弹幕轨道的当前状态为拥挤状态。
可选的,根据虚拟弹幕轨道判断各个弹幕轨道的当前状态,还包括:更新i的取值,并基于更新后的i的取值执行步骤S1~S4直至i等于M;其中,1≤i≤M,i的初始值为1,M表示所述多个弹幕轨道的数量。
可选的,根据各个弹幕轨道的当前状态,确定是否将所述待发射弹幕队列中的至少一个目标弹幕数据发射出去,以将所述至少一个目标弹幕数据中的至少一个弹幕内容呈现在所述弹幕播放区域中,包括:如果确定第一个轨道至第M个轨道均处于拥挤状态,则删除所述待发射弹幕队列中的所述多个目标弹幕数据。
可选的,根据各个弹幕轨道的当前状态,确定是否将所述待发射弹幕队列中的至少一个目标弹幕数据发射出去,以将所述至少一个目标弹幕数据中的至少一个弹幕内容呈现在所述弹幕播放区域中,包括:如果确定所述第i个弹幕轨道的当前状态为空闲状态:将所述待发射弹幕队列中的待发射队首弹幕数据添加到所述第i个数组中;将所述待发射弹幕队列中的待发射队首弹幕数据添加到所述渲染列表中,以将所述待发射队首弹幕数据对应的队首弹幕内容经渲染操作后呈现在所述弹幕播放区域中的第i个弹幕轨道上;及更新所述待发射弹幕队列中的待发射队首弹幕数据。
本申请实施例的一个方面又提供了一种弹幕呈现系统,所述弹幕呈现系统包括:第一获取模块,用于获取视频播放页面,所述视频播放页面中包括用于呈现视频流的弹幕播放区域;第二获取模块,用于获取多个原始弹幕数据,每个原始弹幕数据包括弹幕内容和弹幕发射时间;克隆模块,用于克隆所述多个原始弹幕数据,得到多个弹幕数据;第三获取模块,用于根据各个弹幕数据的弹幕发射时间,从所述多个弹幕数据中获取多个目标弹幕数据;呈现模块,用于将所述多个目标弹幕数据中的至少一个弹幕内容呈现在所述视频播放页面的弹幕播放区域中。
本申请实施例的一个方面又提供了一种计算机设备,所述计算机设备包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时用于实现上述弹幕呈现方法的步骤。
本申请实施例的一个方面又提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序可被至少一个处理器所执行,以使所述至少一个处理器执行上述弹幕呈现方法的步骤。
本申请实施例提供的弹幕呈现方法、系统、设备及计算机可读存储介质,获取所述多个原始弹幕数据之后,将所述多个原始弹幕数据作为原始数据;克隆多个原始弹幕数据得到克隆操作对应的多个弹幕数据,将克隆操作对应的多个弹幕数据用于弹幕显示操作,当播放进度条拉回到先前的某个播放时间节点时,则克隆作为原始数据的所述多个原始弹幕数据,得到再次克隆操作对应的多个弹幕数据,将再次克隆操作对应的多个弹幕数据用于弹幕显示操作。因此,当播放进度条每次拉回到先前的播放时间节点,无需再次请求下载,再次执行克隆操作即可,提供了弹幕播放的效率。
附图说明
图1示意性示出了根据本申请实施例的弹幕呈现方法的应用环境图;
图2示意性示出了根据本申请实施例一的弹幕呈现方法的流程图;
图3示意性示出了图2中步骤S206的流程图;
图4示意性示出了根据本申请实施例二的弹幕呈现方法的流程图;
图5示意性示出了图4中步骤S410的流程图;
图6示意性示出了图4中步骤S410的另一流程图;
图7示意性示出了图6中步骤S604的流程图;
图8示意性示出了图4中步骤S412的流程图;
图9示意性示出了根据本申请实施例二的弹幕呈现方法的另一流程图;
图10示意性示出了根据本申请实施例三的通信系统的框图;及
图11示意性示出了根据本申请实施例四的适于实现弹幕呈现方法的计算机设备的硬件架构示意图。
具体实施方式
为了使本申请实施例的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请实施例进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本申请实施例,并不用于限定本申请实施例。基于本申请实施例中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请实施例保护的范围。
图1示意性示出了根据本申请实施例的弹幕呈现方法的环境应用示意图。
提供商网络2可以通过网络9连接多个计算机设备10。在一些实施例中,内容服务3由提供商网络2提供。在其他实施例中,内容服务3可以由与提供商网络2连接的独立内容商提供。
内容服务3可以包括诸如互联网协议视频流服务之类的内容流服务。内容流服务可以被配置为经由各种传输技术来分发内容。内容服务3可以被配置为提供诸如视频,音频,文本数据,其组合等的内容。内容可以包括内容流(例如,视频流,音频流,信息流),内容文件(例如,视频文件,音频文件,文本文件)和/或其他数据。
提供商网络2可以实现弹幕服务,该弹幕服务被配置为允许用户评论和/或共享与内容相关联的评论。弹幕内容可以与内容一起呈现在同一屏幕上。例如,弹幕内容可以在内容上方的覆盖图中显示。弹幕内容在显示时可能会带有动画效果。例如,弹幕内容可以被显示为在内容上滚动(例如,从右到左,从左到右,从上到下,从下到上),这种动画效果可以基于CSS3(cascading style sheets,层叠样式表)的transition属性实现的。
提供商网络2可以位于诸如单个场所之类的数据中心,或者分布在不同的地理位置(例如,在多个场所)中。提供商网络2可以经由一个或多个网络9提供服务。网络9包括各种网络设备,例如路由器,交换机,多路复用器,集线器,调制解调器,网桥,中继器,防火墙,代理设备和/或类似。网络9可以包括物理链路,例如同轴电缆链路,双绞线电缆链路,光纤链路,其组合等。网络9可以包括无线链路,诸如蜂窝链路,卫星链路,Wi-Fi链路等。
提供商网络2可以包括消息服务5。消息服务5可以被配置为接收多个消息。所述多个消息可以包括与内容相关联的多个弹幕内容以及与所述多个弹幕内容有关的信息。
消息服务5可以被配置为管理用于各种内容项的消息。用户可以浏览内容并访问不同的内容项以查看针对特定内容的评论,例如其他用户针对该特定内容发布的评论。来自与特定内容项目相关联的用户的评论可以被输出到观看该特定内容项目的其他用户。例如,访问内容项目(例如,视频剪辑)的所有用户可以查看与该内容项目相关联的评论。输入的弹幕内容可以实时或接近实时地输出。
消息服务5可以被配置为处理多个消息。消息服务5可以基于与相应弹幕内容相关联的信息(例如,时间戳,递增的标识符)来实现对多个消息的队列或以其他方式优先处理。消息服务5可以被配置为使用负载平衡来处理多个消息。例如,消息服务5可以被配置为使用多个处理节点中的一个或多个来处理多个消息,对消息进行优先级排序,对消息进行负载平衡等。消息服务5可以至少临时地存储多个消息。消息服务5可以将多个消息存储在诸如数据库的数据存储中。
消息服务5可以被配置为通过执行分组过程来处理消息。分组过程可以包括基于特征对多个消息进行分组。如果两个消息具有相同的特征或在特征的阈值范围内,则可以将这两个消息分为一组。与特定内容项(例如,流,文件,节目,电影,歌曲,游戏会话)相关联的消息可以与同一组相关联。例如,消息可以包括内容标识符或与内容标识符相关联。内容标识符可以唯一地标识内容项。如果在消息中找到了内容标识符,或者与消息相关联(例如,单独发送),则消息服务5可以将消息与与内容项相关联的组相关联。
消息服务5可以执行自然语言处理,主题识别,模式识别,人工智能等,以自动确定消息的特征和/或对消息进行分组。作为示例,频繁出现的短语或模式可以被识别为主题。作为另一个示例,可以维护与内容相关联的主题的数据库。主题可以包括流派(例如,动作,戏剧,喜剧),个性(例如,演员,女演员,导演),语言等。可以基于客户端设备和/或发送消息的用户的特征对消息进行分组。可以存储人口统计学,兴趣,历史和/或类似物以供多个用户确定消息的潜在分组。
消息服务5可以进一步被配置为通过生成输出数据来处理消息。输出数据可以包括用于实现基于相应上下文输出评论的指令。输出数据可以包括用于基于上下文指示应用覆盖评论的应用数据。输出数据可以包括用于生成(例如,编码)与评论相对应的内容的指令。
输出数据可以用于生成(例如,编码)输出弹幕内容,例如输出内容流。输出的评论内容可以与诸如内容服务3所提供的内容之类的原始内容项进行组合(例如,多路复用)。所得的组合可以包括单个包装(例如,容器,运输容器,运输流)中的内容。包可包括原始内容项以及输出的弹幕内容(例如,显示在原始内容项的顶部)。
消息服务5可以进一步被配置为通过执行筛选过程来处理消息。筛选过程可以包括拒绝或标记与筛选标准匹配的消息。筛选标准可以指定术语和/或短语,例如亵渎,仇恨言论,不雅语言等。筛选标准可以指定字符,例如符号,字体等。筛选标准可以指定语言,计算机可读代码模式等。
提供商网络2可以进一步包括处理服务6。处理服务6可以被配置为提供对各种服务的处理,例如提供商网络2的服务。处理服务6可以包括多个网络节点8。多个网络节点8可以处理与消息服务5相关联的任务。多个网络节点8可以被实现为一个或多个计算设备,一个或多个处理器,一个或多个虚拟计算实例,它们的组合,和/或类似的东西。
多个网络节点8可以由一个或多个计算设备实现。一个或多个计算设备可以包括虚拟化的计算实例。虚拟化的计算实例可以包括虚拟机,例如计算机系统,操作系统,服务器等的仿真。计算设备可以基于虚拟映像和/或定义用于仿真的特定软件(例如,操作系统,专用应用程序,服务器)的其他数据,由计算设备加载虚拟机。随着对不同类型的处理服务的需求改变,可以在一个或多个计算设备上加载和/或终止不同的虚拟机。可以实现管理程序来管理同一计算设备上不同虚拟机的使用。
在一些实施例中,多个网络节点8可以处理由多个计算机设备提交的事件。这些事件可以与讨论实时新闻,视频,社交热点,针对某些用户帐户的报告等相关联。在其他实施例中,多个网络节点8可以处理针对审阅网络社区中的事件的多个用户账户的性能评估。在一些实现中,这些服务可以被实现为专用计算设备,专用处理器,专用虚拟机实例和/或类似物。在其他实现中,各种不同的节点可以实现与这些服务相关联的任何功能。
多个计算机设备10可以被配置为访问提供商网络2的内容和服务。多个计算机设备10可以包括任何类型的电子设备,诸如移动设备、平板设备、膝上型计算机、工作站、虚拟现实设备,游戏设备、机顶盒、数字流媒体设备、车辆终端、智能电视、机顶盒、电子书阅读器等。
多个计算机设备10可以与一个或多个用户相关联。单个用户可以使用多个计算机设备10中的一个或多个来访问提供商网络2。多个计算机设备10可以旅行到各种位置并使用不同的网络来访问提供商网络2。
计算机设备10可以包括应用12。应用12将内容输出(例如,显示、渲染、呈现)给用户。所述应用12可以是视频客户端(如bilibili客户端)、浏览器客户端或基于微信的微信小程序等。内容可以包括视频,音频,弹幕内容和/或类似物。所述弹幕内容可以是文字、表情、图案等,可以有不同的颜色、大小、动画、滚动方向等。
作为示例,应用程序12可以将针对某些用户的报告发送到处理服务,并且应用程序12还可以将关于报告的评论发送到处理服务6。从多个计算机设备10发送的事件或评论包括提交事件的原因,与事件相关联的内容属性,用户帐户信息等。
实施例一
图2示意性示出了根据本申请实施例一的弹幕呈现方法的流程图。可以理解,本方法实施例可以被执行在计算机设备10中,且本方法实施例的流程图不用于对执行步骤的顺序进行限定。
如图2所示,该弹幕呈现方法可以包括步骤S200~S208,其中:
步骤S200,获取视频播放页面。
步骤S202,获取多个原始弹幕数据,每个原始弹幕数据包括弹幕内容和弹幕发射时间。
步骤S204,克隆所述多个原始弹幕数据,得到多个弹幕数据。
步骤S206,根据各个弹幕数据的弹幕发射时间,从所述多个弹幕数据中获取多个目标弹幕数据。
步骤S208,将所述多个目标弹幕数据中的至少一个弹幕内容呈现在所述视频播放页面的弹幕播放区域中。
为了使得本发明更加清晰易懂,下面提供一个具体示例,需要说明的是,该示例并不用于限制本发明。
①计算机设备10向提供商网络2发起原始弹幕数据请求。
②计算机设备10接收提供商网络2响应所述页面访问请求所返回的XML(extensible mariup language,可扩展标记语言)文件。
③编译XML文件以获取多个原始弹幕数据。
具体的,将XML文件编译为Element对象,从Element对象上获取到多个原始弹幕数据,如弹幕内容、发射时间、弹幕颜色、运动时间等属性(原始弹幕数据),并将这些属性转化为json的数据格式存储到本地数组中,得到存储在本地数组中的多个原始弹幕数据。所述多个原始弹幕数据可以是所述提供商网络多个推送得到的,所述多个原始弹幕数据包括历史原始弹幕数据和实时原始弹幕数据。
④计算机设备10克隆所述多个原始弹幕数据,得到多个弹幕数据。
在弹幕筛选和使用过程中,弹幕状态可能发生变化,当播放进度条拉回到先前的某个播放时间节点时,弹幕数据由于状态发生变化已经不能使用,往往需要从提供商网络2再次请求下载。
克隆操作的优势如下:获取所述多个原始弹幕数据之后,将所述多个原始弹幕数据作为原始数据;克隆多个原始弹幕数据得到第一次克隆操作对应的多个弹幕数据,将第一次克隆操作对应的多个弹幕数据用于弹幕显示操作,当播放进度条拉回到先前的某个播放时间节点时,则克隆作为原始数据的所述多个原始弹幕数据,得到第二次克隆操作对应的多个弹幕数据,将第二次克隆操作对应的多个弹幕数据用于弹幕显示操作。不难理解,本实施例中,当播放进度条每次拉回到先前的播放时间节点,无需从提供商网络2中再次请求下载,再次执行克隆操作即可。
⑤计算机设备10根据各个弹幕数据的弹幕发射时间,从所述多个弹幕数据中获取多个目标弹幕数据。
所述弹幕计算器和弹幕时间线是位于应用12(如浏览器、微信小程序)的逻辑层的,可以通过该逻辑层让让弹幕时间线与弹幕计算器以递归调用的帧渲染模式并行工作。
在示例性的实施例中,如图3所示,所述步骤S206进一步包括步骤S300~302,其中:步骤S300,通过弹幕计算器遍历所述多个弹幕数据,获取与弹幕时间线的当前时间匹配的若干个弹幕数据。步骤S302,将所述若干个弹幕数据确定为所述多个目标弹幕数据。具体的:由弹幕计算器对所述多个弹幕数据进行遍历筛选,其中满足发射时间的若干个弹幕数据将向后被添加待发射弹幕队列中,同时这些添加到待发射弹幕队列中的若干个弹幕数据会从所述多个弹幕数据中删除,以减少后续遍历次数。
当弹幕计算器检测所述多个克隆大幕数据发射完毕时,所述弹幕计算器和所述弹幕时间线终止运行并重置弹幕系统。另外,如果计算机设备10检测到用户点击了暂停按钮或者视频播放完毕时,所述弹幕计算器与所述弹幕时间线也会同时暂停或终止运行。
⑥计算机设备10将所述多个目标弹幕数据中的至少一个弹幕内容呈现在所述视频播放页面的弹幕播放区域中。
计算机设备10筛选出所述多个目标弹幕数据之后,遍历查找弹幕播放区域中是否有处于空闲状态下的弹幕轨道。如果所有弹幕轨道在当前均未处于空闲状态,则丢弃待发射弹幕队列中的多个目标弹幕数据。如果有一个或多个弹幕轨道处于空闲状态下,则将待发射弹幕队列中的一个或多个目标弹幕数据向后添加到渲染列表中,利用CSS3中的transition属性作为各个弹幕内容的运动动画,更新视图层数据通知视图层进行渲染更新。
以微信小程序为例:渲染过程和显示过程是微信小程序框架依据MVC(model–view–controller)模式思想封装的功能,渲染由微信小程序的框架来完成。以以下一条弹幕数据为例:
Figure BDA0002287677400000112
Figure BDA0002287677400000111
这条弹幕数据在WXML(微信标记语言,WeiXin Mariup Language)文件中绑定在元素上,当前通过setData API通知微信小程序按照数据更新视图时,微信小程序就会依据这条弹幕数据渲染出一条字体颜色为白色、内容为“我是弹幕的文字内容”、运动方式为从原点运动到自身宽度100%距离进行线性运动且运动时间为0.6秒的弹幕内容。这种动画效果可以基于CSS3的transition属性实现的。
实施例二
图4示意性示出了根据本申请实施例二的弹幕呈现方法的流程图。该弹幕呈现方法可以包括步骤S400~步骤S412,其中:
步骤S400,获取视频播放页面。
步骤S402,获取多个原始弹幕数据,每个原始弹幕数据包括弹幕内容和弹幕发射时间。
例如,原始弹幕数据可以包括如下信息:
Figure BDA0002287677400000121
步骤S404,克隆所述多个原始弹幕数据,得到多个弹幕数据。
步骤S406,根据各个弹幕数据的弹幕发射时间,从所述多个弹幕数据中获取多个目标弹幕数据。
步骤S408,将所述多个目标弹幕数据添加到待发射弹幕队列中。
计算机设备10在所述视图层进行数据更新操作,根据所述处于待发射状态的弹幕数据执行第一次渲染操作。
如:在可视区之外,插入真实的弹幕元素,用户无法看到并且没有添加运动效果,这么做是为了获取弹幕元素的真实的弹幕宽度,来计算弹幕内容的运动初始位置和运动终点位置,以及用于作为判断多个弹幕轨道是否有处于空闲状态的弹幕轨道的依据之一。
为了减少后续遍历次数,还可以包括步骤:更新所述多个弹幕数据,以从所述多个弹幕数据中删除所述多个目标弹幕数据。即,在每个目标弹幕数据被功添加到所述待发射弹幕队列之后,就会将该目标弹幕数据从所述多个弹幕数据中删除。
步骤S410,根据虚拟弹幕轨道判断各个弹幕轨道的当前状态。
所述弹幕播放区域包括多个弹幕轨道。所述虚拟弹幕轨道为预先配置的嵌套数组,所述嵌套数组中包括多个子数组,每个子数组映射所述多个弹幕轨道中的其中一个弹幕轨道。
所谓虚拟弹幕轨道的提出,为了达到良好的弹幕视觉效果,每一条弹幕内容都不能被其他弹幕内容遮挡,这需要实现各个弹幕内容之间互相不重叠。虚拟弹幕轨道实质上是以数组嵌套数组的数据格式来模拟弹幕内容与弹幕轨道之间的关系。虚拟弹幕轨道内的弹幕数据并不参与视图层的渲染,而是通过数据的形式来映射当前的弹幕内容与弹幕轨道的关系。虚拟弹幕轨道的工作原理是:通过弹幕系统初始化时配置的弹幕轨道数量来向一个数组对象中向后推入相同数量的数组对象,类似于[[],[],[],[],…]这样的形式。其中嵌套数组中的每个子数组代表一条弹幕轨道。
为确保各个弹幕内容之间互相不重叠,提供以下判断机制:
判断机制1,如图5所示,所述步骤S410可以包括步骤S500~S506:
步骤S500:判断第i个子数组是否为空,所述第i个子数组对应第i个弹幕轨道。如果是,进入步骤S502;否则进入步骤S504。
步骤S502:确定所述第i个弹幕轨道的当前状态为空闲状态。
步骤S504:确定所述第i个弹幕轨道的当前状态为拥挤状态。
步骤S506:更新i的取值,并基于更新后的i的取值执行步骤S500~S506直至i等于M;其中,1≤i≤M,i的初始值为1,M表示所述多个弹幕轨道的数量。
判断机制2,如图6所示,所述步骤S410可以包括步骤S600~S608:
步骤S600:判断第i个子数组是否为空,所述第i个子数组对应第i个弹幕轨道。如果是,进入步骤S602;如果否,则说明第i个弹幕轨道上已经存在正在运动中的弹幕内容,进入步骤S604。
步骤S602:确定所述第i个弹幕轨道的当前状态为空闲状态。
步骤S604:判断所述待发射弹幕队列中的待发射队首弹幕数据中的队首弹幕内容和所述已发射尾部弹幕数据中的尾部弹幕内容是否会发生碰撞。如果不是,进入步骤S602;否则进入S606。
需要说明的是,所述待发射队首弹幕数据为位于所述待发射弹幕队列头部的目标弹幕数据。所述已发射尾部弹幕数据为位于所述第i个数组尾部的已发射弹幕数据,所述已发射尾部弹幕数据即对应第i个数组中最后的那个弹幕数据,所述尾部弹幕内容即对应于呈现在第i个弹幕轨道中的最晚发射的那个弹幕内容。
在示例性的实施例中,如图7所示,步骤S604可以通过步骤S700~S708实现,其中:步骤S700,根据所述已发射尾部弹幕数据中的发射时间t1和运动时间t2,计算所述已发射尾部弹幕数据中的尾部弹幕内容在所述弹幕播放区域的呈现时间t1+t2;步骤S702,根据所述待发射队首弹幕数据的发射时间t3、运动时间t4、弹幕宽度w2和所述弹幕播放区域的显示宽度w1,计算所述待发射队首弹幕数据中的队首弹幕内容达到所述弹幕播放区域的左边界(也可以是其他边界,视运动终点位置而定)时的达到时间t3+[w1*t4/(w1+w2)];步骤S704,判断所述呈现时间t1+t2是否小于所述到达时间t3+[w1*t4/(w1+w2)];如果所述呈现时间t1+t2小于所述到达时间t3+[w1*t4/(w1+w2)],则进入步骤S706,否则进入步骤S708;步骤S706,确定所述待发射队首弹幕数据中的队首弹幕内容和所述已发射尾部弹幕数据中的尾部弹幕内容不会发生碰撞;步骤S708,确定所述待发射队首弹幕数据中的队首弹幕内容和所述已发射尾部弹幕数据中的尾部弹幕内容会发生碰撞。
不难理解,假设第i个弹幕轨道中最后一条弹幕内容的发射时间为t1且运动时间为t2,那么这最后一条弹幕内容完全消失在弹幕播放区域(可视区)的时间就是t1+t2,而所述待发射队首弹幕数据的发射时间t3、运动时间t4、弹幕宽度w2和所述弹幕播放区域的显示宽度w1,那么所述待发射队首弹幕数据的队首弹幕内容的运动速度为就是s1=(w1+w2)/t4,由此可以得出所述待发射队首弹幕数据的队首弹幕内容第一次到达弹幕播放区域的左边边界的时间为t3+(w1/s1)。当t1+t2<t3+(w1/s1)时,则表示当这最后一条弹幕内容完全消失在弹幕播放区域范围时,所述待发射队首弹幕数据的队首弹幕内容仍然没有追上这最后一条弹幕内容,也就意味着这最后一条弹幕内容和所述待发射队首弹幕数据的队首弹幕内容之间不会相撞,因此可以将所述第i个弹幕轨道的当前状态确定为空闲状态。
步骤S606:确定所述第i个弹幕轨道的当前状态为拥挤状态。
步骤S608:更新i的取值,并基于更新后的i的取值执行步骤600~S608直至i等于M;其中,1≤i≤M,i的初始值为1,M表示所述多个弹幕轨道的数量。
步骤S412,根据各个弹幕轨道的当前状态,确定是否将所述待发射弹幕队列中的至少一个目标弹幕数据发射出去,以将所述至少一个目标弹幕数据中的至少一个弹幕内容呈现在所述视频播放页面的弹幕播放区域中。
弹幕播放区域可以是视频播放区域,也可以是其他区域。
弹幕轨道可以为空闲状态或拥挤状态。
如果第i个弹幕轨道的当前状态为空闲状态,则确定将所述待发射弹幕队列中的至少一个目标弹幕数据发射出去,以将所述至少一个目标弹幕数据中的至少一个弹幕内容呈现在所述弹幕播放区域中。
如果第i个弹幕轨道的当前状态为拥挤状态,则确定不将所述待发射弹幕队列中的至少一个目标弹幕数据发射出去。
示例1:
第i个弹幕轨道的当前状态为空闲状态,如图8所示,所述步骤S412可以包括步骤S800~S804,其中:步骤S800,将所述待发射弹幕队列中的待发射队首弹幕数据添加到所述第i个数组中;步骤S802,将所述待发射弹幕队列中的待发射队首弹幕数据添加到所述渲染列表中,以将所述待发射队首弹幕数据对应的队首弹幕内容经渲染操作后呈现在所述弹幕播放区域中的第i个弹幕轨道上;步骤S804,更新所述待发射弹幕队列中的待发射队首弹幕数据。
例如:所述待发射弹幕队列中从队首到队尾依次为目标弹幕数据A1、目标弹幕数据A2、目标弹幕数据A3、…,所述待发射弹幕队列中的待发射队首弹幕数据当前为目标弹幕数据A1。
①通过第一个子数组判断第二个弹幕轨道的当前状态。
②在第一个弹幕轨道的当前状态为空闲状态时,将目标弹幕数据A1向后分别添加到渲染列表中和第一个子数组中,并将目标弹幕数据A1从所述待发射弹幕数据删除,以将目标弹幕数据A1的后续目标弹幕数据(即,目标弹幕数据A2)更新为所述待发射弹幕队列中的待发射队首弹幕数据。位于渲染列表中的目标弹幕数据A1中的弹幕内容会经历如下操作:更新渲染运动动画样式等。位于第一个子数组中的目标弹幕数据A2用于表示所述第一个弹幕轨道中目前存在目标弹幕数据2的弹幕内容。
③接着通过第二个子数组判断第二个弹幕轨道的当前状态。
④在第二个弹幕轨道的当前状态为空闲状态时,将目标弹幕数据A2向后分别推入到渲染列表中和第二个子数组中,并将目标弹幕数据A2从所述待发射弹幕数据删除,以将目标弹幕数据A2的后续目标弹幕数据(即,目标弹幕数据A3)更新为所述待发射弹幕队列中的待发射队首弹幕数据。
⑤接着通过第三个子数组判断第三个弹幕轨道的当前状态。
⑥在第三个弹幕轨道的当前状态为拥挤状态时,则直接接着通过第四个子数组判断第四个弹幕轨道的当前状态。
依次类推,本文不再赘述。
另,在被添加到渲染列表和第i个子数组之后,位于所述待发射弹幕队列头部的这个目标弹幕数据会被删除,以将这个目标弹幕数据的后续目标弹幕数据(如,位置仅次于这个目标弹幕数据的后续目标弹幕数据)更新为所述待发射弹幕队列中的待发射队首弹幕数据,这条目标弹幕数据会从待发射弹幕队列中被删除。
示例2:
如果所有弹幕轨道全部都处于拥挤状态,则认为当前弹幕数量过多并超出屏幕渲染能力,因此可以将所述待发射弹幕队列中的至少一个目标弹幕数据删除掉。
①通过第一个子数组判断第一个弹幕轨道的当前状态。
②在第一个弹幕轨道的当前状态为拥挤状态时,则直接接着通过第二个子数组判断第二个弹幕轨道的当前状态。
③在第二个弹幕轨道的当前状态为拥挤状态时,则直接接着通过第三个子数组判断第三个弹幕轨道的当前状态。
依次类推,如果所有弹幕轨道(M个轨道)均处于拥挤状态,则删除所述待发射弹幕队列中的所述多个目标弹幕数据。
如图9所示,下面提供一个用于辅助理解的具体示例,需要说明的是,该示例并不用于限制专利保护范围。
步骤S900,对微信小程序页面执行初始化操作。
步骤S902,发起原始弹幕数据请求。
在所述微信小程序页面完成初始化之后,弹幕加载器向提供商网络2发起原始弹幕数据请求,并接收提供商网络2返回的XML(extensible mariup language,可扩展标记语言)文件。
所述弹幕加载器位于微信小程序页面的逻辑层。该逻辑层还包括弹幕计算器和弹幕时间线。
步骤S904,编译XML文件以获取多个原始弹幕数据。
具体的,将XML文件编译为Element对象,从Element对象上获取到多个原始弹幕数据,如弹幕内容、发射时间、弹幕颜色、运动时间等属性(原始弹幕数据),并将这些属性转化为json的数据格式存储到本地数组中,得到存储在本地数组中的多个原始弹幕数据。然后,克隆所述多个原始弹幕数据,得到所述多个弹幕数据。理由如下:
在弹幕筛选和使用过程中,弹幕状态可能发生变化,当播放进度条拉回到先前的某个播放时间节点时,弹幕数据由于状态发生变化已经不能使用,往往需要从提供商网络2再次请求下载。
在本实施例中:获取的多个原始弹幕数据位于原始数据,不用于弹幕播放操作;其做法如下:克隆多个原始弹幕数据得到第一次克隆操作对应的多个弹幕数据,将第一次克隆操作对应的多个弹幕数据用于弹幕播放操作,当播放进度条拉回到先前的某个播放时间节点时,则克隆作为原始数据的所述多个原始弹幕数据,得到第二次克隆操作对应的多个弹幕数据,将第二次克隆操作对应的多个弹幕数据用于弹幕播放操作。不难理解,本实施例中,当播放进度条每次拉回到先前的播放时间节点,无需从提供商网络2中再次请求下载,再次执行克隆操作即可。
所述多个弹幕数据用于后续的弹幕播放操作。
步骤S906,开始弹幕播放;
所述弹幕计算器用于弹幕筛选和计算。所述弹幕时间线用于管理弹幕时间线,即同步视频流的当前播放时间。
所述弹幕计算器和弹幕时间线是位于应用12(如浏览器、微信小程序)的逻辑层的,可以通过该逻辑层让让弹幕时间线与弹幕计算器以递归调用的帧渲染模式并行工作。
当弹幕计算器检测到所述多个弹幕数据发射完毕时,所述弹幕计算器和所述弹幕时间线终止运行并重置弹幕系统。另外,如果计算机设备10检测到用户点击了暂停按钮或者视频播放完毕时,所述弹幕计算器与所述弹幕时间线也会同时暂停或终止运行。
步骤S908,通过弹幕计算器遍历各个弹幕数据,以计算和筛选各个弹幕数据是否处于待发射状态或处于过期状态。
下面以其中一个弹幕数据j为例:
步骤S910,判断弹幕数据j是否到达发射时间。如果是,进入步骤S912,否则进入步骤S914。
根据视频流的当前播放时间和弹幕数据j中的发射时间,判断弹幕数据j中的弹幕内容是否达到发射时间,也就是说,弹幕数据j在当前是否处于待发射状态。
步骤S912,将弹幕数据j添加到待发射弹幕队列中,通知所述视图层进行数据更新操作以执行第一次渲染操作。进入步骤S918。
通知所述视图层进行数据更新操作,根据所述处于待发射状态的弹幕数据j执行第一次渲染操作。
如:在可视区之外,插入真实的弹幕元素,用户无法看到并且没有添加运动效果,这么做是为了获取弹幕元素的真实的弹幕宽度,来计算弹幕内容的运动初始位置和运动终点位置,以及用于作为判断多个弹幕轨道是否有处于空闲状态的弹幕轨道的依据之一。
添加到待发射弹幕队列中的弹幕数据j会从所述多个弹幕数据中删除,以减少后续遍历次数。
步骤S914,判断弹幕数据j是否处于过期状态。如果是,进入步骤S916;否则,该弹幕数据j将等待下一次遍历操作。
步骤S916,销毁弹幕数据j。例如,将弹幕数据j从所述多个弹幕数据删除,以减少后续遍历次数。
步骤S918,判断当前是否有空闲的弹幕轨道。如果是,进入步骤S920,否则进入步骤S916。
示例性的,获取所述第一次渲染操作得到的弹幕元素的弹幕宽度。根据所述弹幕元素的弹幕宽度,判断多个弹幕轨道中是否包括处于空闲状态下的弹幕轨道。
①判断第i个子数组是否为空,所述第i个子数组对应第i个弹幕轨道;
②如果所述第i个子数组为空,则确定所述第i个弹幕轨道的当前状态为空闲状态。
③如果所述第i个子数组不为空:假设第i个弹幕轨道中最后一条弹幕内容的发射时间为t1且运动时间为t2,那么这最后一条弹幕内容完全消失在弹幕播放区域(可视区)的时间就是t1+t2,而弹幕数据j的发射时间t3、运动时间t4、弹幕宽度w2和所述弹幕播放区域的显示宽度w1,那么弹幕数据j的运动速度为就是s1=(w1+w2)/t4,由此可以得出所述弹幕数据j的弹幕内容第一次到达弹幕播放区域的左边边界的时间为t3+(w1/s1)。当t1+t2<t3+(w1/s1)时,则表示当这最后一条弹幕内容完全消失在弹幕播放区域范围时,弹幕数据j的弹幕内容仍然没有追上这最后一条弹幕内容,也就意味着这最后一条弹幕内容和弹幕数据j的弹幕内容之间不会相撞,因此可以将所述第i个弹幕轨道的当前状态确定为空闲状态。
步骤S920,加入虚拟弹幕轨迹和渲染队列,通知所述视图层进行数据更新操作以执行第二次渲染操作。
①将所述待发射弹幕队列中的弹幕数据j加入到虚拟弹幕轨道中。其中,所述虚拟弹幕轨道用于判断各个弹幕轨道是否处于空闲状态。
②将所述待发射弹幕队列中的弹幕数据j加入到渲染列表中,以进一步创建相应的弹幕元素,如运动效果。
实施例三
图10示意性示出了根据本申请实施例三的弹幕呈现系统的框图,该弹幕呈现系统可以被分割成一个或多个程序模块,一个或者多个程序模块被存储于存储介质中,并由一个或多个处理器所执行,以完成本申请实施例。本申请实施例所称的程序模块是指能够完成特定功能的一系列计算机程序指令段,以下描述将具体介绍本实施例中各程序模块的功能。
如图10所示,该弹幕呈现系统1000可以包括第一获取模块810、第二获取模块1020、克隆模块1030、第三获取模块1040及呈现模块1050,其中:
第一获取模块1010,用于获取视频播放页面。
第二获取模块1020,用于获取多个原始弹幕数据,每个原始弹幕数据包括弹幕内容和弹幕发射时间。
克隆模块1030,用于克隆所述多个原始弹幕数据,得到多个弹幕数据。
第三获取模块1040,用于根据各个弹幕数据的弹幕发射时间,从所述多个弹幕数据中获取多个目标弹幕数据。
呈现模块1050,用于将所述多个目标弹幕数据中的至少一个弹幕内容呈现在所述视频播放页面的弹幕播放区域中。
在示例性的实施例中的,第三获取模块1040,还用于:通过弹幕计算器遍历所述多个弹幕数据,获取与弹幕时间线的当前时间匹配的若干个弹幕数据;及将所述若干个弹幕数据确定为所述多个目标弹幕数据。
在示例性的实施例中,所述弹幕时间线与所述弹幕计算器是以递归调用的帧渲染模式并行工作的。
在示例性的实施例中,所述弹幕播放区域包括多个弹幕轨道;呈现模块1050,还用于:将所述多个目标弹幕数据添加到待发射弹幕队列中;及根据虚拟弹幕轨道判断各个弹幕轨道的当前状态,所述虚拟弹幕轨道为预先配置的嵌套数组,所述嵌套数组中包括多个子数组,每个子数组映射所述多个弹幕轨道中的其中一个弹幕轨道;及根据各个弹幕轨道的当前状态,确定是否将所述待发射弹幕队列中的至少一个目标弹幕数据发射出去,以将所述至少一个目标弹幕数据中的至少一个弹幕内容呈现在所述弹幕播放区域中。
在示例性的实施例中,呈现模块1050,还用于::S1,判断第i个子数组是否为空,所述第i个子数组对应第i个弹幕轨道;S2,如果所述第i个子数组为空,则确定所述第i个弹幕轨道的当前状态为空闲状态。
在示例性的实施例中,呈现模块1050,还用于:S3,如果所述第i个子数组不为空,则判断所述待发射弹幕队列中的待发射队首弹幕数据中的队首弹幕内容和所述已发射尾部弹幕数据中的尾部弹幕内容是否会发生碰撞,其中,所述待发射队首弹幕数据为位于所述待发射弹幕队列头部的目标弹幕数据,所述已发射尾部弹幕数据为位于所述第i个数组尾部的已发射弹幕数据;S4,如果所述待发射队首弹幕数据中的队首弹幕内容和所述已发射尾部弹幕数据中的尾部弹幕内容不会发生碰撞,则确定所述第i个弹幕轨道的当前状态为空闲状态。
在示例性的实施例中,判断所述待发射弹幕队列中的待发射队首弹幕数据中的队首弹幕内容和所述已发射尾部弹幕数据中的尾部弹幕内容是否会发生碰撞,包括:根据所述已发射尾部弹幕数据中的发射时间t1和运动时间t2,计算所述已发射尾部弹幕数据中的尾部弹幕内容在所述弹幕播放区域的呈现时间t1+t2;根据所述待发射队首弹幕数据的发射时间t3、运动时间t4、弹幕宽度w2和所述弹幕播放区域的显示宽度w1,计算所述待发射队首弹幕数据中的队首弹幕内容达到所述弹幕播放区域的左边界时的达到时间t3+[w1*t4/(w1+w2)];判断所述呈现时间t1+t2是否小于所述到达时间t3+[w1*t4/(w1+w2)];如果所述呈现时间t1+t2小于所述到达时间t3+[w1*t4/(w1+w2)],则确定所述待发射队首弹幕数据中的队首弹幕内容和所述已发射尾部弹幕数据中的尾部弹幕内容不会发生碰撞;及如果所述呈现时间t1+t2不小于所述到达时间t3+[w1*t4/(w1+w2)],则确定所述待发射队首弹幕数据中的队首弹幕内容和所述已发射尾部弹幕数据中的尾部弹幕内容会发生碰撞。
在示例性的实施例中,呈现模块1050,还用于:S5,如果所述待发射队首弹幕数据中的队首弹幕内容和所述已发射尾部弹幕数据中的尾部弹幕内容会发生碰撞,则确定所述第i个弹幕轨道的当前状态为拥挤状态。
在示例性的实施例中,呈现模块1050,还用于:更新i的取值,并基于更新后的i的取值执行步骤S1~S4直至i等于M;其中,1≤i≤M,i的初始值为1,M表示所述多个弹幕轨道的数量。
在示例性的实施例中,呈现模块1050,还用于:如果确定第一个轨道至第M个轨道均处于拥挤状态,则删除所述待发射弹幕队列中的所述多个目标弹幕数据。
在示例性的实施例中,呈现模块1050,还用于:如果确定所述第i个弹幕轨道的当前状态为空闲状态:将所述待发射弹幕队列中的待发射队首弹幕数据添加到所述第i个数组中;将所述待发射弹幕队列中的待发射队首弹幕数据添加到所述渲染列表中,以将所述待发射队首弹幕数据对应的队首弹幕内容经渲染操作后呈现在所述弹幕播放区域中的第i个弹幕轨道上;及更新所述待发射弹幕队列中的待发射队首弹幕数据。
实施例四
图11示意性示出了根据本申请实施例四的适于实现弹幕呈现方法的计算机设备的硬件架构示意图。本实施例中,计算机设备10是一种能够按照事先设定或者存储的指令,自动进行数值计算和/或信息处理的设备。计算机设备10可以是诸如智能手机、电脑、投影仪、机顶盒等,也可以是虚拟机主机进程和一个或多个虚拟机实例,或者是机架式服务器、刀片式服务器、塔式服务器或机柜式服务器(包括独立的服务器,或者多个服务器所组成的服务器集群)等。如图11所示,计算机设备10至少包括但不限于:可通过系统总线相互通信链接存储器1110、处理器1120、网络接口1130。其中:
存储器1110至少包括一种类型的计算机可读存储介质,可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘等。在一些实施例中,存储器1110可以是计算机设备10的内部存储模块,例如该计算机设备10的硬盘或内存。在另一些实施例中,存储器1110也可以是计算机设备10的外部存储设备,例如该计算机设备10上配备的插接式硬盘,智能存储卡(Smart Media Card,简称为SMC),安全数字(Secure Digital,简称为SD)卡,闪存卡(Flash Card)等。当然,存储器1110还可以既包括计算机设备10的内部存储模块也包括其外部存储设备。本实施例中,存储器1110通常用于存储安装于计算机设备10的操作系统和各类应用软件,例如弹幕呈现方法的程序代码等。此外,存储器1110还可以用于暂时地存储已经输出或者将要输出的各类数据。
处理器1120在一些实施例中可以是中央处理器(Central Processing Unit,简称为CPU)、控制器、微控制器、微处理器、或其他数据处理芯片。该处理器1120通常用于控制计算机设备10的总体操作,例如执行与计算机设备10进行数据交互或者通信相关的控制和处理等。本实施例中,处理器1120用于运行存储器1110中存储的程序代码或者处理数据。
网络接口1130可包括无线网络接口或有线网络接口,该网络接口1130通常用于在计算机设备10与其他计算机设备之间建立通信链接。例如,网络接口1130用于通过网络将计算机设备10与外部终端相连,在计算机设备10与外部终端之间的建立数据传输通道和通信链接等。网络可以是企业内部网(Intranet)、互联网(Internet)、全球移动通讯系统(Global System of Mobile communication,简称为GSM)、宽带码分多址(Wideband CodeDivision Multiple Access,简称为WCDMA)、4G网络、5G网络、蓝牙(Bluetooth)、Wi-Fi等无线或有线网络。
需要指出的是,图11仅示出了具有部件1010-1030的计算机设备,但是应理解的是,并不要求实施所有示出的部件,可以替代的实施更多或者更少的部件。
在本实施例中,存储于存储器1110中的弹幕呈现方法还可以被分割为一个或者多个程序模块,并由一个或多个处理器(本实施例为处理器1120)所执行,以完成本发明。
实施例五
本实施例还提供一种计算机可读存储介质,计算机可读存储介质其上存储有计算机程序,计算机程序被处理器执行时实现实施例中的弹幕呈现方法的步骤。
本实施例中,计算机可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘等。在一些实施例中,计算机可读存储介质可以是计算机设备的内部存储单元,例如该计算机设备的硬盘或内存。在另一些实施例中,计算机可读存储介质也可以是计算机设备的外部存储设备,例如该计算机设备上配备的插接式硬盘,智能存储卡(Smart Media Card,简称为SMC),安全数字(Secure Digital,简称为SD)卡,闪存卡(Flash Card)等。当然,计算机可读存储介质还可以既包括计算机设备的内部存储单元也包括其外部存储设备。本实施例中,计算机可读存储介质通常用于存储安装于计算机设备的操作系统和各类应用软件,例如实施例中的弹幕呈现方法的程序代码等。此外,计算机可读存储介质还可以用于暂时地存储已经输出或者将要输出的各类数据。
显然,本领域的技术人员应该明白,上述的本发明实施例的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明实施例不限制于任何特定的硬件和软件结合。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

Claims (14)

1.一种弹幕呈现方法,其特征在于,包括:
获取视频播放页面;
获取多个原始弹幕数据,每个原始弹幕数据包括弹幕内容和弹幕发射时间;
克隆所述多个原始弹幕数据,得到多个弹幕数据;
根据各个弹幕数据的弹幕发射时间,从所述多个弹幕数据中获取多个目标弹幕数据;及
将所述多个目标弹幕数据中的至少一个弹幕内容呈现在所述视频播放页面的弹幕播放区域中。
2.根据权利要求1所述的弹幕呈现方法,其特征在于,根据各个弹幕数据的弹幕发射时间,从所述多个弹幕数据中获取多个目标弹幕数据,包括:
通过弹幕计算器遍历所述多个弹幕数据,获取与弹幕时间线的当前时间匹配的若干个弹幕数据;及
将所述若干个弹幕数据确定为所述多个目标弹幕数据。
3.根据权利要求2所述的弹幕呈现方法,其特征在于,所述弹幕时间线与所述弹幕计算器是以递归调用的帧渲染模式并行工作的。
4.根据权利要求1所述的弹幕呈现方法,其特征在于,所述弹幕播放区域包括多个弹幕轨道;将所述多个目标弹幕数据中的至少一个弹幕内容呈现在所述视频播放页面的弹幕播放区域中,包括:
将所述多个目标弹幕数据添加到待发射弹幕队列中;及
根据虚拟弹幕轨道判断各个弹幕轨道的当前状态,所述虚拟弹幕轨道为预先配置的嵌套数组,所述嵌套数组中包括多个子数组,每个子数组映射所述多个弹幕轨道中的其中一个弹幕轨道;及
根据各个弹幕轨道的当前状态,确定是否将所述待发射弹幕队列中的至少一个目标弹幕数据发射出去,以将所述至少一个目标弹幕数据中的至少一个弹幕内容呈现在所述弹幕播放区域中。
5.根据权利要求4所述的弹幕呈现方法,其特征在于,根据虚拟弹幕轨道判断各个弹幕轨道的当前状态,包括:
S1,判断第i个子数组是否为空,所述第i个子数组对应第i个弹幕轨道;
S2,如果所述第i个子数组为空,则确定所述第i个弹幕轨道的当前状态为空闲状态。
6.根据权利要求5所述的弹幕呈现方法,其特征在于,根据虚拟弹幕轨道判断各个弹幕轨道的当前状态,还包括:
S3,如果所述第i个子数组不为空,则判断所述待发射弹幕队列中的待发射队首弹幕数据中的队首弹幕内容和所述已发射尾部弹幕数据中的尾部弹幕内容是否会发生碰撞,其中,所述待发射队首弹幕数据为位于所述待发射弹幕队列头部的目标弹幕数据,所述已发射尾部弹幕数据为位于所述第i个数组尾部的已发射弹幕数据;
S4,如果所述待发射队首弹幕数据中的队首弹幕内容和所述已发射尾部弹幕数据中的尾部弹幕内容不会发生碰撞,则确定所述第i个弹幕轨道的当前状态为空闲状态。
7.根据权利要求6所述的弹幕呈现方法,其特征在于,判断所述待发射弹幕队列中的待发射队首弹幕数据中的队首弹幕内容和所述已发射尾部弹幕数据中的尾部弹幕内容是否会发生碰撞,包括:
根据所述已发射尾部弹幕数据中的发射时间t1和运动时间t2,计算所述已发射尾部弹幕数据中的尾部弹幕内容在所述弹幕播放区域的呈现时间t1+t2
根据所述待发射队首弹幕数据的发射时间t3、运动时间t4、弹幕宽度w2和所述弹幕播放区域的显示宽度w1,计算所述待发射队首弹幕数据中的队首弹幕内容达到所述弹幕播放区域的左边界时的达到时间t3+[w1*t4/(w1+w2)];
判断所述呈现时间t1+t2是否小于所述到达时间t3+[w1*t4/(w1+w2)];
如果所述呈现时间t1+t2小于所述到达时间t3+[w1*t4/(w1+w2)],则确定所述待发射队首弹幕数据中的队首弹幕内容和所述已发射尾部弹幕数据中的尾部弹幕内容不会发生碰撞;及
如果所述呈现时间t1+t2不小于所述到达时间t3+[w1*t4/(w1+w2)],则确定所述待发射队首弹幕数据中的队首弹幕内容和所述已发射尾部弹幕数据中的尾部弹幕内容会发生碰撞。
8.根据权利要求6所述的弹幕呈现方法,其特征在于,根据虚拟弹幕轨道判断各个弹幕轨道的当前状态,还包括:
S5,如果所述待发射队首弹幕数据中的队首弹幕内容和所述已发射尾部弹幕数据中的尾部弹幕内容会发生碰撞,则确定所述第i个弹幕轨道的当前状态为拥挤状态。
9.根据权利要求8所述的弹幕呈现方法,其特征在于,根据虚拟弹幕轨道判断各个弹幕轨道的当前状态,还包括:
更新i的取值,并基于更新后的i的取值执行步骤S1~S4直至i等于M;
其中,1≤i≤M,i的初始值为1,M表示所述多个弹幕轨道的数量。
10.根据权利要求9所述的弹幕呈现方法,其特征在于,根据各个弹幕轨道的当前状态,确定是否将所述待发射弹幕队列中的至少一个目标弹幕数据发射出去,以将所述至少一个目标弹幕数据中的至少一个弹幕内容呈现在所述弹幕播放区域中,包括:
如果确定第一个轨道至第M个轨道均处于拥挤状态,则删除所述待发射弹幕队列中的所述多个目标弹幕数据。
11.根据权利要求5~8中任意一项所述的弹幕呈现方法,其特征在于,根据各个弹幕轨道的当前状态,确定是否将所述待发射弹幕队列中的至少一个目标弹幕数据发射出去,以将所述至少一个目标弹幕数据中的至少一个弹幕内容呈现在所述弹幕播放区域中,包括:
如果确定所述第i个弹幕轨道的当前状态为空闲状态:
将所述待发射弹幕队列中的待发射队首弹幕数据添加到所述第i个数组中;
将所述待发射弹幕队列中的待发射队首弹幕数据添加到所述渲染列表中,以将所述待发射队首弹幕数据对应的队首弹幕内容经渲染操作后呈现在所述弹幕播放区域中的第i个弹幕轨道上;及
更新所述待发射弹幕队列中的待发射队首弹幕数据。
12.一种弹幕呈现系统,其特征在于,包括:
第一获取模块,用于获取视频播放页面;
第二获取模块,用于获取多个原始弹幕数据,每个原始弹幕数据包括弹幕内容和弹幕发射时间;
克隆模块,用于克隆所述多个原始弹幕数据,得到多个弹幕数据;
第三获取模块,用于根据各个弹幕数据的弹幕发射时间,从所述多个弹幕数据中获取多个目标弹幕数据;及
呈现模块,用于将所述多个目标弹幕数据中的至少一个弹幕内容呈现在所述视频播放页面的弹幕播放区域中。
13.一种计算机设备,包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至11任一项所述方法的步骤。
14.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序可被至少一个处理器所执行,以使所述至少一个处理器执行如权利要求1至11任一项所述方法的步骤。
CN201911166832.XA 2019-11-25 2019-11-25 弹幕呈现方法和系统 Active CN111031400B (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN201911166832.XA CN111031400B (zh) 2019-11-25 2019-11-25 弹幕呈现方法和系统
US17/778,784 US11924503B2 (en) 2019-11-25 2020-03-26 Bullet comment presentation method and system
PCT/CN2020/081490 WO2021103363A1 (zh) 2019-11-25 2020-03-26 弹幕呈现方法和系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911166832.XA CN111031400B (zh) 2019-11-25 2019-11-25 弹幕呈现方法和系统

Publications (2)

Publication Number Publication Date
CN111031400A true CN111031400A (zh) 2020-04-17
CN111031400B CN111031400B (zh) 2021-04-27

Family

ID=70206583

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911166832.XA Active CN111031400B (zh) 2019-11-25 2019-11-25 弹幕呈现方法和系统

Country Status (3)

Country Link
US (1) US11924503B2 (zh)
CN (1) CN111031400B (zh)
WO (1) WO2021103363A1 (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111538557A (zh) * 2020-07-09 2020-08-14 平安国际智慧城市科技股份有限公司 基于层叠样式表的弹幕渲染方法及相关设备
CN112423111A (zh) * 2020-11-05 2021-02-26 上海哔哩哔哩科技有限公司 图形引擎和适用于播放器的图形处理方法
CN112463017A (zh) * 2020-12-17 2021-03-09 中国农业银行股份有限公司 一种互动元素合成方法和相关装置
CN114173198A (zh) * 2021-12-08 2022-03-11 湖南快乐阳光互动娱乐传媒有限公司 弹幕渲染方法及装置、存储介质及电子设备
CN114339373A (zh) * 2022-03-17 2022-04-12 飞狐信息技术(天津)有限公司 一种队列弹幕生成方法、装置、存储介质和设备

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115243078B (zh) * 2022-07-28 2024-04-16 上海幻电信息科技有限公司 弹幕展示方法及装置

Citations (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050046899A1 (en) * 2003-08-27 2005-03-03 Aiko Matsuda Image forming apparatus having writing space mode
CN103841121A (zh) * 2014-03-28 2014-06-04 中国科学技术大学 一种基于本地文件的评论和互动系统及方法
CN104967876A (zh) * 2014-09-30 2015-10-07 腾讯科技(深圳)有限公司 弹幕信息处理方法和装置、弹幕信息展示方法和装置
CN106060632A (zh) * 2016-05-31 2016-10-26 武汉斗鱼网络科技有限公司 一种节目现场弹幕控制系统及方法
CN106385613A (zh) * 2016-09-19 2017-02-08 广州华多网络科技有限公司 控制弹幕播放的方法及装置
CN106454485A (zh) * 2016-10-25 2017-02-22 华中科技大学 一种速度可变弹幕的弹道分配方法
CN106469165A (zh) * 2015-08-18 2017-03-01 腾讯科技(深圳)有限公司 弹幕展示方法及弹幕展示装置
CN106792225A (zh) * 2016-11-09 2017-05-31 武汉斗鱼网络科技有限公司 前端弹幕控制方法及装置
CN107087236A (zh) * 2017-03-22 2017-08-22 北京潘达互娱科技有限公司 一种直播信息展示方法及装置
CN107092643A (zh) * 2017-03-06 2017-08-25 武汉斗鱼网络科技有限公司 一种弹幕渲染方法及装置
CN107197355A (zh) * 2017-06-02 2017-09-22 北京潘达互娱科技有限公司 弹幕显示方法及装置
CN108696767A (zh) * 2018-05-15 2018-10-23 北京字节跳动网络技术有限公司 弹幕播放方法、装置、计算机可读存储介质和终端
CN108696766A (zh) * 2018-05-15 2018-10-23 北京字节跳动网络技术有限公司 弹幕显示方法、装置和计算机可读存储介质
CN110392293A (zh) * 2019-06-21 2019-10-29 平安普惠企业管理有限公司 基于canvas的弹幕控制方法、装置、设备及存储介质

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016004859A1 (zh) 2014-07-07 2016-01-14 乐视网信息技术(北京)股份有限公司 视频的弹幕显示方法及装置
US10284806B2 (en) * 2017-01-04 2019-05-07 International Business Machines Corporation Barrage message processing
US20220179665A1 (en) * 2017-01-29 2022-06-09 Yogesh Rathod Displaying user related contextual keywords and controls for user selection and storing and associating selected keywords and user interaction with controls data with user
CN111149367A (zh) 2017-09-18 2020-05-12 艾锐势有限责任公司 经由远程控制输入设备和机顶盒的电视机多媒体弹幕
CN109379604B (zh) 2018-08-15 2021-04-09 深圳点猫科技有限公司 一种基于教育云平台的视频弹幕制作方法及电子设备
CN110290414B (zh) 2019-06-14 2021-09-17 湖南国科微电子股份有限公司 基于机顶盒的电视直播弹幕方法及系统

Patent Citations (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050046899A1 (en) * 2003-08-27 2005-03-03 Aiko Matsuda Image forming apparatus having writing space mode
CN103841121A (zh) * 2014-03-28 2014-06-04 中国科学技术大学 一种基于本地文件的评论和互动系统及方法
CN104967876A (zh) * 2014-09-30 2015-10-07 腾讯科技(深圳)有限公司 弹幕信息处理方法和装置、弹幕信息展示方法和装置
CN106469165A (zh) * 2015-08-18 2017-03-01 腾讯科技(深圳)有限公司 弹幕展示方法及弹幕展示装置
CN106060632A (zh) * 2016-05-31 2016-10-26 武汉斗鱼网络科技有限公司 一种节目现场弹幕控制系统及方法
CN106385613A (zh) * 2016-09-19 2017-02-08 广州华多网络科技有限公司 控制弹幕播放的方法及装置
CN106454485A (zh) * 2016-10-25 2017-02-22 华中科技大学 一种速度可变弹幕的弹道分配方法
CN106792225A (zh) * 2016-11-09 2017-05-31 武汉斗鱼网络科技有限公司 前端弹幕控制方法及装置
CN107092643A (zh) * 2017-03-06 2017-08-25 武汉斗鱼网络科技有限公司 一种弹幕渲染方法及装置
CN107087236A (zh) * 2017-03-22 2017-08-22 北京潘达互娱科技有限公司 一种直播信息展示方法及装置
CN107197355A (zh) * 2017-06-02 2017-09-22 北京潘达互娱科技有限公司 弹幕显示方法及装置
CN108696767A (zh) * 2018-05-15 2018-10-23 北京字节跳动网络技术有限公司 弹幕播放方法、装置、计算机可读存储介质和终端
CN108696766A (zh) * 2018-05-15 2018-10-23 北京字节跳动网络技术有限公司 弹幕显示方法、装置和计算机可读存储介质
CN110392293A (zh) * 2019-06-21 2019-10-29 平安普惠企业管理有限公司 基于canvas的弹幕控制方法、装置、设备及存储介质

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111538557A (zh) * 2020-07-09 2020-08-14 平安国际智慧城市科技股份有限公司 基于层叠样式表的弹幕渲染方法及相关设备
CN112423111A (zh) * 2020-11-05 2021-02-26 上海哔哩哔哩科技有限公司 图形引擎和适用于播放器的图形处理方法
CN112463017A (zh) * 2020-12-17 2021-03-09 中国农业银行股份有限公司 一种互动元素合成方法和相关装置
CN112463017B (zh) * 2020-12-17 2021-12-14 中国农业银行股份有限公司 一种互动元素合成方法和相关装置
CN114173198A (zh) * 2021-12-08 2022-03-11 湖南快乐阳光互动娱乐传媒有限公司 弹幕渲染方法及装置、存储介质及电子设备
CN114173198B (zh) * 2021-12-08 2024-04-19 湖南快乐阳光互动娱乐传媒有限公司 弹幕渲染方法及装置、存储介质及电子设备
CN114339373A (zh) * 2022-03-17 2022-04-12 飞狐信息技术(天津)有限公司 一种队列弹幕生成方法、装置、存储介质和设备

Also Published As

Publication number Publication date
WO2021103363A1 (zh) 2021-06-03
US20220408144A1 (en) 2022-12-22
US11924503B2 (en) 2024-03-05
CN111031400B (zh) 2021-04-27

Similar Documents

Publication Publication Date Title
CN111031400B (zh) 弹幕呈现方法和系统
CN111031376B (zh) 基于微信小程序的弹幕处理方法和系统
US20200312327A1 (en) Method and system for processing comment information
CN112399192A (zh) 网络直播中的礼物展示方法和系统
CN111031399B (zh) 弹幕处理方法和系统
CN108449409B (zh) 动画推送方法、装置、设备和存储介质
US11909812B2 (en) Application control method and apparatus, electronic device, and storage medium
CN111741367B (zh) 视频互动方法、装置、电子设备及计算机可读存储介质
CN113225607B (zh) 直播间礼物展示的方法与系统
CN111510789A (zh) 视频播放方法、系统、计算机设备及计算机可读存储介质
EP3285455A1 (en) Content item aggregation method and related device and communication system
CN112843680A (zh) 画面显示方法、装置、终端设备及存储介质
CN110035294B (zh) 一种直播间的处理方法、装置、计算机可读存储介质及计算机设备
EP3918807A1 (en) Variable end-point user interface rendering
CN111026558B (zh) 基于微信小程序的弹幕处理方法和系统
CN113064590B (zh) 互动视频中互动组件的处理方法及装置
CN109999490B (zh) 一种降低联网云应用延迟的方法及系统
CN111225266A (zh) 用户界面交互方法和系统
KR102497838B1 (ko) 미디어 스트리밍 서버, 라이브 영상과 라이브 채팅을 스트리밍 동영상으로 제공하는 방법, 상기 방법을 실행시키기 위하여 기록매체에 저장된 컴퓨터 프로그램
CN115599252A (zh) 交互方法及装置
CN117311702A (zh) 页面配置、展示方法、装置、电子设备及存储介质
CN117750085A (zh) 游戏中的弹幕处理方法和装置
CN117314527A (zh) 广告实现方法及装置
CN116456152A (zh) 视频播放控制的方法和系统
CN117979080A (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: 40017513

Country of ref document: HK

GR01 Patent grant
GR01 Patent grant