一种视频直播中的弹幕显示方法和系统与流程

文档序号:13177701阅读:1487来源:国知局
技术领域本发明属于移动互联网技术领域,更具体地,涉及一种视频直播中的弹幕显示方法和系统。

背景技术:
近年来,基于游戏视频直播但不仅限于游戏视频直播的互联网视频直播平台如雨后春笋般不断涌现,越来越多的人们能够欣赏到各种趣味的视频直播,同时随着智能手机的快速发展,人们观看视频的方式也不在拘泥于电脑一种,人们可以随时随地用手机观看自己喜欢的视频,尤其是观看直播时可以发送弹幕与主播或其他观看者交流,这种基于弹幕的新兴交流模式更是让用户收获了更多的快乐。目前,主流视频直播App的弹幕展示方式采用的是收到一条展示一条的顺序展示方式,这样展示缺少随机展示的趣味性,会让用户观看弹幕和发送弹幕的兴趣降低,导致用户不愿意发送弹幕。并且因为没有弹幕重用机制,会导致弹幕展示过程中,内存使用量不停增长,增长到一定程度可能会引发App崩溃的问题。

技术实现要素:
针对现有技术的以上缺陷或改进需求,本发明提供了一种视频直播中的弹幕显示方法和系统,其目的在于,解决视频直播过程中不停接收弹幕导致内存增长、系统性能下降和弹幕显示枯燥的技术问题。为实现上述目的,按照本发明的一个方面,提供了一种视频直播中的弹幕显示方法,包括以下步骤:(1)根据移动设备显示屏的横屏高度和预设的弹幕框高度确定每页显示的弹幕数量allcount,并设定弹幕框的初始位置,其中第page个页面上第n个弹幕框的ID为ID(page,n)=page*allcount+n,page表示该弹幕框所在页面的序号,其数值为0至pagenumber-1之间,pagenumber为预设的显示弹幕的页面数量,n为弹幕框从上到下的序号,所有弹幕框的ID构成一个弹幕框ID数组;(2)初始化并启动定时器NSTimer,其每隔t秒触发一次,其中t的取值范围是0到1秒;(3)判断弹幕池中是否存在来自服务器端的多个弹幕数据,如果存在则进入步骤(4),否则继续等待弹幕数据;(4)判断所有pagenumber个页面上是否存在可用的弹幕框,如果是,则转入步骤(5),否则返回步骤(2);(5)从pagenumber个页面中随机提取一个可用的弹幕框,将弹幕池中最先到达的弹幕数据填充到该弹幕框中,并使该弹幕框从右向左水平匀速移动,将该弹幕框的ID从弹幕框ID数组中移除,并转入弹幕池中下一个弹幕数据,对其重复执行步骤(4),直到用户选择退出弹幕框所在的直播页面为止,过程结束。优选地,步骤(1)中,每页显示的弹幕数量allcount等于(int)screenheight/allcount,其中screenheight为显示屏的横屏宽度,labelheight为弹幕框高度,(int)表示对括号内的除法结果取整。优选地,弹幕数据在弹幕框中的位置是左居中,弹幕框的初始位置是在显示屏可视范围的右外侧。优选地,还包括在弹幕框从显示屏最右侧移动到显示屏最左侧以后,将该弹幕框的ID放入弹幕框ID数组中进行回收,并将该弹幕框的位置进行复位的步骤。优选地,如果步骤(4)中确定仅仅存在一个可用的弹幕框,则直接选择该弹幕框进行后续操作。按照本发明的另一方面,提供了一种视频直播中的弹幕显示系统,包括:第一模块,用于根据移动设备显示屏的横屏高度和预设的弹幕框高度确定每页显示的弹幕数量allcount,并设定弹幕框的初始位置,其中第page个页面上第n个弹幕框的ID为ID(page,n)=page*allcount+n,page表示该弹幕框所在页面的序号,其数值为0至pagenumber-1之间,pagenumber为预设的显示弹幕的页面数量,n为弹幕框从上到下的序号,所有弹幕框的ID构成一个弹幕框ID数组;第二模块,用于初始化并启动定时器NSTimer,其每隔t秒触发一次,其中t的取值范围是0到1秒;第三模块,用于判断弹幕池中是否存在来自服务器端的多个弹幕数据,如果存在则进入第四模块,否则继续等待弹幕数据;第四模块,用于判断所有pagenumber个页面上是否存在可用的弹幕框,如果是,则转入第五模块,否则返回第二模块;第五模块,用于从pagenumber个页面中随机提取一个可用的弹幕框,将弹幕池中最先到达的弹幕数据填充到该弹幕框中,并使该弹幕框从右向左水平匀速移动,将该弹幕框的ID从弹幕框ID数组中移除,并转入弹幕池中下一个弹幕数据,对其重复执行第四模块,直到用户选择退出弹幕框所在的直播页面为止,过程结束。第一模块中,每页显示的弹幕数量allcount等于(int)screenheight/allcount,其中screenheight为显示屏的横屏宽度,labelheight为弹幕框高度,(int)表示对括号内的除法结果取整。优选地,第一模块中,每页显示的弹幕数量allcount等于(int)screenheight/allcount,其中screenheight为显示屏的横屏宽度,labelheight为弹幕框高度,(int)表示对括号内的除法结果取整。优选地,弹幕数据在弹幕框中的位置是左居中,弹幕框的初始位置是在显示屏可视范围的右外侧。优选地,还包括在弹幕框从显示屏最右侧移动到显示屏最左侧以后,将该弹幕框的ID放入弹幕框ID数组中进行回收,并将该弹幕框的位置进行复位的步骤。优选地,如果第四模块中确定仅仅存在一个可用的弹幕框,则直接选择该弹幕框进行后续操作。总体而言,通过本发明所构思的以上技术方案与现有技术相比,能够取得下列有益效果:(1)本发明能够解决视频直播过程中不停接收弹幕导致内存增长和性能下降的技术问题:由于采用了步骤(3)至(5)的弹幕重用机制,可以保证内存不会持续增长,从而防止了性能下降的问题。(2)本发明能够带给用户较好的弹幕展示效果:由于本发明实现了弹幕ID的随机选择以及弹幕显示速度的随机性,多个弹幕显示时有交错随机显示的特殊效果,带给用户很好的使用乐趣。(3)本发明通过不同页面弹幕框显示速度的算法控制,保证了在屏幕上相同位置的两条弹幕不会以相同的速度被重叠展示,由此带来了弹幕显示的良好效果。附图说明图1是本发明视频直播中的弹幕显示方法的流程图。具体实施方式为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。如图1所示,本发明视频直播中的弹幕显示方法包括以下步骤:(1)根据移动设备显示屏的横屏高度和预设的弹幕框高度确定每页显示的弹幕数量allcount和弹幕框的初始位置,并设定显示弹幕的页面数量pagenumber,其中第page个页面上第n个弹幕框的ID为ID(page,n)=page*allcount+n(其中page表示该弹幕框所在页面的序号,其数值为0,1,…,pagenumber-1,n为弹幕框从上到下的序号,且n=(0,1,…,allcount-1),所有弹幕框的ID构成一个弹幕框ID数组,弹幕框的水平大小就是显示屏的横屏宽度,弹幕数据在弹幕框中是左居中,弹幕框的初始位置是在显示屏可视范围的右外侧;具体而言,设横屏高度为screenheight,弹幕框高度labelheight,则每页显示的弹幕数量为(int)screenheight/allcount,其中(int)表示对括号内的除法结果取整,在本实施方式中,弹幕框高度labelheight被预设为25pt大小,pagenumber是大于等于1的正整数,其取值越大,则弹幕显示的重叠几率越高,可视性差,其优选取值为2或3;举例而言,如果allcount为20,预设的页面数量pagenumber为2,则第一页第一个弹幕框的ID为ID(0,0)=0*20+0=0,第二个弹幕框的ID为ID为ID(0,1)=0*20+1=1,…,第2页第一个弹幕框的ID为ID(1,0)=1*20+0=20,…,第2页最后一个弹幕框的ID为ID(1,19)=1*20+19=39。(2)初始化并启动定时器NSTimer,其每隔t秒触发一次,其中t的取值范围是0到1秒,优选为0.02秒;(3)判断弹幕池中是否存在来自服务器端的多个弹幕数据,如果存在则进入步骤(4),否则继续等待弹幕数据;(4)判断所有pagenumber个页面上是否存在可用的弹幕框,如果是,则转入步骤(5),否则返回步骤(2);(5)从pagenumber个页面中随机提取一个可用的弹幕框,将弹幕池中最先到达的弹幕数据填充到该弹幕框中,并使该弹幕框以预设的速度(其取值是显示屏的横屏宽度/time,其中time是20以内的正整数,单位是秒)从右向左水平匀速移动,将该弹幕框的ID从弹幕框ID数组中移除,并转入弹幕池中下一个弹幕数据,对其重复执行步骤(4),直到用户选择退出直播页面为止,过程结束;需要注意的是,如果步骤(4)中确定仅仅存在一个可用的弹幕框,则直接选择该弹幕框;其中待弹幕框从显示屏最右侧移动到显示屏最左侧以后,将该弹幕框的ID放入弹幕框ID数组中进行回收,并将该弹幕框的位置进行复位(即使其回到初始的位置,即显示屏可视范围的右外侧)。本发明通过采用弹幕重用机制,可以保证内存不会持续增长,从而防止了性能下降的问题;此外,本发明实现了弹幕ID的随机选择以及弹幕显示速度的随机性,多个弹幕显示时有交错随机显示的特殊效果,带给用户很好的使用乐趣;另外,本发明通过不同页面弹幕框显示速度的算法控制,保证了在屏幕上相同位置的两条弹幕不会以相同的速度被重叠展示,由此带来了弹幕显示的良好效果。本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1