弹幕呈现方法和系统技术方案

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

Presentation method and system of bullet curtain

【技术实现步骤摘要】
弹幕呈现方法和系统
本申请实施例涉及通信领域,尤其涉及一种弹幕呈现方法、系统、计算机设备及计算机可读存储介质。
技术介绍
弹幕,指的是在呈现视频时同时呈现评论性文字、表情、图案等。目前,弹幕成了为很多观众观看视频、直播的重要元素,其不仅能够使用户表达观看节目感受,而且还能使用户观看其他用户对节目的评论内容,实现用户观看视频时的互动性。然而,现在的弹幕可能会受到网络环境的影响,出现弹幕播放效果差的问题。
技术实现思路
有鉴于此,本申请实施例的目的是提供一种弹幕呈现方法、系统、计算机设备及计算机可读存储介质,用于解决现在的弹幕可能会受到网络环境的影响,出现弹幕播放效果差的问题。本申请实施例的一个方面提供了一种弹幕呈现方法,包括:获取视频播放页面;获取多个原始弹幕数据,每个原始弹幕数据包括弹幕内容和弹幕发射时间;克隆所述多个原始弹幕数据,得到多个弹幕数据;根据各个弹幕数据的弹幕发射时间,从所述多个弹幕数据中获取多个目标弹幕数据;及将所述多个目标弹幕数据中的至少一个弹幕内容呈现在所述视频播放页面的弹幕播放区域中。可选的,根据各个弹幕数据的弹幕发射时间,从所述多个弹幕数据中获取多个目标弹幕数据,包括:通过弹幕计算器遍历所述多个弹幕数据,获取与弹幕时间线的当前时间匹配的若干个弹幕数据;及将所述若干个弹幕数据确定为所述多个目标弹幕数据。可选的,所述弹幕时间线与所述弹幕计算器是以递归调用的帧渲染模式并行工作的。可选的,所述弹幕播放区域包括多个弹幕轨道;将所述多个目标弹幕数据中的至少一个弹幕内容呈现在所述弹幕播放区域中,包括:将所述多个目标弹幕数据添加到待发射弹幕队列中;及根据虚拟弹幕轨道判断各个弹幕轨道的当前状态,所述虚拟弹幕轨道为预先配置的嵌套数组,所述嵌套数组中包括多个子数组,每个子数组映射所述多个弹幕轨道中的其中一个弹幕轨道;及根据各个弹幕轨道的当前状态,确定是否将所述待发射弹幕队列中的至少一个目标弹幕数据发射出去,以将所述至少一个目标弹幕数据中的至少一个弹幕内容呈现在所述弹幕播放区域中。可选的,根据虚拟弹幕轨道判断各个弹幕轨道的当前状态,包括: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.一种弹幕呈现方法,其特征在于,包括:/n获取视频播放页面;/n获取多个原始弹幕数据,每个原始弹幕数据包括弹幕内容和弹幕发射时间;/n克隆所述多个原始弹幕数据,得到多个弹幕数据;/n根据各个弹幕数据的弹幕发射时间,从所述多个弹幕数据中获取多个目标弹幕数据;及/n将所述多个目标弹幕数据中的至少一个弹幕内容呈现在所述视频播放页面的弹幕播放区域中。/n

【技术特征摘要】
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)];

【专利技术属性】
技术研发人员:武修然谭兆歆
申请(专利权)人:上海哔哩哔哩科技有限公司
类型:发明
国别省市:上海;31

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1