CN112689190A - 弹幕显示方法、装置、终端及存储介质 - Google Patents
弹幕显示方法、装置、终端及存储介质 Download PDFInfo
- Publication number
- CN112689190A CN112689190A CN202110300011.1A CN202110300011A CN112689190A CN 112689190 A CN112689190 A CN 112689190A CN 202110300011 A CN202110300011 A CN 202110300011A CN 112689190 A CN112689190 A CN 112689190A
- Authority
- CN
- China
- Prior art keywords
- bullet screen
- speed
- bullet
- display
- collision
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 88
- 238000012545 processing Methods 0.000 claims description 102
- 230000000875 corresponding effect Effects 0.000 claims description 66
- 230000000704 physical effect Effects 0.000 claims description 55
- 230000003068 static effect Effects 0.000 claims description 29
- 230000004044 response Effects 0.000 claims description 21
- 230000002596 correlated effect Effects 0.000 claims description 5
- 230000000694 effects Effects 0.000 abstract description 19
- 238000004088 simulation Methods 0.000 abstract description 13
- 239000000306 component Substances 0.000 description 66
- 230000008569 process Effects 0.000 description 24
- 230000006870 function Effects 0.000 description 14
- 238000010586 diagram Methods 0.000 description 10
- 230000002093 peripheral effect Effects 0.000 description 10
- 230000002829 reductive effect Effects 0.000 description 8
- 238000004891 communication Methods 0.000 description 6
- 230000003993 interaction Effects 0.000 description 5
- 238000004590 computer program Methods 0.000 description 4
- 238000004134 energy conservation Methods 0.000 description 3
- 230000005484 gravity Effects 0.000 description 3
- 238000013519 translation Methods 0.000 description 3
- 230000001133 acceleration Effects 0.000 description 2
- 238000013473 artificial intelligence Methods 0.000 description 2
- 239000000919 ceramic Substances 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 238000006073 displacement reaction Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 230000006978 adaptation Effects 0.000 description 1
- 239000008358 core component Substances 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 230000002349 favourable effect Effects 0.000 description 1
- 230000004927 fusion Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 230000001788 irregular Effects 0.000 description 1
- 230000000670 limiting effect Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000036961 partial effect Effects 0.000 description 1
- 238000005293 physical law Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 239000000758 substrate Substances 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Images
Landscapes
- User Interface Of Digital Computer (AREA)
Abstract
本公开关于一种弹幕显示方法、装置、终端及存储介质,属于互联网技术领域。该弹幕显示方法包括:在弹幕显示区域中,以第一速度移动显示第一弹幕,以及,以第二速度移动显示第二弹幕,所述第一弹幕与所述第二弹幕相邻且位于所述第二弹幕之后,所述第一速度大于所述第二速度;响应于所述第一弹幕与所述第二弹幕发生碰撞,以第三速度移动显示所述第一弹幕,以及,以第四速度移动显示所述第二弹幕,所述第四速度大于所述第三速度。本公开通过模拟两个弹幕之间的碰撞效果,拉开了发生碰撞的两个弹幕之间的距离,避免了弹幕重叠显示。
Description
技术领域
本公开涉及互联网技术领域,尤其涉及一种弹幕显示方法、装置、终端及存储介质。
背景技术
弹幕是一种评论性字幕,可以叠加显示在视频上。用户在观看视频时,可以发布弹幕来表达观看视频的感受,也可以查看其他用户在视频播放到当前时间点时发布的弹幕,达到实时互动的效果。
当前,大多数弹幕都是在视频上移动显示的,弹幕与弹幕之间重叠显示的情况时有发生,严重影响到了互动效果,因此,亟需一种能够避免弹幕重叠显示的弹幕显示方法。
发明内容
本公开实施例提供了一种弹幕显示方法、装置、终端及存储介质,能够避免弹幕重叠显示。本公开的技术方案如下。
一方面,提供了一种弹幕显示方法,所述弹幕显示方法包括:
在弹幕显示区域中,以第一速度移动显示第一弹幕,以及,以第二速度移动显示第二弹幕,所述第一弹幕与所述第二弹幕相邻且位于所述第二弹幕之后,所述第一速度大于所述第二速度;
响应于所述第一弹幕与所述第二弹幕发生碰撞,以第三速度移动显示所述第一弹幕,以及,以第四速度移动显示所述第二弹幕,所述第四速度大于所述第三速度。
在本公开实施例中,弹幕显示区域中包括移动显示的两个弹幕,显示位置靠后的弹幕移动的速度比显示位置靠前的弹幕移动的速度快,从而显示位置靠后的弹幕会追上显示位置靠前的弹幕,与显示位置靠前的弹幕发生碰撞;两个弹幕发生碰撞之后,显示位置靠前的弹幕移动速度加快,大于显示位置靠后的弹幕的速度,从而模拟出了碰撞效果,拉开了发生碰撞的两个弹幕之间的距离,避免了弹幕重叠显示。
在一些实施例中,所述第三速度与所述第一弹幕的物理属性以及所述第二弹幕的物理属性相关,所述第四速度与所述第一弹幕的物理属性以及所述第二弹幕的物理属性相关,所述物理属性用于模拟弹幕的物理特性,所述物理属性包括质量和速度,所述质量与弹幕的长度呈正相关。
上述技术方案,通过利用弹幕的物理特性进行弹幕显示,降低了弹幕显示的复杂度,使得弹幕显示方法更便于维护和扩展,提高了弹幕显示方法的可维护性和可扩展性。
在一些实施例中,所述在弹幕显示区域中,以第一速度移动显示第一弹幕,以及,以第二速度移动显示第二弹幕,包括:
在所述弹幕显示区域的目标轨道中,以所述第一速度移动显示所述第一弹幕,以及,以所述第二速度移动显示所述第二弹幕;
其中,所述目标轨道用于指示所述第一弹幕和所述第二弹幕的移动路线,所述第一弹幕的中心与所述第二弹幕的中心对齐。
上述技术方案,使同一轨道中移动显示的多个弹幕的中心对齐,从而在同一轨道中的两个弹幕发生碰撞之后,弹幕的移动方向不会发生偏移,保证了弹幕整齐有序地进行移动显示,提高了弹幕显示的可用性。
在一些实施例中,所述在弹幕显示区域中,以第一速度移动显示第一弹幕,以及,以第二速度移动显示第二弹幕,包括:
响应于所述第一弹幕和所述第二弹幕的显示类型均为移动显示类型,在所述弹幕显示区域中,以所述第一速度移动显示所述第一弹幕,以及,以所述第二速度移动显示所述第二弹幕。
在一些实施例中,所述弹幕显示区域上还包括第三弹幕,所述第三弹幕的显示类型为静态显示类型;所述弹幕显示方法还包括:
响应于所述第一弹幕与所述第三弹幕重合,以所述第一速度移动显示所述第一弹幕,以及,在所述第三弹幕对应的显示位置上静止显示所述第三弹幕。
上述技术方案,提供了弹幕的多种显示类型,每种显示类型的弹幕按照不同的显示形式进行显示,提高了弹幕显示的丰富性。
在一些实施例中,所述弹幕显示方法还包括:
确定所述第一弹幕的物理属性,以及,确定所述第二弹幕的物理属性;
基于所述第一速度和所述第一弹幕的质量、所述第二速度和所述第二弹幕的质量,确定所述第一弹幕碰撞后的所述第三速度以及所述第二弹幕碰撞后的所述第四速度。
上述技术方案,为弹幕赋予物理属性,结合弹幕的物理属性确定碰撞后的速度,能够更加生动真实的模拟弹幕碰撞的效果,提高弹幕显示的生动性。
在一些实施例中,所述基于所述第一速度和所述第一弹幕的质量、所述第二速度和所述第二弹幕的质量,确定所述第一弹幕碰撞后的所述第三速度以及所述第二弹幕碰撞后的所述第四速度,包括:
基于所述第一速度和所述第一弹幕的质量、所述第二速度和所述第二弹幕的质量,确定总动量和总动能,所述总动量为所述第一弹幕的动量与所述第二弹幕的动量之和,所述总动能为所述第一弹幕的动能与所述第二弹幕的动能之和;
基于所述总动量、所述总动能、所述第一弹幕的质量和所述第二弹幕的质量,确定所述第三速度和所述第四速度。
上述技术方案,结合物理定律确定弹幕碰撞后的速度,能够更加生动真实的模拟弹幕碰撞的效果,提高弹幕显示的生动性。
在一些实施例中,所述物理属性还包括摩擦力,所述摩擦力为所述第一弹幕与所述第二弹幕碰撞过程中产生的摩擦力;
所述基于所述第一速度和所述第一弹幕的质量、所述第二速度和所述第二弹幕的质量,确定所述第一弹幕碰撞后的所述第三速度以及所述第二弹幕碰撞后的所述第四速度,包括:
基于所述第一速度和所述第一弹幕的质量、所述第二速度和所述第二弹幕的质量、作用于所述第一弹幕的摩擦力、作用于所述第二弹幕的摩擦力,确定所述第三速度和所述第四速度。
上述技术方案,还为弹幕赋予摩擦力的物理属性,从而能够更加真实生动的模拟弹幕碰撞的过程,提高弹幕碰撞显示的生动性。
在一些实施例中,所述物理属性还包括弹性系数;
所述基于所述第一速度和所述第一弹幕的质量、所述第二速度和所述第二弹幕的质量,确定所述第一弹幕碰撞后的所述第三速度以及所述第二弹幕碰撞后的所述第四速度,包括:
基于所述第一速度和所述第一弹幕的质量、所述第二速度和所述第二弹幕的质量、所述第一弹幕的弹性系数、所述第二弹幕的弹性系数,确定所述第三速度和所述第四速度。
上述技术方案,还为弹幕赋予弹性属性,从而能够更加真实生动的模拟弹幕碰撞的过程,提高弹幕碰撞显示的生动性。
在一些实施例中,所述弹幕显示方法还包括:
为所述第一弹幕创建第一碰撞盒,所述第一碰撞盒是将所述第一弹幕模拟为物体的虚拟模型;
为所述第二弹幕创建第二碰撞盒;
其中,所述第一弹幕与所述第二弹幕发生碰撞是指所述第一碰撞盒与所述第二碰撞盒发生碰撞。
上述技术方案,为弹幕创建碰撞盒,通过碰撞盒进行弹幕之间的碰撞检测,降低了碰撞检测的复杂度。
在一些实施例中,所述确定所述第一弹幕的物理属性,包括:
在目标轨道的弹幕处理组件未被占用的情况下,调用所述弹幕处理组件,确定所述第一弹幕的物理属性,所述目标轨道用于指示所述第一弹幕在所述弹幕显示区域中的移动路线。
上述技术方案,通过调用弹幕处理组件来确定弹幕的物理属性,使得确定弹幕物理属性的方法更便于维护和扩展,提高了可维护性和可扩展性。
在一些实施例中,所述弹幕显示方法还包括:
调用所述弹幕处理组件,使所述第一弹幕以所述第一弹幕的物理属性包括的速度进入所述目标轨道;
响应于所述第一弹幕完全显示在所述目标轨道内,释放所述弹幕处理组件。
上述技术方案,在弹幕完全显示在轨道中时,就释放弹幕处理组件,从而弹幕处理组件能够用于处理下一个弹幕,提高了弹幕处理组件的有效利用率。
在一些实施例中,所述弹幕显示区域上还包括第三弹幕,所述第三弹幕的显示类型为静态显示类型;所述弹幕显示方法还包括:
在所述第三弹幕对应的轨道的弹幕处理组件未被占用的情况下,调用所述弹幕处理组件,将所述第三弹幕显示在所述轨道中的所述第三弹幕对应的显示位置上。
上述技术方案,通过调用弹幕处理组件来显示静态显示类型的弹幕,使得弹幕显示方法更便于维护和扩展,提高了可维护性和可扩展性。
在一些实施例中,所述弹幕显示方法还包括:
响应于所述第三弹幕结束显示,释放所述弹幕处理组件。
上述技术方案,在静态显示类型的弹幕结束显示时,释放弹幕处理组件,既减少了静态显示类型的弹幕之间的重叠显示,又提高了弹幕处理组件的有效利用率。
在一些实施例中,所述确定所述第一弹幕的物理属性,包括:
获取所述第一弹幕的长度和所述第一弹幕的宽度;
基于所述第一弹幕的长度和所述第一弹幕的宽度,确定所述第一弹幕的显示面积;
基于所述第一弹幕的显示面积,确定所述第一弹幕的质量,所述质量与所述第一弹幕的显示面积呈正相关。
上述技术方案,基于弹幕的显示面积,来确定弹幕的质量,使得所确定的质量能够更加准确的对弹幕进行表示,进而能够提高模拟弹幕碰撞的真实性。
在一些实施例中,所述确定所述第一弹幕的物理属性,包括:
获取所述第一弹幕的移动距离,以及,获取所述第一弹幕对应的显示时长,所述显示时长为所述第一弹幕从开始进入所述弹幕显示区域到完全移出所述弹幕显示区域的时长;
将所述移动距离与所述显示时长的比值,确定为所述第一弹幕的速度。
上述技术方案,基于速度的物理特性,将弹幕的移动距离与显示时长的比值,确定为弹幕初始的移动速度,提高了速度确定的准确性,有利于更加真实生动的模拟弹幕显示过程。
在一些实施例中,所述获取所述第一弹幕的移动距离,包括:
获取所述第一弹幕的长度,以及,获取所述弹幕显示区域的跨度;
将所述第一弹幕的长度与所述弹幕显示区域的跨度的和值,确定为所述第一弹幕的移动距离。
上述技术方案中,长度越长的弹幕初始的移动速度越大,使得弹幕的速度与弹幕的长度相符,提高了弹幕的速度与长度的匹配度,提高了弹幕显示的真实性。
一方面,提供了一种弹幕显示装置,所述弹幕显示装置包括:
第一弹幕显示单元,被配置为执行在弹幕显示区域中,以第一速度移动显示第一弹幕,以及,以第二速度移动显示第二弹幕,所述第一弹幕与所述第二弹幕相邻且位于所述第二弹幕之后,所述第一速度大于所述第二速度;
第二弹幕显示单元,被配置为执行响应于所述第一弹幕与所述第二弹幕发生碰撞,以第三速度移动显示所述第一弹幕,以及,以第四速度移动显示所述第二弹幕,所述第四速度大于所述第三速度。
在一些实施例中,所述第三速度与所述第一弹幕的物理属性以及所述第二弹幕的物理属性相关,所述第四速度与所述第一弹幕的物理属性以及所述第二弹幕的物理属性相关,所述物理属性用于模拟弹幕的物理特性,所述物理属性包括质量和速度,所述质量与弹幕的长度呈正相关。
在一些实施例中,所述第一弹幕显示单元,被配置为执行:
在所述弹幕显示区域的目标轨道中,以所述第一速度移动显示所述第一弹幕,以及,以所述第二速度移动显示所述第二弹幕;
其中,所述目标轨道用于指示所述第一弹幕和所述第二弹幕的移动路线,所述第一弹幕的中心与所述第二弹幕的中心对齐。
在一些实施例中,所述第一弹幕显示单元,被配置为执行:
响应于所述第一弹幕和所述第二弹幕的显示类型均为移动显示类型,在所述弹幕显示区域中,以所述第一速度移动显示所述第一弹幕,以及,以所述第二速度移动显示所述第二弹幕。
在一些实施例中,所述弹幕显示区域上还包括第三弹幕,所述第三弹幕的显示类型为静态显示类型;所述弹幕显示装置还包括:
第三弹幕显示单元,被配置为执行响应于所述第一弹幕与所述第三弹幕重合,以所述第一速度移动显示所述第一弹幕,以及,在所述第三弹幕对应的显示位置上静止显示所述第三弹幕。
在一些实施例中,所述弹幕显示装置还包括:
第一物理属性确定单元,被配置为执行确定所述第一弹幕的物理属性;
第二物理属性确定单元,被配置为执行确定所述第二弹幕的物理属性;
速度确定单元,被配置为执行基于所述第一速度和所述第一弹幕的质量、所述第二速度和所述第二弹幕的质量,确定所述第一弹幕碰撞后的所述第三速度以及所述第二弹幕碰撞后的所述第四速度。
在一些实施例中,所述速度确定单元,被配置为执行:
基于所述第一速度和所述第一弹幕的质量、所述第二速度和所述第二弹幕的质量,确定总动量和总动能,所述总动量为所述第一弹幕的动量与所述第二弹幕的动量之和,所述总动能为所述第一弹幕的动能与所述第二弹幕的动能之和;
基于所述总动量、所述总动能、所述第一弹幕的质量和所述第二弹幕的质量,确定所述第三速度和所述第四速度。
在一些实施例中,所述物理属性还包括摩擦力,所述摩擦力为所述第一弹幕与所述第二弹幕碰撞过程中产生的摩擦力;
所述速度确定单元,被配置为执行:
基于所述第一速度和所述第一弹幕的质量、所述第二速度和所述第二弹幕的质量、作用于所述第一弹幕的摩擦力、作用于所述第二弹幕的摩擦力,确定所述第三速度和所述第四速度。
在一些实施例中,所述物理属性还包括弹性系数;
所述速度确定单元,被配置为执行:
基于所述第一速度和所述第一弹幕的质量、所述第二速度和所述第二弹幕的质量、所述第一弹幕的弹性系数、所述第二弹幕的弹性系数,确定所述第三速度和所述第四速度。
在一些实施例中,所述弹幕显示装置还包括:
碰撞盒创建单元,被配置为执行为所述第一弹幕创建第一碰撞盒,所述第一碰撞盒是将所述第一弹幕模拟为物体的虚拟模型;
所述碰撞盒创建单元,还被配置为执行为所述第二弹幕创建第二碰撞盒;
其中,所述第一弹幕与所述第二弹幕发生碰撞是指所述第一碰撞盒与所述第二碰撞盒发生碰撞。
在一些实施例中,所述第一物理属性确定单元,被配置为执行:
在目标轨道的弹幕处理组件未被占用的情况下,调用所述弹幕处理组件,确定所述第一弹幕的物理属性,所述目标轨道用于指示所述第一弹幕在所述弹幕显示区域中的移动路线。
在一些实施例中,所述弹幕显示装置还包括:
组件调用单元,被配置为执行调用所述弹幕处理组件,使所述第一弹幕以所述第一弹幕的物理属性包括的速度进入所述目标轨道;
第一组件释放单元,被配置为执行响应于所述第一弹幕完全显示在所述目标轨道内,释放所述弹幕处理组件。
在一些实施例中,所述弹幕显示区域上还包括第三弹幕,所述第三弹幕的显示类型为静态显示类型;所述弹幕显示装置还包括:
第四弹幕显示单元,被配置为执行在所述第三弹幕对应的轨道的弹幕处理组件未被占用的情况下,调用所述弹幕处理组件,将所述第三弹幕显示在所述轨道中的所述第三弹幕对应的显示位置上。
在一些实施例中,所述弹幕显示装置还包括:
第二组件释放单元,被配置为执行响应于所述第三弹幕结束显示,释放所述弹幕处理组件。
在一些实施例中,所述第一物理属性确定单元,包括:
尺寸获取子单元,被配置为执行获取所述第一弹幕的长度和所述第一弹幕的宽度;
面积确定子单元,被配置为执行基于所述第一弹幕的长度和所述第一弹幕的宽度,确定所述第一弹幕的显示面积;
质量确定子单元,被配置为执行基于所述第一弹幕的显示面积,确定所述第一弹幕的质量,所述质量与所述第一弹幕的显示面积呈正相关。
在一些实施例中,所述第一物理属性确定单元,包括:
移动距离获取子单元,被配置为执行获取所述第一弹幕的移动距离;
显示时长获取子单元,被配置为执行获取所述第一弹幕对应的显示时长,所述显示时长为所述第一弹幕从开始进入所述弹幕显示区域到完全移出所述弹幕显示区域的时长;
速度确定子单元,被配置为执行将所述移动距离与所述显示时长的比值,确定为所述第一弹幕的速度。
在一些实施例中,所述移动距离获取子单元,被配置为执行:
获取所述第一弹幕的长度,以及,获取所述弹幕显示区域的跨度;
将所述第一弹幕的长度与所述弹幕显示区域的跨度的和值,确定为所述第一弹幕的移动距离。
一方面,提供了一种终端,所述终端包括:一个或多个处理器;用于存储所述处理器可执行的指令的存储器;其中,所述处理器被配置为执行所述指令,以实现以上所述的弹幕显示方法。
一方面,提供了一种计算机可读存储介质,当所述计算机可读存储介质中的指令由终端的处理器执行时,使得终端能够执行以上所述的弹幕显示方法。
一方面,提供了一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现以上所述的弹幕显示方法。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理,并不构成对本公开的不当限定。
图1是根据一示例性实施例示出的一种实施环境的示意图;
图2是根据一示例性实施例示出的一种弹幕显示方法的流程图;
图3是根据一示例性实施例示出的一种弹幕显示方法的流程图;
图4是根据一示例性实施例示出的一种弹幕显示方法的流程图;
图5是根据一示例性实施例示出的一种弹幕的示意图;
图6是根据一示例性实施例示出的一种弹幕的示意图;
图7是根据一示例性实施例示出的一种弹幕显示过程的示意图;
图8是根据一示例性实施例示出的一种弹幕显示装置的框图;
图9是根据一示例性实施例示出的一种终端的框图。
具体实施方式
为了使本领域普通人员更好地理解本公开的技术方案,下面将结合附图,对本公开实施例中的技术方案进行清楚、完整地描述。
需要说明的是,本公开的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本公开的实施例能够以除了在这里图示或描述的那些以外的顺序实施。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
本公开所涉及的用户信息可以为经用户授权或者经过各方充分授权的信息。
为了方便理解,下面对本公开实施例中涉及的名词进行解释说明。
(1)弹幕。
在本公开实施例中,弹幕是指一种叠加显示在视频上的评论性字幕。在视频播放到任一个时间节点时,用户在视频播放到该时间节点时发布的弹幕会同步叠加显示在视频画面上。一个弹幕为一条评论性字幕。弹幕主要包括文本信息,该文本信息的字体颜色、字体大小均可灵活配置。可选地,弹幕还包括图像信息,如表情图像。可选地,弹幕还包括互动选项,用户可以对所显示的弹幕中的互动选项实施交互操作,来表达赞同或者不赞同该弹幕。可选地,弹幕在视频画面上移动显示,从视频画面的一侧移动至视频画面的另一侧;或者,弹幕在视频画面上静止显示,例如,弹幕静止显示在视频画面底部或者静止显示在视频画面顶部。
当然,在另一些实施例中,弹幕也可以是叠加显示在不包括视频的页面上的评论性字幕。例如,弹幕也可以叠加显示在网页上,表示用户浏览该网页时的感受;或者,弹幕也可以叠加显示在商品详情页面上,表示用户对商品的评价;或者,弹幕也可以叠加显示在内容分享页面上,表示用户浏览该内容分享页面时的感受。
(2)引擎。
引擎是用于支持应用程序实现特定功能的核心组件。例如,引擎包括物理引擎,物理引擎通过赋予虚拟对象物理属性,来将虚拟对象模拟成一个物体,进而依据物理定律和虚拟对象的物理属性,来模拟运动、碰撞等物理效果。当前,物理引擎大多应用在游戏应用程序中,通过物理效果的模拟,来增强游戏交互场景的真实性。
图1是根据一示例性实施例示出的一种实施环境的示意图。参见图1,该实施环境包括终端110和服务器120。
可选地,终端110为智能手机、平板电脑、笔记本电脑、台式电脑或者智能电视,但并不局限于此。终端110具有弹幕显示功能。可选地,终端110上设有应用程序,如视频类应用程序、浏览器类应用程序、内容分享类应用程序等,终端110通过运行应用程序,实现弹幕显示功能。
终端110可以泛指多个终端中的一个,本公开实施例仅以终端110来举例说明。本领域技术人员可以知晓,上述终端的数量可以更多或更少。比如上述终端可以仅为几个,或者上述终端为几十个或几百个,或者更多数量,本公开实施例对终端的数量和设备类型均不加以限定。
终端110与服务器120通过无线或者有线网络连接,服务器120为终端110的后台服务器,为终端110实现弹幕显示功能提供后台服务。可选地,服务器120为一台服务器、多台服务器、云服务器、云计算平台或者虚拟化中心。
针对在视频上显示弹幕的场景,服务器120存储有该视频的每个时间节点对应的至少一个弹幕。终端110在播放视频的过程中,从服务器120获取每个时间节点对应的至少一个弹幕,在视频播放到任一时间节点时,显示该时间节点对应的至少一个弹幕。其中,服务器120存储的每个时间节点对应的至少一个弹幕是与服务器120连接的终端上传的。与服务器120连接的终端会在播放视频的过程中,响应于弹幕发布操作,获取被输入的弹幕以及视频当前播放到的时间节点,将被输入的弹幕以及该被输入的弹幕对应的时间节点上传至服务器120,以使服务器120对应存储接收到的弹幕和时间节点。
针对在不包括视频的页面上显示弹幕的场景,服务器120存储有该页面对应的至少一个弹幕。终端110响应于对该页面的页面显示操作,显示该页面,并从服务器120获取该页面对应的至少一个弹幕,在该页面上叠加显示该页面对应的至少一个弹幕。其中,服务器120存储的该页面对应的至少一个弹幕是与该服务器120连接的终端上传的。与服务器120连接的终端会在显示该页面的过程中,响应于弹幕发布操作,获取被输入的弹幕以及该页面的页面标识,将该页面的页面标识和该被输入的弹幕上传至服务器120,以使服务器120对应存储接收到的弹幕和页面标识。
可选地,上述服务器的数量可以更多或更少,本公开实施例对此不加以限定。当然,服务器120还可以包括其他功能服务器,以便提供更全面且多样化的服务。
图2是根据一示例性实施例示出的一种弹幕显示方法的流程图。下面结合图2对该弹幕显示方法进行简要说明,参见图2,该弹幕显示方法应用于终端,包括以下步骤。
201、在弹幕显示区域中,以第一速度移动显示第一弹幕,以及,以第二速度移动显示第二弹幕,第一弹幕与第二弹幕相邻且位于第二弹幕之后,第一速度大于第二速度。
其中,弹幕显示区域是指能够显示弹幕的区域,弹幕的移动范围控制在该弹幕显示区域之内。在视频画面上显示弹幕的场景中,弹幕显示区域为视频画面所在的区域。在不包括视频的页面上显示弹幕的场景中,可选地,弹幕显示区域为整个页面所在的区域或者页面中的部分区域,本公开对此不加以限定。
在一些实施例中,第一弹幕与第二弹幕发生碰撞之前,还未与任何弹幕发生过碰撞,第一速度为第一弹幕进入弹幕显示区域时的初始移动速度;在一些实施例中,第一弹幕与第二弹幕发生碰撞之前,已经与其他弹幕发生过碰撞,第一速度为第一弹幕与其他弹幕发生碰撞后的速度,本公开对此不加以限定。同理,第二速度为第二弹幕进入弹幕显示区域时的初始移动速度;或者,第二速度为第二弹幕与其他弹幕发生碰撞后的速度,本公开对此不加以限定。
弹幕可以是从弹幕显示区域中的任一位置开始,沿任一方向进行移动显示的,本公开对此不加以限定。例如,弹幕从弹幕显示区域的左边缘上的任一位置开始,沿水平方向移动显示,从右边缘移出;或者,弹幕从弹幕显示区域的右边缘上的任一位置开始,沿水平方向移动显示,从左边缘移出;或者,弹幕从弹幕显示区域的上边缘上的任一位置开始,沿竖直方向移动显示,从下边缘移出;或者,弹幕从弹幕显示区域的下边缘上的任一位置开始,沿竖直方向移动显示,从上边缘移出。其中,第一弹幕是在第二弹幕进入弹幕显示区域之后才进入到弹幕显示区域的弹幕,第一弹幕的移动方向与第二弹幕的移动方向相同。
另外,弹幕的文字排列方向可以为任一方向,本公开对此不加以限定。可选地,若弹幕沿水平方向移动显示,则弹幕的文字排列方向也为水平方向;若弹幕沿竖直方向移动显示,则弹幕的文字排列方向也为竖直方向。另外,为便于用户浏览弹幕中的内容,从第一个文字开始,弹幕包括的文字依次移入弹幕显示区域进行显示。
202、响应于第一弹幕与第二弹幕发生碰撞,以第三速度移动显示第一弹幕,以及,以第四速度移动显示第二弹幕,第四速度大于第三速度。
需要说明的是,第一弹幕与第二弹幕发生碰撞是指第一弹幕的显示区域与第二弹幕的显示区域重和。其中,任一弹幕的显示区域是包含该弹幕的全部内容的最小区域。
在本公开实施例中,弹幕显示区域中包括移动显示的两个弹幕,显示位置靠后的弹幕移动的速度比显示位置靠前的弹幕移动的速度快,从而显示位置靠后的弹幕会追上显示位置靠前的弹幕,与显示位置靠前的弹幕发生碰撞;两个弹幕发生碰撞之后,显示位置靠前的弹幕移动速度加快,大于显示位置靠后的弹幕的速度,从而模拟出了碰撞效果,拉开了发生碰撞的两个弹幕之间的距离,避免了弹幕重叠显示。
图3是根据一示例性实施例示出的一种弹幕显示方法的流程图。下面结合图3对该弹幕显示方法进行详细说明,参见图3,该弹幕显示方法包括以下步骤。
301、终端在弹幕显示区域的目标轨道中,以第一速度移动显示第一弹幕,以及,以第二速度移动显示第二弹幕。
其中,第一弹幕的显示类型以及第二弹幕的显示类型均为移动显示类型,移动显示类型用于表示弹幕从弹幕显示区域的一侧开始,移动显示至弹幕显示区域的另一侧。
在一些实施例中,弹幕沿着不同的轨道进行移动显示,轨道用于指示弹幕的移动路线,例如,轨道为沿着水平方向平铺的轨道,多个弹幕在不同轨道上移动显示呈现出多行弹幕移动显示的效果。需要说明的是,上述轨道是在用户界面上不可见的虚拟轨道。
其中,目标轨道用于指示第一弹幕和第二弹幕的移动路线,第一弹幕和第二弹幕均在目标轨道中移动显示,并且,第一弹幕与第二弹幕相邻且位于第二弹幕之后,第一弹幕与第二弹幕的移动方向相同,第一弹幕移动的第一速度大于第二弹幕移动的第二速度。在一些实施例中,除了第一弹幕和第二弹幕之外,目标轨道中还移动显示有除其他弹幕,本公开对目标轨道中移动显示的弹幕的数量不加以限定。
在一些实施例中,第一弹幕的中心与第二弹幕的中心对齐,也就是说,同一轨道中移动显示的多个弹幕的中心是对齐的,那么,在同一轨道中的两个弹幕发生碰撞之后,弹幕的移动方向不会发生偏移,从而能够保证弹幕整齐有序地进行移动显示。在本公开实施例中,弹幕的质量模拟为均匀分布,弹幕的中心与弹幕的重心相同。若弹幕的质量不是均匀分布的,则将第一弹幕的重心与轨道中的其他弹幕的重心对齐。
在一些实施例中,为了保证同一轨道中的多个弹幕在移动显示时中心对齐,终端以每个弹幕的中心作为锚点,通过将多个弹幕的锚点均定位在同一个参考坐标上,来定位每个弹幕移动显示的起始位置。例如,若以水平方向为横轴,竖直方向为纵轴,为了保证同一轨道中多个弹幕的中心对齐,终端使每个弹幕的锚点对应的参考坐标的纵坐标均保持一致。以弹幕从轨道的右边缘开始进入,从轨道的左边缘移出为例,弹幕移动显示的起始位置为轨道的右边缘所在的位置,每个弹幕的锚点对应的参考坐标的横坐标与轨道的右边缘的横坐标的差值为弹幕的长度的一半,若横轴上的坐标从左到右依次变大,则每个弹幕的锚点对应的参考坐标的横坐标大于轨道的右边缘的横坐标。可选地,每个弹幕的锚点对应的参考坐标的纵坐标均与轨道右边缘的中点的纵坐标一致。
302、终端响应于第一弹幕的碰撞盒与第二弹幕的碰撞盒发生碰撞,确定第一弹幕碰撞后的第三速度以及第二弹幕碰撞后的第四速度,第四速度大于第三速度。
其中,碰撞盒是将弹幕模拟为物体的虚拟模型,是在用户界面上不可见的虚拟模型。可选地,碰撞盒的长度与对应的弹幕的长度相同,碰撞盒的宽度与对应的弹幕的宽度相同,也即是,第一弹幕的第一碰撞盒的长度与第一弹幕的长度相同,第一碰撞盒的宽度与第一弹幕的宽度相同,同理,第二弹幕的第二碰撞盒的长度与第二弹幕的长度相同,第二碰撞盒的宽度与第二弹幕的宽度相同。需要说明的是,碰撞盒始终与对应的弹幕保持位置一致,也即是,第一碰撞盒始终与第一弹幕保持位置一致,第二碰撞盒始终与第二弹幕保持位置一致。
终端通过不断检测第一碰撞盒与第二碰撞盒是否重合,来确定第一碰撞盒与第二碰撞盒是否发生碰撞。终端一旦检测到第一碰撞盒与第二碰撞盒重合,则确定第一碰撞盒与第二碰撞盒发生碰撞,也即是确定第一弹幕与第二弹幕发生碰撞;若终端未检测到第一碰撞盒与第二碰撞盒重合,则确定第一碰撞盒与第二碰撞盒未发生碰撞,也即是确定第一弹幕与第二弹幕未发生碰撞。
需要说明的是,若终端通过不断检测第一碰撞盒和第二碰撞盒是否重合,来确定第一碰撞盒与第二碰撞盒是否发生碰撞,则终端在弹幕显示区域中移动显示第一弹幕之前,还为第一弹幕创建第一碰撞盒;在弹幕显示区域中移动显示第二弹幕之前,还为第二弹幕创建第二碰撞盒。
本公开实施例通过赋予弹幕物理属性,将弹幕模拟为具有物理特性的物体,基于所模拟的物理特性,来模拟弹幕之间的碰撞效果,避免弹幕之间重叠显示。其中,弹幕的物理属性包括质量和速度,质量与弹幕的长度呈正相关。
在一些实施例中,终端响应于第一弹幕的碰撞盒与第二弹幕的碰撞盒发生碰撞,在第一弹幕碰撞前的第一速度的基础上,乘以第一调整比例,得到第二弹幕碰撞后的第四速度。其中,第一调整比例可灵活配置为大于1的数值,例如,第一调整比例配置为1.1、1.2或者1.3。相应的,在一些实施例中,第一弹幕碰撞前后速度不变,也即是,终端响应于第一弹幕的碰撞盒与第二弹幕的碰撞盒发生碰撞,将第一弹幕碰撞前的第一速度确定为第一弹幕碰撞后的第三速度。通过使第一弹幕碰撞前后的速度不变,能够避免由于第一弹幕减速而造成的弹幕堆积,提高弹幕显示区域的空间利用率。
在另一些实施例中,终端响应于第一弹幕的碰撞盒与第二弹幕的碰撞盒发生碰撞,也可以减小第一弹幕碰撞前的第一速度,得到第一弹幕碰撞后的第三速度。可选地,终端在第一弹幕碰撞前的第一速度的基础上,减少目标速度,得到第一弹幕碰撞后的第三速度。其中,目标速度可灵活配置,例如,目标速度为0.5厘米每秒、1厘米每秒或者1.5厘米每秒;或者,终端在第一弹幕碰撞前的第一速度的基础上,乘以第二调整比例,得到第一弹幕碰撞后的第三速度。其中,第二调整比例可灵活配置为小于1的正数,例如,第二调整比例配置为0.95、0.9或者0.8。
需要说明的是,在上述实施例中,第一弹幕的质量可以大于第二弹幕的质量;或者,第一弹幕的质量也可以小于第二弹幕的质量;或者,第一弹幕的质量也可以等于第二弹幕的质量,上述实施例对第一弹幕的质量和第二弹幕的质量之间的大小关系,不加以限定。
在一些实施例中,第一弹幕碰撞后的第三速度与第一弹幕的物理属性以及第二弹幕的物理属性相关,第二弹幕碰撞后的第四速度与第一弹幕的物理属性以及第二弹幕的物理属性相关。假设弹幕与弹幕之间的碰撞为弹性碰撞,弹幕碰撞过程中未损耗能量,终端根据动量守恒和动能守恒的原理,确定弹幕碰撞后的移动速度。相应的,终端确定第一弹幕碰撞后的第三速度以及第二弹幕碰撞后的第四速度的步骤包括:终端基于第一弹幕的质量和第一速度、第二弹幕的质量和第二速度,确定总动量和总动能,其中,总动量为第一弹幕的动量与第二弹幕的动量之和,总动能为第一弹幕的动能与第二弹幕的动能之和;终端基于总动量、总动能、第一弹幕的质量和第二弹幕的质量,确定第一弹幕碰撞后的第三速度以及第二弹幕碰撞后的第四速度。
其中,第一弹幕的动量为第一弹幕的质量和第一速度的乘积,第二弹幕的动量为第二弹幕的质量和第二速度的乘积。第一弹幕的动能是第一弹幕的质量乘以第一速度的平方,得到的乘积的二分之一,第二弹幕的动能是第二弹幕的质量乘以第二速度的平方,得到的乘积的二分之一。并且,碰撞发生前的总动量与碰撞发生后的总动量相等,碰撞发生前的总动能与碰撞发生后的总动能相等,因此,终端基于碰撞发生前的总动量、碰撞发生前的总动能、第一弹幕的质量和第二弹幕的质量,能够确定第一弹幕碰撞后的第三速度以及第二弹幕碰撞后的第四速度。也即是,终端通过以下公式一和公式二,确定弹幕碰撞后的移动速度。
其中,代表第一弹幕的质量;代表第二弹幕的质量;代表第一弹幕的第一速度;代表第二弹幕的第二速度;代表第一弹幕碰撞后的第三速度;代表第二弹幕碰撞后的第四速度;公式一表示动量守恒的原理;公式二表示动能守恒的原理。另外,、均为标量,且、的取值均为正数,、、、均为矢量,且的模、的模、的模、的模的取值均为正数,若将的方向作为正方向,则与方向相同的矢量的方向为正方向,与方向相反的矢量的方向为反方向。
终端将第一弹幕的质量代入公式一和公式二中的,将第一弹幕的第一速度代入公式一和公式二中的,将第二弹幕的质量代入公式一和公式二中的,将第二弹幕的第二速度代入公式一和公式二中的,进行计算,得到第一弹幕碰撞后的第三速度和第二弹幕碰撞后的第四速度。
在一些实施例中,为了使弹幕之间的碰撞模拟更加真实,假设弹幕与弹幕之间的碰撞为非弹性碰撞,弹幕碰撞的接触面是粗糙的,终端为弹幕确定的物理属性还包括摩擦力,该摩擦力为第一弹幕与第二弹幕碰撞过程中产生的摩擦力。在弹幕碰撞过程中,由于摩擦力的作用会产生能量损耗,终端可根据动量守恒和能量守恒的原理,确定弹幕碰撞后的移动速度。相应的,终端确定第一弹幕碰撞后的第三速度以及第二弹幕碰撞后的第四速度的步骤包括:终端基于第一弹幕的质量和第一速度、第二弹幕的质量和第二速度、作用于第一弹幕的摩擦力、作用于第二弹幕的摩擦力,确定第一弹幕碰撞后的第三速度以及第二弹幕碰撞后的第四速度。
终端基于第一弹幕的质量和第一速度、第二弹幕的质量和第二速度,确定碰撞前的总动能和碰撞前的总动量;基于碰撞发生过程中作用于第一弹幕的摩擦力和作用于第二弹幕的摩擦力,确定碰撞过程中损耗的能量;将碰撞前的总动能与碰撞过程中损耗的能量的差值,确定为碰撞后的总动能;根据动量守恒的原理,将碰撞前的总动量确定为碰撞后的总动量;基于碰撞后的总动能、碰撞后的总动量、第一弹幕的质量、第二弹幕的质量,确定第一弹幕碰撞后的第三速度以及第二弹幕碰撞后的第四速度。
在一些实施例中,为了使弹幕之间的碰撞模拟更加真实,假设弹幕与弹幕之间的碰撞为非弹性碰撞,弹幕具有一定的弹性,终端为弹幕确定的物理属性还包括弹性系数。在弹幕碰撞过程中,由于弹力的作用会产生能量损耗,终端可根据动量守恒和能量守恒的原理,确定弹幕碰撞后的移动速度。相应的,终端确定第一弹幕碰撞后的第三速度以及第二弹幕碰撞后的第四速度的步骤包括:终端基于第一弹幕的质量和第一速度、第二弹幕的质量和第二速度、第一弹幕的弹性系数、第二弹幕的弹性系数,确定第一弹幕碰撞后的第三速度以及第二弹幕碰撞后的第四速度。
终端基于第一弹幕的质量和第一速度、第二弹幕的质量和第二速度,确定碰撞前的总动能和碰撞前的总动量;基于第一弹幕的弹性系数和第二弹幕的弹性系数,确定碰撞过程中损耗的能量;将碰撞前的总动能与碰撞过程中损耗的能量的差值,确定为碰撞后的总动能;根据动量守恒的原理,将碰撞前的总动量确定为碰撞后的总动量;基于碰撞后的总动能、碰撞后的总动量、第一弹幕的质量、第二弹幕的质量,确定第一弹幕碰撞后的第三速度以及第二弹幕碰撞后的第四速度。
303、终端在目标轨道中,以第一弹幕碰撞后的第三速度移动显示第一弹幕,以第二弹幕碰撞后的第四速度移动显示第二弹幕。
终端以第三速度移动显示第一弹幕,以第四速度移动显示第二弹幕,其中,第四速度大于第三速度,从而呈现出了第一弹幕撞击第二弹幕,使第二弹幕加速移动的效果。
上述技术方案,在显示位置靠后的弹幕追上显示位置靠前的弹幕时,显示位置靠后的弹幕撞击显示位置靠前的弹幕,使显示位置靠前的弹幕加速移动,适当减少了弹幕占用弹幕显示区域的时间,减少了弹幕堆积情况的发生,能够在有限时间内显示更多的弹幕,使得弹幕的布局更加高效合理,弹幕显示区域内的空间得到了充分利用,从而提高了弹幕显示区域的空间利用率。并且,通过利用弹幕的物理特性进行弹幕显示,降低了弹幕显示的复杂度,使得弹幕显示方法更便于维护和扩展,提高了弹幕显示方法的可维护性和可扩展性。
需要说明的是,终端基于物理引擎的支持,为弹幕创建碰撞盒,对弹幕显示区域内的弹幕的碰撞盒进行碰撞检测,在发生碰撞时,确定碰撞后的移动速度,通过将碰撞效果作用于碰撞盒,使碰撞效果反映在所显示的弹幕上。由于物理引擎具有跨平台的特性,相应的,本公开实施例提供的弹幕显示方法也具有跨平台的特性,能够灵活部署在各个平台上。例如,本公开实施例提供的弹幕显示方法可以直接应用在Android(一种移动操作系统)、iOS(一种移动操作系统)和Web(World Wide Web,万维网)端等任一平台上。
上述技术方案,基于物理引擎的跨平台特性,能够实现弹幕显示功能在各个平台上的统一部署、维护和管理,提高了弹幕显示功能实现的统一性。并且,物理引擎的应用,为客户端进行复杂的特效显示提供了新的思路,具有十分重要的意义。并且,基于物理引擎的支持,终端主要利用GPU(Graphics Processing Unit,图像处理器)资源来进行弹幕的显示,有效提升了弹幕显示的性能,在实际测试过程中,处理性能较弱的终端,弹幕显示性能的提升尤为明显。
可选地,上述物理引擎是包含在游戏引擎中的,终端还能够基于游戏引擎的支持,在弹幕移动显示的过程中和弹幕碰撞的过程中,呈现丰富的动画效果,例如,终端基于游戏引擎的支持,在弹幕移动显示的过程中,为该弹幕增加弹跳或者转动的动画效果。通过游戏引擎的支持,使高级的弹幕功能和特效实现变的简单易行。
在一些实施例中,弹幕显示区域上还包括第三弹幕,第三弹幕的显示类型为静态显示类型,静态显示类型用于表示弹幕固定显示在弹幕显示区域的一个位置上。若移动显示类型的弹幕与静态显示类型的弹幕重合,则移动显示类型的弹幕继续按照重合前的移动速度移动显示,穿过静态显示类型的弹幕,也即是,终端响应于第一弹幕与第三弹幕重合,以第一速度移动显示第一弹幕,以及,在第三弹幕对应的显示位置上静止显示第三弹幕。
需要说明的是,在弹幕显示于弹幕显示区域中之前,终端还确定弹幕的物理属性,按照所确定的物理属性,使弹幕进入到弹幕显示区域中进行显示。下面结合图4,对终端确定第一弹幕的物理属性,按照所确定的物理属性,使第一弹幕进入到弹幕显示区域中的过程进行说明。
401、终端获取第一弹幕的显示类型。
显示类型用于指示弹幕的显示形式。可选地,显示类型为移动显示类型或者静态显示类型。其中,移动显示类型用于指示弹幕从弹幕显示区域的一侧开始,移动显示至弹幕显示区域的另一侧。静态显示类型用于指示弹幕固定显示在弹幕显示区域的一个位置上。
在一些实施例中,弹幕的显示类型为至少两个显示类型中的任一个,服务器向终端发送弹幕的同时,还向终端发送弹幕的显示类型,从而使终端获取到弹幕的显示类型。其中,弹幕的显示类型是由发布弹幕的用户指定的。用户在发布弹幕时,指定弹幕的显示类型,相应的,该用户对应的终端将弹幕和弹幕的显示类型同时上传至服务器;服务器将接收到的弹幕和显示类型进行对应存储,在接收到终端的弹幕获取请求时,将弹幕和对应的显示类型发送至终端。
上述技术方案,提供了弹幕的多种显示类型,每种显示类型的弹幕按照不同的显示形式进行显示,提高了弹幕显示的丰富性。
需要说明的是,若终端不支持用户指定弹幕的显示类型,每个弹幕的显示类型均为同一个预设的显示类型,则终端无需执行获取第一弹幕的显示类型的步骤。若预设的显示类型为移动显示类型,则终端执行以下确定第一弹幕的物理属性,按照所确定的物理属性,使第一弹幕进入到弹幕显示区域中的步骤。
402、终端响应于第一弹幕的显示类型为移动显示类型,在目标轨道的弹幕处理组件未被占用的情况下,调用该弹幕处理组件,确定第一弹幕的物理属性,该物理属性包括质量和速度。
终端将弹幕显示区域划分为多个轨道,一个轨道单次进入一个弹幕进行显示,一个轨道可同时容纳多个弹幕。其中,每个轨道对应至少一个弹幕处理组件。弹幕处理组件是用于对即将显示在其对应的轨道上的弹幕进行处理的组件,弹幕处理组件至少具有弹幕绘制功能和弹幕显示功能,若弹幕处理组件是用于处理移动显示类型的弹幕的组件,该弹幕处理组件还具有确定弹幕的物理属性的功能。
若某一轨道用于显示至少两种显示类型的弹幕,则该轨道对应至少两个弹幕处理组件,其中,一个弹幕处理组件用于处理一种显示类型的弹幕。例如,位于弹幕显示区域顶部的轨道既能够显示移动显示类型的弹幕,也能够显示静态显示类型的弹幕,该轨道对应两个弹幕处理组件,其中一个弹幕处理组件用于处理移动显示类型的弹幕,另一个弹幕处理组件用于处理静态显示类型的弹幕。终端可根据显示类型,调用对应的弹幕处理组件。例如,第一弹幕的显示类型为移动显示类型,则终端调用用于处理移动显示类型的弹幕的弹幕处理组件。
若某一轨道用于显示一种显示类型的弹幕,则该轨道对应一个弹幕处理组件。终端直接调用该轨道对应的弹幕处理组件即可。
需要说明的是,一个弹幕处理组件一次处理一个弹幕,若弹幕处理组件正在处理一个弹幕,则该弹幕处理组件已被占用。若弹幕处理组件当前未处理任一弹幕,则该弹幕处理组件未被占用,终端可调用该弹幕处理组件处理下一个弹幕。
需要说明的是,终端在确定目标轨道的弹幕处理组件是否已被占用之前,还从多个轨道中确定第一弹幕对应的目标轨道。在一些实施例中,每个轨道对应一个候选队列,终端将服务器发送的多个弹幕分别存储在了多个轨道对应的候选队列中,相应的,终端从多个轨道中确定第一弹幕对应的目标轨道的步骤包括:终端响应于任一轨道处于空闲状态,从该轨道对应的候选队列中获取第一弹幕,确定该轨道为第一弹幕对应的轨道。其中,轨道处于空闲状态是指当前没有正在进入该轨道的弹幕。在一些实施例中,多个轨道对应一个候选队列,终端将服务器发送的多条弹幕存储在了该候选队列中,相应的,终端从多个轨道中确定第一弹幕对应的目标轨道的步骤包括:终端响应于任一轨道处于空闲状态,从候选队列中获取第一弹幕,确定该轨道为第一弹幕对应的轨道。
对于移动显示类型的弹幕,终端赋予每个弹幕一个物理属性,来模拟弹幕的物理特性,从而将每个弹幕模拟成一个物体,便于后续模拟弹幕之间的碰撞效果。其中,弹幕的物理属性包括质量和速度,相应的,终端确定第一弹幕的物理属性的步骤包括以下确定第一弹幕的质量的步骤4021以及确定第一弹幕的速度的步骤4022。
4021、终端确定第一弹幕的质量。
其中,第一弹幕的质量与第一弹幕的长度呈正相关,第一弹幕的长度越长,质量越大。第一弹幕的长度是指第一弹幕在其文字排列方向上的长度,例如,参见图5,若第一弹幕501的文字排列方向为水平方向,则第一弹幕501的长度为在水平方向上的长度L1;参见图6,若第一弹幕601的文字排列方向为竖直方向,第一弹幕601的长度为在竖直方向上的长度L2。
在一些实施例中,第一弹幕的质量与第一弹幕的长度成正比。第一弹幕的质量与第一弹幕的长度的比值可灵活配置,例如,第一弹幕的质量与第一弹幕的长度的比值为1、1.5或者2,本公开对此不加以限定。另外,第一弹幕的质量与第一弹幕的长度的比值也可以称为第一弹幕的密度。需要说明的是,对于弹幕显示区域中显示的多个弹幕,每个弹幕的质量与长度的比值均相同,以保证弹幕质量模拟的真实性。
在一些实施例中,第一弹幕的质量与第一弹幕的显示面积呈正相关,终端确定第一弹幕的质量的步骤包括:终端获取第一弹幕的长度和第一弹幕的宽度;终端基于第一弹幕的长度和第一弹幕的宽度,确定第一弹幕的显示面积;终端基于第一弹幕的显示面积,确定第一弹幕的质量。
可选地,第一弹幕的显示面积是包含第一弹幕的全部内容的最小矩形的面积,终端将第一弹幕的长度和第一弹幕的宽度的乘积确定为第一弹幕的显示面积。可选地,第一弹幕的质量与第一弹幕的显示面积成正比,第一弹幕的质量与第一弹幕的显示面积的比值可灵活配置。例如,第一弹幕的质量与第一弹幕的显示面积的比值为1、1.5或者2,本公开对此不加以限定。另外,第一弹幕的质量与第一弹幕的显示面积的比值也可以称为第一弹幕的密度。需要说明的是,对于弹幕显示区域中显示的多个弹幕,每个弹幕的质量与显示面积的比值均相同。
4022、终端确定第一弹幕的速度。
第一弹幕是以终端所确定的速度进入到弹幕显示区域中进行移动显示的。该速度与第一弹幕的移动距离和显示时长有关,其中,第一弹幕的移动距离是指第一弹幕从开始进入弹幕显示区域到完全移出弹幕显示区域所移动的距离。显示时长是一个预先设定的固定值,表示弹幕理论上在不发生碰撞的情况下,从开始进入弹幕显示区域到完全移出弹幕显示区域的时长。显示时长可灵活配置,例如,显示时长配置为3秒或者5秒,本公开对此不加以限定。通过控制弹幕的显示时长,可避免弹幕在弹幕显示区域中停留过长时间,提高弹幕显示区域的空间利用率。
基于此,终端确定第一弹幕的速度的步骤包括:终端获取第一弹幕的移动距离,以及,获取第一弹幕对应的显示时长,该显示时长为第一弹幕从开始进入弹幕显示区域到完全移出弹幕显示区域的时长;终端将该移动距离与该显示时长的比值,确定为第一弹幕的速度。
在一些实施例中,弹幕在弹幕显示区域中沿着直线移动显示,终端获取第一弹幕的移动距离的步骤包括:终端获取第一弹幕的长度,以及,获取弹幕显示区域的跨度;终端将第一弹幕的长度与弹幕显示区域的跨度的和值,确定为第一弹幕的移动距离。若第一弹幕沿水平方向移动显示,则弹幕显示区域的跨度为弹幕显示区域沿水平方向的跨度。若第一弹幕沿竖直方向移动显示,则弹幕显示区域的跨度为弹幕显示区域沿竖直方向的跨度。
在一些实施例中,弹幕在弹幕显示区域中沿着任一路线移动显示,例如,弹幕沿着曲线或者折线移动显示,第一弹幕的移动距离为弹幕移动所沿路线的总长度。
在上述技术方案中,长度越长的弹幕,质量越大,初始确定的速度也越快,从而长度较长的弹幕会追上长度较短的弹幕,与长度较短的弹幕发生碰撞,使长度较短的弹幕加速移动,呈现出了更加生动真实的碰撞效果,并且,长度较长的弹幕无需减慢速度来避免与移动速度较慢的弹幕发生碰撞,也即是,无需通过持续监控弹幕的移动距离的方式,来调整不会使弹幕发生碰撞的移动速度,降低了弹幕显示的复杂度。
403、终端调用该弹幕处理组件,使第一弹幕以第一弹幕的物理属性包括的速度进入目标轨道。
终端调用弹幕处理组件,使第一弹幕以第一弹幕的物理属性包括的速度逐渐进入到目标轨道内,例如,第一弹幕逐渐进入到目标轨道内的过程如图7所示。
404、终端响应于第一弹幕完全显示在目标轨道内,释放该弹幕处理组件。
终端在第一弹幕完全显示在第一弹幕对应的目标轨道内之后,继续以第一弹幕的物理属性包括的速度移动显示第一弹幕即可,无需再占用该弹幕处理组件对第一弹幕进行处理,因此,终端在第一弹幕完全显示在第一弹幕对应的轨道内时,释放该弹幕处理组件。
上述技术方案,在第一弹幕完全显示在轨道内时,就释放处理第一弹幕的弹幕处理组件,减少了对弹幕处理组件的不必要占用,从而被释放的弹幕处理组件也能够及时处理下一个移动显示类型的弹幕,提高了对弹幕处理组件的利用率。
需要说明的是,上述实施例是以终端在第一弹幕显示于弹幕显示区域中之前,确定第一弹幕的物理属性,使第一弹幕按照所确定的物理属性,进入到弹幕显示区域中进行显示为例进行说明的,终端在第二弹幕显示于弹幕显示区域中之前,还确定第二弹幕的物理属性,使第二弹幕按照所确定的物理属性,进入到弹幕显示区域中进行移动显示,终端确定第二弹幕的物理属性,使第二弹幕按照所确定的物理属性,进入到弹幕显示区域中进行移动显示的过程与终端确定第一弹幕的物理属性,使第一弹幕按照所确定的物理属性,进入到弹幕显示区域中进行移动显示的过程同理,在此不再赘述。
需要说明的是,弹幕显示区域上还包括显示类型为静态显示类型的第三弹幕,对于静态显示类型的弹幕,用户在发布弹幕时,还可以指定弹幕的显示位置,例如,显示位置为顶部中央或者底部中央,相应的,该用户对应的终端还将弹幕的显示位置与弹幕一同上传至服务器;服务器将接收到的显示位置与弹幕进行对应存储,在接收到终端的弹幕获取请求时,将弹幕和对应的显示位置发送至终端,从而使终端获取到静态显示类型的弹幕对应的显示位置。例如,终端获取到第一弹幕对应的显示位置为顶部中央,则将第一弹幕显示在弹幕显示区域的顶部的中间位置。
基于此,终端将第三弹幕显示在弹幕显示区域中的步骤包括:终端在第三弹幕对应的轨道的弹幕处理组件未被占用的情况下,调用该弹幕处理组件,将第三弹幕显示在该轨道中的第三弹幕对应的显示位置上。
在一些实施例中,终端根据第三弹幕对应的显示位置和多个轨道的弹幕处理组件的占用情况,确定第三弹幕对应的轨道。例如,终端获取到第三弹幕对应的显示位置为顶部中央,从未被占用的弹幕处理组件对应的轨道中确定位于最顶部的轨道。在确定第三弹幕对应的轨道之后,终端调用该轨道对应的弹幕处理组件,将第三弹幕显示在该轨道的第三弹幕对应的显示位置上。例如,终端获取到的第一弹幕对应的显示位置为顶部中央,终端确定位于最顶部的轨道之后,将第一弹幕显示在该轨道的中间位置。
需要说明的是,静态显示类型的弹幕对应有参考显示时长,终端按照参考显示时长,对静态显示类型的弹幕进行显示。其中,静态显示类型的弹幕对应的参考显示时长可灵活配置,例如,参考显示时长为3秒或者5秒,本公开对此不加以限定。
需要说明的是,为了避免静态显示类型的弹幕重叠显示,终端在第三弹幕结束显示之后,才释放弹幕处理组件,也即是,终端响应于第三弹幕结束显示,释放该弹幕处理组件。在一些实施例中,终端按照参考显示时长显示静态显示类型的弹幕,相应的,第三弹幕结束显示是指第三弹幕实际显示的时长与参考显示时长相等。终端响应于第三弹幕开始显示,会开始记录第三弹幕实际显示的时长;响应于第三弹幕实际显示的时长与参考显示时长相等,结束显示第三弹幕,并释放弹幕处理组件。例如,第三弹幕对应的参考显示时长为3秒,则终端在第三弹幕实际的显示时长达到3秒时,结束显示第三弹幕,并释放弹幕处理组件。
上述技术方案,为每个轨道配置了至少一个弹幕处理组件,由弹幕处理组件依次对即将显示在轨道上的弹幕进行处理,使得弹幕的处理逻辑更加清晰,便于维护和扩展,提高了弹幕处理功能的可扩展性和可维护性。
上述所有可选技术方案,可以采用任意结合形成本公开的可选实施例,在此不再一一赘述。
图8是根据一示例性实施例示出的一种弹幕显示装置的框图。参见图8,该弹幕显示装置包括:
第一弹幕显示单元801,被配置为执行在弹幕显示区域中,以第一速度移动显示第一弹幕,以及,以第二速度移动显示第二弹幕,第一弹幕与第二弹幕相邻且位于第二弹幕之后,第一速度大于第二速度;
第二弹幕显示单元802,被配置为执行响应于第一弹幕与第二弹幕发生碰撞,以第三速度移动显示第一弹幕,以及,以第四速度移动显示第二弹幕,第四速度大于第三速度。
在本公开实施例中,弹幕显示区域中包括移动显示的两个弹幕,显示位置靠后的弹幕移动的速度比显示位置靠前的弹幕移动的速度快,从而显示位置靠后的弹幕会追上显示位置靠前的弹幕,与显示位置靠前的弹幕发生碰撞;两个弹幕发生碰撞之后,显示位置靠前的弹幕移动速度加快,大于显示位置靠后的弹幕的速度,从而模拟出了碰撞效果,拉开了发生碰撞的两个弹幕之间的距离,避免了弹幕重叠显示。
在一些实施例中,第三速度与第一弹幕的物理属性以及第二弹幕的物理属性相关,第四速度与第一弹幕的物理属性以及第二弹幕的物理属性相关,物理属性用于模拟弹幕的物理特性,物理属性包括质量和速度,质量与弹幕的长度呈正相关。
在一些实施例中,第一弹幕显示单元801,被配置为执行:
在弹幕显示区域的目标轨道中,以第一速度移动显示第一弹幕,以及,以第二速度移动显示第二弹幕;
其中,目标轨道用于指示第一弹幕和第二弹幕的移动路线,第一弹幕的中心与第二弹幕的中心对齐。
在一些实施例中,第一弹幕显示单元801,被配置为执行:
响应于第一弹幕和第二弹幕的显示类型均为移动显示类型,在弹幕显示区域中,以第一速度移动显示第一弹幕,以及,以第二速度移动显示第二弹幕。
在一些实施例中,弹幕显示区域上还包括第三弹幕,第三弹幕的显示类型为静态显示类型;该弹幕显示装置还包括:
第三弹幕显示单元,被配置为执行响应于第一弹幕与第三弹幕重合,以第一速度移动显示第一弹幕,以及,在第三弹幕对应的显示位置上静止显示第三弹幕。
在一些实施例中,该弹幕显示装置还包括:
第一物理属性确定单元,被配置为执行确定第一弹幕的物理属性;
第二物理属性确定单元,被配置为执行确定第二弹幕的物理属性;
速度确定单元,被配置为执行基于第一速度和第一弹幕的质量、第二速度和第二弹幕的质量,确定第一弹幕碰撞后的第三速度以及第二弹幕碰撞后的第四速度。
在一些实施例中,速度确定单元,被配置为执行:
基于第一速度和第一弹幕的质量、第二速度和第二弹幕的质量,确定总动量和总动能,总动量为第一弹幕的动量与第二弹幕的动量之和,总动能为第一弹幕的动能与第二弹幕的动能之和;
基于总动量、总动能、第一弹幕的质量和第二弹幕的质量,确定第三速度和第四速度。
在一些实施例中,物理属性还包括摩擦力,摩擦力为第一弹幕与第二弹幕碰撞过程中产生的摩擦力;
速度确定单元,被配置为执行:
基于第一速度和第一弹幕的质量、第二速度和第二弹幕的质量、作用于第一弹幕的摩擦力、作用于第二弹幕的摩擦力,确定第三速度和第四速度。
在一些实施例中,物理属性还包括弹性系数;
速度确定单元,被配置为执行:
基于第一速度和第一弹幕的质量、第二速度和第二弹幕的质量、第一弹幕的弹性系数、第二弹幕的弹性系数,确定第三速度和第四速度。
在一些实施例中,该弹幕显示装置还包括:
碰撞盒创建单元,被配置为执行为第一弹幕创建第一碰撞盒,第一碰撞盒是将第一弹幕模拟为物体的虚拟模型;
碰撞盒创建单元,还被配置为执行为第二弹幕创建第二碰撞盒;
其中,第一弹幕与第二弹幕发生碰撞是指第一碰撞盒与第二碰撞盒发生碰撞。
在一些实施例中,第一物理属性确定单元,被配置为执行:
在目标轨道的弹幕处理组件未被占用的情况下,调用弹幕处理组件,确定第一弹幕的物理属性,目标轨道用于指示第一弹幕在弹幕显示区域中的移动路线。
在一些实施例中,该弹幕显示装置还包括:
组件调用单元,被配置为执行调用弹幕处理组件,使第一弹幕以第一弹幕的物理属性包括的速度进入目标轨道;
第一组件释放单元,被配置为执行响应于第一弹幕完全显示在目标轨道内,释放弹幕处理组件。
在一些实施例中,弹幕显示区域上还包括第三弹幕,第三弹幕的显示类型为静态显示类型;该弹幕显示装置还包括:
第四弹幕显示单元,被配置为执行在第三弹幕对应的轨道的弹幕处理组件未被占用的情况下,调用弹幕处理组件,将第三弹幕显示在轨道中的第三弹幕对应的显示位置上。
在一些实施例中,该弹幕显示装置还包括:
第二组件释放单元,被配置为执行响应于第三弹幕结束显示,释放弹幕处理组件。
在一些实施例中,第一物理属性确定单元,包括:
尺寸获取子单元,被配置为执行获取第一弹幕的长度和第一弹幕的宽度;
面积确定子单元,被配置为执行基于第一弹幕的长度和第一弹幕的宽度,确定第一弹幕的显示面积;
质量确定子单元,被配置为执行基于第一弹幕的显示面积,确定第一弹幕的质量,质量与第一弹幕的显示面积呈正相关。
在一些实施例中,第一物理属性确定单元,包括:
移动距离获取子单元,被配置为执行获取第一弹幕的移动距离;
显示时长获取子单元,被配置为执行获取第一弹幕对应的显示时长,显示时长为第一弹幕从开始进入弹幕显示区域到完全移出弹幕显示区域的时长;
速度确定子单元,被配置为执行将移动距离与显示时长的比值,确定为第一弹幕的速度。
在一些实施例中,移动距离获取子单元,被配置为执行:
获取第一弹幕的长度,以及,获取弹幕显示区域的跨度;
将第一弹幕的长度与弹幕显示区域的跨度的和值,确定为第一弹幕的移动距离。
关于上述实施例中的装置,其中各个单元执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
图9是根据一示例性实施例示出的一种终端的框图。该终端900可以是智能手机、平板电脑、笔记本电脑、台式电脑或者智能电视。终端900还可能被称为用户设备、便携式终端、膝上型终端、台式终端等其他名称。
通常,终端900包括有:处理器901和存储器902。
处理器901可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器901可以采用DSP(Digital Signal Processing,数字信号处理)、FPGA(Field-Programmable Gate Array,现场可编程门阵列)、PLA(Programmable Logic Array,可编程逻辑阵列)中的至少一种硬件形式来实现。处理器901也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称CPU(Central ProcessingUnit,中央处理器);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器901可以集成有GPU(Graphics Processing Unit,图像处理器),GPU用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器901还可以包括AI(Artificial Intelligence,人工智能)处理器,该AI处理器用于处理有关机器学习的计算操作。
存储器902可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器902还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。在一些实施例中,存储器902中的非暂态的计算机可读存储介质用于存储至少一条指令,该至少一条指令用于被处理器901所执行以实现本公开中方法实施例提供的弹幕显示方法。
在一些实施例中,终端900还可选包括有:外围设备接口903和至少一个外围设备。处理器901、存储器902和外围设备接口903之间可以通过总线或信号线相连。各个外围设备可以通过总线、信号线或电路板与外围设备接口903相连。具体地,外围设备包括:射频电路904、显示屏905、摄像头组件906、音频电路907、定位组件908和电源909中的至少一种。
外围设备接口903可被用于将I/O(Input /Output,输入/输出)相关的至少一个外围设备连接到处理器901和存储器902。在一些实施例中,处理器901、存储器902和外围设备接口903被集成在同一芯片或电路板上;在一些其他实施例中,处理器901、存储器902和外围设备接口903中的任意一个或两个可以在单独的芯片或电路板上实现,本公开实施例对此不加以限定。
射频电路904用于接收和发射RF(Radio Frequency,射频)信号,也称电磁信号。射频电路904通过电磁信号与通信网络以及其他通信设备进行通信。射频电路904将电信号转换为电磁信号进行发送,或者,将接收到的电磁信号转换为电信号。可选地,射频电路904包括:天线系统、RF收发器、一个或多个放大器、调谐器、振荡器、数字信号处理器、编解码芯片组、用户身份模块卡等等。射频电路904可以通过至少一种无线通信协议来与其它终端进行通信。该无线通信协议包括但不限于:万维网、城域网、内联网、各代移动通信网络(2G、3G、4G及5G)、无线局域网和/或WiFi(Wireless Fidelity,无线保真)网络。在一些实施例中,射频电路904还可以包括NFC(Near Field Communication,近距离无线通信)有关的电路,本公开对此不加以限定。
显示屏905用于显示UI(User Interface,用户界面)。该UI可以包括图形、文本、图标、视频及其它们的任意组合。当显示屏905是触摸显示屏时,显示屏905还具有采集在显示屏905的表面或表面上方的触摸信号的能力。该触摸信号可以作为控制信号输入至处理器901进行处理。此时,显示屏905还可以用于提供虚拟按钮和/或虚拟键盘,也称软按钮和/或软键盘。在一些实施例中,显示屏905可以为一个,设置在终端900的前面板;在另一些实施例中,显示屏905可以为至少两个,分别设置在终端900的不同表面或呈折叠设计;在另一些实施例中,显示屏905可以是柔性显示屏,设置在终端900的弯曲表面上或折叠面上。甚至,显示屏905还可以设置成非矩形的不规则图形,也即异形屏。显示屏905可以采用LCD(Liquid Crystal Display,液晶显示屏)、OLED(Organic Light-Emitting Diode,有机发光二极管)等材质制备。
摄像头组件906用于采集图像或视频。可选地,摄像头组件906包括前置摄像头和后置摄像头。通常,前置摄像头设置在终端900的前面板,后置摄像头设置在终端900的背面。在一些实施例中,后置摄像头为至少两个,分别为主摄像头、景深摄像头、广角摄像头、长焦摄像头中的任意一种,以实现主摄像头和景深摄像头融合实现背景虚化功能、主摄像头和广角摄像头融合实现全景拍摄以及VR(Virtual Reality,虚拟现实)拍摄功能或者其它融合拍摄功能。在一些实施例中,摄像头组件906还可以包括闪光灯。闪光灯可以是单色温闪光灯,也可以是双色温闪光灯。双色温闪光灯是指暖光闪光灯和冷光闪光灯的组合,可以用于不同色温下的光线补偿。
音频电路907可以包括麦克风和扬声器。麦克风用于采集用户及环境的声波,并将声波转换为电信号输入至处理器901进行处理,或者输入至射频电路904以实现语音通信。出于立体声采集或降噪的目的,麦克风可以为多个,分别设置在终端900的不同部位。麦克风还可以是阵列麦克风或全向采集型麦克风。扬声器则用于将来自处理器901或射频电路904的电信号转换为声波。扬声器可以是传统的薄膜扬声器,也可以是压电陶瓷扬声器。当扬声器是压电陶瓷扬声器时,不仅可以将电信号转换为人类可听见的声波,也可以将电信号转换为人类听不见的声波以进行测距等用途。在一些实施例中,音频电路907还可以包括耳机插孔。
定位组件908用于定位终端900的当前地理位置,以实现导航或LBS(LocationBased Service,基于位置的服务)。定位组件908可以是基于美国的GPS(GlobalPositioning System,全球定位系统)、中国的北斗系统或俄罗斯的伽利略系统的定位组件。
电源909用于为终端900中的各个组件进行供电。电源909可以是交流电、直流电、一次性电池或可充电电池。当电源909包括可充电电池时,该可充电电池可以是有线充电电池或无线充电电池。有线充电电池是通过有线线路充电的电池,无线充电电池是通过无线线圈充电的电池。该可充电电池还可以用于支持快充技术。
在一些实施例中,终端900还包括有一个或多个传感器910。该一个或多个传感器910包括但不限于:加速度传感器911、陀螺仪传感器912、压力传感器913、指纹传感器914、光学传感器915以及接近传感器916。
本领域技术人员可以理解,图9中示出的结构并不构成对终端900的限定,可以包括比图示更多或更少的组件,或者组合某些组件,或者采用不同的组件布置。
在示例性实施例中,还提供了一种包括指令的计算机可读存储介质,例如包括指令的存储器902,上述指令可由终端900的处理器901执行以完成上述弹幕显示方法。可选地,计算机可读存储介质可以是ROM(Read-Only Memory,只读存储器)、RAM(Random AccessMemory,随机存取存储器)、CD-ROM(Compact Disc Read-Only Memory,只读光盘)、磁带、软盘和光数据存储设备等。
在示例性实施例中,还提供了一种计算机程序产品,该计算机程序产品包括计算机程序,该计算机程序被处理器执行时实现上述各个方法实施例中的弹幕显示方法。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。
Claims (36)
1.一种弹幕显示方法,其特征在于,所述弹幕显示方法包括:
在弹幕显示区域中,以第一速度移动显示第一弹幕,以及,以第二速度移动显示第二弹幕,所述第一弹幕与所述第二弹幕相邻且位于所述第二弹幕之后,所述第一速度大于所述第二速度;
响应于所述第一弹幕与所述第二弹幕发生碰撞,以第三速度移动显示所述第一弹幕,以及,以第四速度移动显示所述第二弹幕,所述第四速度大于所述第三速度。
2.根据权利要求1所述的弹幕显示方法,其特征在于,所述第三速度与所述第一弹幕的物理属性以及所述第二弹幕的物理属性相关,所述第四速度与所述第一弹幕的物理属性以及所述第二弹幕的物理属性相关,所述物理属性用于模拟弹幕的物理特性,所述物理属性包括质量和速度,所述质量与弹幕的长度呈正相关。
3.根据权利要求1所述的弹幕显示方法,其特征在于,所述在弹幕显示区域中,以第一速度移动显示第一弹幕,以及,以第二速度移动显示第二弹幕,包括:
在所述弹幕显示区域的目标轨道中,以所述第一速度移动显示所述第一弹幕,以及,以所述第二速度移动显示所述第二弹幕;
其中,所述目标轨道用于指示所述第一弹幕和所述第二弹幕的移动路线,所述第一弹幕的中心与所述第二弹幕的中心对齐。
4.根据权利要求1所述的弹幕显示方法,其特征在于,所述在弹幕显示区域中,以第一速度移动显示第一弹幕,以及,以第二速度移动显示第二弹幕,包括:
响应于所述第一弹幕和所述第二弹幕的显示类型均为移动显示类型,在所述弹幕显示区域中,以所述第一速度移动显示所述第一弹幕,以及,以所述第二速度移动显示所述第二弹幕。
5.根据权利要求1所述的弹幕显示方法,其特征在于,所述弹幕显示区域上还包括第三弹幕,所述第三弹幕的显示类型为静态显示类型;所述弹幕显示方法还包括:
响应于所述第一弹幕与所述第三弹幕重合,以所述第一速度移动显示所述第一弹幕,以及,在所述第三弹幕对应的显示位置上静止显示所述第三弹幕。
6.根据权利要求2所述的弹幕显示方法,其特征在于,所述弹幕显示方法还包括:
确定所述第一弹幕的物理属性,以及,确定所述第二弹幕的物理属性;
基于所述第一速度和所述第一弹幕的质量、所述第二速度和所述第二弹幕的质量,确定所述第一弹幕碰撞后的所述第三速度以及所述第二弹幕碰撞后的所述第四速度。
7.根据权利要求6所述的弹幕显示方法,其特征在于,所述基于所述第一速度和所述第一弹幕的质量、所述第二速度和所述第二弹幕的质量,确定所述第一弹幕碰撞后的所述第三速度以及所述第二弹幕碰撞后的所述第四速度,包括:
基于所述第一速度和所述第一弹幕的质量、所述第二速度和所述第二弹幕的质量,确定总动量和总动能,所述总动量为所述第一弹幕的动量与所述第二弹幕的动量之和,所述总动能为所述第一弹幕的动能与所述第二弹幕的动能之和;
基于所述总动量、所述总动能、所述第一弹幕的质量和所述第二弹幕的质量,确定所述第三速度和所述第四速度。
8.根据权利要求6所述的弹幕显示方法,其特征在于,所述物理属性还包括摩擦力,所述摩擦力为所述第一弹幕与所述第二弹幕碰撞过程中产生的摩擦力;
所述基于所述第一速度和所述第一弹幕的质量、所述第二速度和所述第二弹幕的质量,确定所述第一弹幕碰撞后的所述第三速度以及所述第二弹幕碰撞后的所述第四速度,包括:
基于所述第一速度和所述第一弹幕的质量、所述第二速度和所述第二弹幕的质量、作用于所述第一弹幕的摩擦力、作用于所述第二弹幕的摩擦力,确定所述第三速度和所述第四速度。
9.根据权利要求6所述的弹幕显示方法,其特征在于,所述物理属性还包括弹性系数;
所述基于所述第一速度和所述第一弹幕的质量、所述第二速度和所述第二弹幕的质量,确定所述第一弹幕碰撞后的所述第三速度以及所述第二弹幕碰撞后的所述第四速度,包括:
基于所述第一速度和所述第一弹幕的质量、所述第二速度和所述第二弹幕的质量、所述第一弹幕的弹性系数、所述第二弹幕的弹性系数,确定所述第三速度和所述第四速度。
10.根据权利要求1至5中任一权利要求所述的弹幕显示方法,其特征在于,所述弹幕显示方法还包括:
为所述第一弹幕创建第一碰撞盒,所述第一碰撞盒是将所述第一弹幕模拟为物体的虚拟模型;
为所述第二弹幕创建第二碰撞盒;
其中,所述第一弹幕与所述第二弹幕发生碰撞是指所述第一碰撞盒与所述第二碰撞盒发生碰撞。
11.根据权利要求6所述的弹幕显示方法,其特征在于,所述确定所述第一弹幕的物理属性,包括:
在目标轨道的弹幕处理组件未被占用的情况下,调用所述弹幕处理组件,确定所述第一弹幕的物理属性,所述目标轨道用于指示所述第一弹幕在所述弹幕显示区域中的移动路线。
12.根据权利要求11所述的弹幕显示方法,其特征在于,所述弹幕显示方法还包括:
调用所述弹幕处理组件,使所述第一弹幕以所述第一弹幕的物理属性包括的速度进入所述目标轨道;
响应于所述第一弹幕完全显示在所述目标轨道内,释放所述弹幕处理组件。
13.根据权利要求1所述的弹幕显示方法,其特征在于,所述弹幕显示区域上还包括第三弹幕,所述第三弹幕的显示类型为静态显示类型;所述弹幕显示方法还包括:
在所述第三弹幕对应的轨道的弹幕处理组件未被占用的情况下,调用所述弹幕处理组件,将所述第三弹幕显示在所述轨道中的所述第三弹幕对应的显示位置上。
14.根据权利要求13所述的弹幕显示方法,其特征在于,所述弹幕显示方法还包括:
响应于所述第三弹幕结束显示,释放所述弹幕处理组件。
15.根据权利要求6所述的弹幕显示方法,其特征在于,所述确定所述第一弹幕的物理属性,包括:
获取所述第一弹幕的长度和所述第一弹幕的宽度;
基于所述第一弹幕的长度和所述第一弹幕的宽度,确定所述第一弹幕的显示面积;
基于所述第一弹幕的显示面积,确定所述第一弹幕的质量,所述质量与所述第一弹幕的显示面积呈正相关。
16.根据权利要求6所述的弹幕显示方法,其特征在于,所述确定所述第一弹幕的物理属性,包括:
获取所述第一弹幕的移动距离,以及,获取所述第一弹幕对应的显示时长,所述显示时长为所述第一弹幕从开始进入所述弹幕显示区域到完全移出所述弹幕显示区域的时长;
将所述移动距离与所述显示时长的比值,确定为所述第一弹幕的速度。
17.根据权利要求16所述的弹幕显示方法,其特征在于,所述获取所述第一弹幕的移动距离,包括:
获取所述第一弹幕的长度,以及,获取所述弹幕显示区域的跨度;
将所述第一弹幕的长度与所述弹幕显示区域的跨度的和值,确定为所述第一弹幕的移动距离。
18.一种弹幕显示装置,其特征在于,所述弹幕显示装置包括:
第一弹幕显示单元,被配置为执行在弹幕显示区域中,以第一速度移动显示第一弹幕,以及,以第二速度移动显示第二弹幕,所述第一弹幕与所述第二弹幕相邻且位于所述第二弹幕之后,所述第一速度大于所述第二速度;
第二弹幕显示单元,被配置为执行响应于所述第一弹幕与所述第二弹幕发生碰撞,以第三速度移动显示所述第一弹幕,以及,以第四速度移动显示所述第二弹幕,所述第四速度大于所述第三速度。
19.根据权利要求18所述的弹幕显示装置,其特征在于,所述第三速度与所述第一弹幕的物理属性以及所述第二弹幕的物理属性相关,所述第四速度与所述第一弹幕的物理属性以及所述第二弹幕的物理属性相关,所述物理属性用于模拟弹幕的物理特性,所述物理属性包括质量和速度,所述质量与弹幕的长度呈正相关。
20.根据权利要求18所述的弹幕显示装置,其特征在于,所述第一弹幕显示单元,被配置为执行:
在所述弹幕显示区域的目标轨道中,以所述第一速度移动显示所述第一弹幕,以及,以所述第二速度移动显示所述第二弹幕;
其中,所述目标轨道用于指示所述第一弹幕和所述第二弹幕的移动路线,所述第一弹幕的中心与所述第二弹幕的中心对齐。
21.根据权利要求18所述的弹幕显示装置,其特征在于,所述第一弹幕显示单元,被配置为执行:
响应于所述第一弹幕和所述第二弹幕的显示类型均为移动显示类型,在所述弹幕显示区域中,以所述第一速度移动显示所述第一弹幕,以及,以所述第二速度移动显示所述第二弹幕。
22.根据权利要求18所述的弹幕显示装置,其特征在于,所述弹幕显示区域上还包括第三弹幕,所述第三弹幕的显示类型为静态显示类型;所述弹幕显示装置还包括:
第三弹幕显示单元,被配置为执行响应于所述第一弹幕与所述第三弹幕重合,以所述第一速度移动显示所述第一弹幕,以及,在所述第三弹幕对应的显示位置上静止显示所述第三弹幕。
23.根据权利要求19所述的弹幕显示装置,其特征在于,所述弹幕显示装置还包括:
第一物理属性确定单元,被配置为执行确定所述第一弹幕的物理属性;
第二物理属性确定单元,被配置为执行确定所述第二弹幕的物理属性;
速度确定单元,被配置为执行基于所述第一速度和所述第一弹幕的质量、所述第二速度和所述第二弹幕的质量,确定所述第一弹幕碰撞后的所述第三速度以及所述第二弹幕碰撞后的所述第四速度。
24.根据权利要求23所述的弹幕显示装置,其特征在于,所述速度确定单元,被配置为执行:
基于所述第一速度和所述第一弹幕的质量、所述第二速度和所述第二弹幕的质量,确定总动量和总动能,所述总动量为所述第一弹幕的动量与所述第二弹幕的动量之和,所述总动能为所述第一弹幕的动能与所述第二弹幕的动能之和;
基于所述总动量、所述总动能、所述第一弹幕的质量和所述第二弹幕的质量,确定所述第三速度和所述第四速度。
25.根据权利要求23所述的弹幕显示装置,其特征在于,所述物理属性还包括摩擦力,所述摩擦力为所述第一弹幕与所述第二弹幕碰撞过程中产生的摩擦力;
所述速度确定单元,被配置为执行:
基于所述第一速度和所述第一弹幕的质量、所述第二速度和所述第二弹幕的质量、作用于所述第一弹幕的摩擦力、作用于所述第二弹幕的摩擦力,确定所述第三速度和所述第四速度。
26.根据权利要求23所述的弹幕显示装置,其特征在于,所述物理属性还包括弹性系数;
所述速度确定单元,被配置为执行:
基于所述第一速度和所述第一弹幕的质量、所述第二速度和所述第二弹幕的质量、所述第一弹幕的弹性系数、所述第二弹幕的弹性系数,确定所述第三速度和所述第四速度。
27.根据权利要求18至22中任一权利要求所述的弹幕显示装置,其特征在于,所述弹幕显示装置还包括:
碰撞盒创建单元,被配置为执行为所述第一弹幕创建第一碰撞盒,所述第一碰撞盒是将所述第一弹幕模拟为物体的虚拟模型;
所述碰撞盒创建单元,还被配置为执行为所述第二弹幕创建第二碰撞盒;
其中,所述第一弹幕与所述第二弹幕发生碰撞是指所述第一碰撞盒与所述第二碰撞盒发生碰撞。
28.根据权利要求23所述的弹幕显示装置,其特征在于,所述第一物理属性确定单元,被配置为执行:
在目标轨道的弹幕处理组件未被占用的情况下,调用所述弹幕处理组件,确定所述第一弹幕的物理属性,所述目标轨道用于指示所述第一弹幕在所述弹幕显示区域中的移动路线。
29.根据权利要求28所述的弹幕显示装置,其特征在于,所述弹幕显示装置还包括:
组件调用单元,被配置为执行调用所述弹幕处理组件,使所述第一弹幕以所述第一弹幕的物理属性包括的速度进入所述目标轨道;
第一组件释放单元,被配置为执行响应于所述第一弹幕完全显示在所述目标轨道内,释放所述弹幕处理组件。
30.根据权利要求18所述的弹幕显示装置,其特征在于,所述弹幕显示区域上还包括第三弹幕,所述第三弹幕的显示类型为静态显示类型;所述弹幕显示装置还包括:
第四弹幕显示单元,被配置为执行在所述第三弹幕对应的轨道的弹幕处理组件未被占用的情况下,调用所述弹幕处理组件,将所述第三弹幕显示在所述轨道中的所述第三弹幕对应的显示位置上。
31.根据权利要求30所述的弹幕显示装置,其特征在于,所述弹幕显示装置还包括:
第二组件释放单元,被配置为执行响应于所述第三弹幕结束显示,释放所述弹幕处理组件。
32.根据权利要求23所述的弹幕显示装置,其特征在于,所述第一物理属性确定单元,包括:
尺寸获取子单元,被配置为执行获取所述第一弹幕的长度和所述第一弹幕的宽度;
面积确定子单元,被配置为执行基于所述第一弹幕的长度和所述第一弹幕的宽度,确定所述第一弹幕的显示面积;
质量确定子单元,被配置为执行基于所述第一弹幕的显示面积,确定所述第一弹幕的质量,所述质量与所述第一弹幕的显示面积呈正相关。
33.根据权利要求23所述的弹幕显示装置,其特征在于,所述第一物理属性确定单元,包括:
移动距离获取子单元,被配置为执行获取所述第一弹幕的移动距离;
显示时长获取子单元,被配置为执行获取所述第一弹幕对应的显示时长,所述显示时长为所述第一弹幕从开始进入所述弹幕显示区域到完全移出所述弹幕显示区域的时长;
速度确定子单元,被配置为执行将所述移动距离与所述显示时长的比值,确定为所述第一弹幕的速度。
34.根据权利要求33所述的弹幕显示装置,其特征在于,所述移动距离获取子单元,被配置为执行:
获取所述第一弹幕的长度,以及,获取所述弹幕显示区域的跨度;
将所述第一弹幕的长度与所述弹幕显示区域的跨度的和值,确定为所述第一弹幕的移动距离。
35.一种终端,其特征在于,所述终端包括:
一个或多个处理器;
用于存储所述处理器可执行指令的存储器;
其中,所述处理器被配置为执行所述指令,以实现如权利要求1至17中任一项所述的弹幕显示方法。
36.一种计算机可读存储介质,其特征在于,当所述计算机可读存储介质中的指令由终端的处理器执行时,使得终端能够执行如权利要求1至17中任一项所述的弹幕显示方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110300011.1A CN112689190B (zh) | 2021-03-22 | 2021-03-22 | 弹幕显示方法、装置、终端及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110300011.1A CN112689190B (zh) | 2021-03-22 | 2021-03-22 | 弹幕显示方法、装置、终端及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112689190A true CN112689190A (zh) | 2021-04-20 |
CN112689190B CN112689190B (zh) | 2022-07-01 |
Family
ID=75455763
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110300011.1A Active CN112689190B (zh) | 2021-03-22 | 2021-03-22 | 弹幕显示方法、装置、终端及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112689190B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113706206A (zh) * | 2021-08-31 | 2021-11-26 | 上海哔哩哔哩科技有限公司 | 信息处理方法及系统 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130018685A1 (en) * | 2011-07-14 | 2013-01-17 | Parnaby Tracey J | System and Method for Tasking Based Upon Social Influence |
CN106454434A (zh) * | 2016-11-15 | 2017-02-22 | 广州华多网络科技有限公司 | 一种弹幕播放方法及装置 |
CN106998492A (zh) * | 2017-03-02 | 2017-08-01 | 合网络技术(北京)有限公司 | 弹幕的显示控制方法及装置 |
CN107147941A (zh) * | 2017-05-27 | 2017-09-08 | 努比亚技术有限公司 | 视频播放的弹幕显示方法、装置及计算机可读存储介质 |
CN107302717A (zh) * | 2017-06-30 | 2017-10-27 | 武汉斗鱼网络科技有限公司 | 弹幕信息播放方法和装置 |
CN109189541A (zh) * | 2018-09-17 | 2019-01-11 | 福建星网视易信息系统有限公司 | 界面显示方法及计算机可读存储介质 |
CN111344116A (zh) * | 2017-11-16 | 2020-06-26 | 索尼公司 | 信息处理设备、信息处理方法、计算机程序及程序制造方法 |
CN111714880A (zh) * | 2020-04-30 | 2020-09-29 | 完美世界(北京)软件科技发展有限公司 | 画面的显示方法和装置、存储介质、电子装置 |
-
2021
- 2021-03-22 CN CN202110300011.1A patent/CN112689190B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130018685A1 (en) * | 2011-07-14 | 2013-01-17 | Parnaby Tracey J | System and Method for Tasking Based Upon Social Influence |
CN106454434A (zh) * | 2016-11-15 | 2017-02-22 | 广州华多网络科技有限公司 | 一种弹幕播放方法及装置 |
CN106998492A (zh) * | 2017-03-02 | 2017-08-01 | 合网络技术(北京)有限公司 | 弹幕的显示控制方法及装置 |
CN107147941A (zh) * | 2017-05-27 | 2017-09-08 | 努比亚技术有限公司 | 视频播放的弹幕显示方法、装置及计算机可读存储介质 |
CN107302717A (zh) * | 2017-06-30 | 2017-10-27 | 武汉斗鱼网络科技有限公司 | 弹幕信息播放方法和装置 |
CN111344116A (zh) * | 2017-11-16 | 2020-06-26 | 索尼公司 | 信息处理设备、信息处理方法、计算机程序及程序制造方法 |
CN109189541A (zh) * | 2018-09-17 | 2019-01-11 | 福建星网视易信息系统有限公司 | 界面显示方法及计算机可读存储介质 |
CN111714880A (zh) * | 2020-04-30 | 2020-09-29 | 完美世界(北京)软件科技发展有限公司 | 画面的显示方法和装置、存储介质、电子装置 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113706206A (zh) * | 2021-08-31 | 2021-11-26 | 上海哔哩哔哩科技有限公司 | 信息处理方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN112689190B (zh) | 2022-07-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109167950B (zh) | 视频录制方法、视频播放方法、装置、设备及存储介质 | |
US11393154B2 (en) | Hair rendering method, device, electronic apparatus, and storage medium | |
CN108769814A (zh) | 视频互动方法、装置及可读介质 | |
CN108401124B (zh) | 视频录制的方法和装置 | |
WO2021159792A1 (zh) | 虚拟物品交互方法、装置、计算机设备及存储介质 | |
CN109660855B (zh) | 贴纸显示方法、装置、终端及存储介质 | |
CN112181573B (zh) | 媒体资源展示方法、装置、终端、服务器以及存储介质 | |
CN111901658B (zh) | 评论信息显示方法、装置、终端及存储介质 | |
CN109275013B (zh) | 虚拟物品展示的方法、装置、设备及存储介质 | |
CN110022363A (zh) | 虚拟对象的运动状态修正方法、装置、设备及存储介质 | |
CN112258241A (zh) | 页面展示方法、装置、终端以及存储介质 | |
CN109346111B (zh) | 数据处理方法、装置、终端及存储介质 | |
CN112044065B (zh) | 虚拟资源的显示方法、装置、设备及存储介质 | |
WO2021073293A1 (zh) | 动画文件的生成方法、装置及存储介质 | |
CN110139143B (zh) | 虚拟物品显示方法、装置、计算机设备以及存储介质 | |
CN109600559B (zh) | 一种视频特效添加方法、装置、终端设备及存储介质 | |
CN111246227A (zh) | 弹幕发布方法及设备 | |
CN113393290A (zh) | 直播数据处理方法、装置、计算机设备及介质 | |
CN113395566B (zh) | 视频播放方法、装置、电子设备及计算机可读存储介质 | |
CN111028566A (zh) | 直播教学的方法、装置、终端和存储介质 | |
CN111437600A (zh) | 剧情展示方法、装置、设备及存储介质 | |
CN113409427A (zh) | 动画播放方法、装置、电子设备及计算机可读存储介质 | |
CN112468884A (zh) | 动态资源显示方法、装置、终端、服务器及存储介质 | |
CN112004134B (zh) | 多媒体数据的展示方法、装置、设备及存储介质 | |
CN112689190B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |