一种弹幕位置切换的方法及装置与流程

文档序号:11216365阅读:393来源:国知局
本发明涉及互联网
技术领域
:,特别涉及一种弹幕位置切换的方法及装置。
背景技术
::在观看视频时,用户可以以弹幕的方式发表评论,弹幕就是使评论在屏幕上从一端飘向另一端,当大量评论从屏幕飘过时,画面效果类似于飞行射击游戏中的弹幕,视屏中的弹幕主要是字幕形式的留言,留言的文字直接覆盖在影片播放的屏幕上。由于进行弹幕时可能有大量字幕与视频影片叠加,这种方式影响观看视频的效果,针对现有技术中弹幕方式影响视频观赏效果的问题,目前尚未提出有效的解决方案。技术实现要素:本发明实施例提供了一种弹幕位置切换的方法及装置,避免了弹幕遮挡屏幕或者弹幕显示不符合用户观赏习惯的情况,提升了用户体验。第一方面,本申请提供了一种弹幕位置切换的方法,该方法包括:获取弹幕切换的第一指令,所述第一指令中包括弹幕位置调整后的第一位置信息;根据所述第一位置信息,生成所述第一位置信息对应的第一随机数,并将所述第一随机数保存在预设的数组中;获取当前输入的弹幕信息;从所述数组中获取所述第一随机数,根据所述第一随机数确定调整后的第一弹幕位置,并在所述第一弹幕位置对当前输入的弹幕信息进行显示。进一步的,在所述将所述第一随机数保存在预设的数组中之前,所述方法还包括:创建所述数组,为所述数组分配内存;为所述数组设置存储随机数的最大容量;为所述数组设置存储随机数数量的最大值。进一步的,所述方法还包括:在将随机数保存在所述数组中时,记录所述数组中存储的随机数次数,每在所述数组中存储一次随机数,则将所述存储随机数数量加1,直至达到所述存储随机数数量的最大值为止,所述存储随机数数量初始值为0;在将随机数保存在所述数组中时,若所述数组中存储的随机数达到所述存储随机数的最大容量时,删除所述数组中最先保存的随机数。进一步的,所述第一位置信息为屏幕底部、屏幕中间、屏幕顶部或屏幕全屏,所述根据所述第一位置信息,生成所述第一位置信息对应的第一随机数,包括:若所述第一位置信息为屏幕全屏,根据所述第一位置信息,生成所述第一位置信息对应的第一随机数,所述第一随机数的取值范围从0到屏幕全高度;若所述第一位置信息为屏幕中间,根据所述第一位置信息,生成所述第一位置信息对应的第一随机数,所述第一随机数的取值范围为屏幕高度的1/4到屏幕高度的3/4;若所述第一位置信息为屏幕顶部,根据所述第一位置信息,生成所述第一位置信息对应的第一随机数,所述第一随机数的取值范围为从屏幕高度的3/4到屏幕全高度;若所述第一位置信息为屏幕底部,根据所述第一位置信息,生成所述第一位置信息对应的第一随机数,所述第一随机数的取值范围为从0到屏幕高度的1/4。进一步的,所述方法还包括:获取弹幕切换的第二指令,所述第二指令中包括弹幕位置调整后的第二位置信息,所述所述第二位置信息为屏幕底部、屏幕中间、屏幕顶部或屏幕全屏;根据所述第二位置信息,生成所述第二位置信息对应的第二随机数,并将所述第二随机数保存在所述数组中;获取当前输入的弹幕信息;从所述数组中获取所述第二随机数,根据所述第二随机数确定调整后的第二弹幕位置,并在所述第二弹幕位置对当前输入的弹幕信息进行显示。第二方面,本申请提供一种弹幕位置切换的装置,该装置包括:第一获取单元,用于获取弹幕切换的第一指令,所述第一指令中包括弹幕位置调整后的第一位置信息;生成单元,用于根据所述第一位置信息,生成所述第一位置信息对应的第一随机数,并将所述第一随机数保存在预设的数组中;第二获取单元,用于获取当前输入的弹幕信息;弹幕显示单元,用于从所述数组中获取所述第一随机数,根据所述第一随机数确定调整后的第一弹幕位置,并在所述第一弹幕位置对当前输入的弹幕信息进行显示。进一步的,所述装置还包括创建单元,所述创建单元用于:在所述将所述第一随机数保存在预设的数组中之前,创建所述数组,为所述数组分配内存;为所述数组设置存储随机数的最大容量;为所述数组设置存储随机数数量的最大值。进一步的,所述装置还包括:记录单元,用于在将随机数保存在所述数组中时,记录所述数组中存储的随机数次数,每在所述数组中存储一次随机数,则将所述存储随机数数量加1,直至达到所述存储随机数数量的最大值为止,所述存储随机数数量初始值为0;删除单元,用于在将随机数保存在所述数组中时,若所述数组中存储的随机数达到所述存储随机数的最大容量时,删除所述数组中最先保存的随机数。进一步的,所述第一位置信息为屏幕底部、屏幕中间、屏幕顶部或屏幕全屏,所述生成单元具体用于:若所述第一位置信息为屏幕全屏,根据所述第一位置信息,生成所述第一位置信息对应的第一随机数,所述第一随机数的取值范围从0到屏幕全高度;若所述第一位置信息为屏幕中间,根据所述第一位置信息,生成所述第一位置信息对应的第一随机数,所述第一随机数的取值范围为屏幕高度的1/4到屏幕高度的3/4;若所述第一位置信息为屏幕顶部,根据所述第一位置信息,生成所述第一位置信息对应的第一随机数,所述第一随机数的取值范围为从屏幕高度的3/4到屏幕全高度;若所述第一位置信息为屏幕底部,根据所述第一位置信息,生成所述第一位置信息对应的第一随机数,所述第一随机数的取值范围为从0到屏幕高度的1/4。进一步的,所述第一获取单元还用于获取弹幕切换的第二指令,所述第二指令中包括弹幕位置调整后的第二位置信息,所述第二位置信息为屏幕底部、屏幕中间、屏幕顶部或屏幕全屏;所述生成单元还用于根据所述第二位置信息,生成所述第二位置信息对应的第二随机数,并将所述第二随机数保存在所述数组中;所述第二获取单元还用于获取当前输入的弹幕信息;所述弹幕显示单元还用于从所述数组中获取所述第二随机数,根据所述第二随机数确定调整后的第二弹幕位置,并在所述第二弹幕位置对当前输入的弹幕信息进行显示。本发明实施例通过获取弹幕切换的第一指令,该第一指令中包括弹幕位置调整后的第一位置信息;根据第一位置信息,生成第一位置信息对应的第一随机数,并将第一随机数保存在预设的数组中;获取当前输入的弹幕信息;从数组中获取第一随机数,根据第一随机数对当前输入的弹幕信息进行展示。本发明实施例中可以让用户随时设置弹幕显示的位置,在体验弹幕带来的乐趣时可以同时让用户获取更加的视频观赏体验,同时通过数组枚举的方式保存位置信息,可以让设备更快的获取弹幕设置信息,进而按弹幕设置进行显示。附图说明图1是本发明实施例中弹幕位置切换的方法的一个实施例示意图;图2是在图1的基础上,本发明实施例中弹幕位置切换的装置的另一个实施例示意图;图3是在图2的基础上,本发明实施例中弹幕位置切换的装置的另一个实施例示意图;图4是本发明实施例中弹幕位置切换的装置的一个实施例示意图;图5是本发明实施例中弹幕位置切换的装置的一个实施例示意图;图6是本发明实施例中弹幕位置切换的装置的一个实施例示意图。具体实施方式为了使本
技术领域
:的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。本发明实施例中弹幕位置切换的方法应用于弹幕位置切换的装置,该装置位于移动终端中,该移动终端可以是手机、平板电脑等智能移动终端,也可以是未来出现的移动终端,例如虚拟显示装置、增强显示装置、混合现实装置等。请参阅图1,本发明实施例中弹幕位置切换的方法一个实施例包括:s11、获取弹幕切换的第一指令;本实施例中,该第一指令中包括弹幕位置调整后的第一位置信息。s12、根据第一位置信息,生成第一位置信息对应的第一随机数,并将第一随机数保存在预设的数组中;s13、获取当前输入的弹幕信息;s14、从数组中获取第一随机数,根据第一随机数确定调整后的第一弹幕位置,并在第一弹幕位置对当前输入的弹幕信息进行显示。本发明实施例通过获取弹幕切换的第一指令,该第一指令中包括弹幕位置调整后的第一位置信息;根据第一位置信息,生成第一位置信息对应的第一随机数,并将第一随机数保存在预设的数组中;获取当前输入的弹幕信息;从数组中获取第一随机数,根据第一随机数对当前输入的弹幕信息进行展示。本发明实施例中可以让用户随时设置弹幕显示的位置,在体验弹幕带来的乐趣时可以同时让用户获取更加的视频观赏体验,同时通过数组枚举的方式保存位置信息,可以让设备更快的获取弹幕设置信息,进而按弹幕设置进行显示。本发明实施例中,在用户第一次使用播放视频时,采用默认的弹幕位置信息,在屏幕下方可以设置弹幕切换的按钮或选项,点击该按钮弹出弹幕位置选择菜单可以供用户选择弹幕显示位置,此时获取弹幕切换的第一指令可以是:获取用户点击该按钮或选项的指令,弹出弹幕位置选择菜单,所述弹幕选择位置菜单中包括至少两个弹幕位置信息;获取用户在所述至少两个弹幕位置信息中选择的第一位置信息,生成弹幕切换的第一指令。另外,同样可以在屏幕下方设置多个按钮,每个按钮对应一个弹幕位置信息,以供选择弹幕位置,例如,屏幕上第一按钮表示弹幕显示在“屏幕底部”、第二按钮表示弹幕显示在“屏幕顶部”、第三按钮表示弹幕显示在“屏幕全屏”、第四按钮表示弹幕显示在“屏幕左侧”、第五按钮表示弹幕显示在“屏幕右侧”等。此时获取弹幕切换的第一指令可以是:若获取用户点击屏幕上目标按钮的指令,生成弹幕切换的第一指令,其中,该目标按钮对应的弹幕位置信息为上述第一位置信息。进一步的,如图2所示,在所述将所述第一随机数保存在预设的数组中之前,所述方法还包括:s21、创建该数组,为该数组分配内存;s22、为该数组设置存储随机数的最大容量;s23、为该数组设置存储随机数数量的最大值。具体的,本发明实施例中,可以使用函数[[nsmutablearrayalloc]initwithcapacity:kdylayermaxnum]创建该数组,其中kdylayermaxnum是这个数组的存储随机数数量的最大值,[nsmutablearrayalloc]是创建数组,为数组分配内存的过程,initwithcapacity含义是为创建的数组设置存储随机数最大容量。上述保存第一随机数到数组中的方式可以是利用数组枚举值的定义,例如:location_top=0表示屏幕顶部,location_bottom表示屏幕底部,location_full表示屏幕全屏,弹幕信息默认的初始值可以是屏幕全屏,即如果用户没有修改弹幕位置的时候默认就是全屏显示弹幕。用户可以自己手动修改弹幕的显示位置,用户可以通过上述设置的按钮选择弹幕的显示的位置,当用户选择某一个按钮的时候调用函数-(void)changepositon:(dmlocation)positiontype,这个函数返回值是void,即没有返回值,这个函数的名称是changepositon:,这个函数的参数是positiontype,positiontype的参数类型是dmlocation,dmlocation是一个枚举类型,也就是上述描述的枚举值。在本发明一些实施例中,如图3所示,所述方法还可以包括:s31、在将随机数保存在所述数组中时,记录该数组中存储的随机数次数,每在该数组中存储一次随机数,则将存储随机数数量加1,直至达到存储随机数数量的最大值为止;其中,所述存储随机数数量初始值为0;s32、在将随机数保存在该数组中时,若该数组中存储的随机数达到所述存储随机数的最大容量时,删除该数组中最先保存的随机数。具体的,在将随机数保存在所述数组中时,记录所述数组中存储的随机数次数,每在所述数组中存储一次随机数,则将所述存储随机数数量加1,直至达到所述存储随机数数量的最大值为止,所述存储随机数数量初始值为0可以是:使用函数for(inti=0;i<kdylayermaxnum;i++)创建一个for循环,其中i是这个for循环的起始值,kdylayermaxnum为数组的存储随机数数量的最大值,此时也是这个for循环最多的循环的次数,i++是每执行完一次for循环之后值会增加1。本发明实施例中,弹幕位置信息可以是屏幕底部、屏幕中间、屏幕顶部或屏幕全屏,也可以是屏幕左侧、屏幕右侧等。此时第一位置信息也可以是屏幕底部、屏幕中间、屏幕顶部或屏幕全屏,或者是屏幕左侧、屏幕右侧等。其中屏幕顶部、屏幕底部、屏幕中间将屏幕在垂直方向分成三部分,例如屏幕顶部为屏幕高度的3/4到屏幕全高度,或者屏幕顶部为屏幕高度的2/3到屏幕全高度,或者幕顶部为屏幕高度的4/5到屏幕全高度等,同样的,屏幕底部也可以为0(以垂直方向屏幕高度最低处为高度0)到屏幕高度的1/5,或者屏幕底部为0到屏幕高度的1/3,或者幕底部为0到屏幕高度的1/5等,屏幕中间为除屏幕底部和屏幕顶部的其他区域。另外屏幕左侧可以是0(以水平方向屏幕最左侧处为宽度0)到屏幕宽度的1/4,1/3或1/5等,屏幕右侧可以是,屏幕宽度的3/4,2/3或4/5等。当第一位置信息为屏幕底部、屏幕中间、屏幕顶部或屏幕全屏时,所述根据所述第一位置信息,生成所述第一位置信息对应的第一随机数,包括:若所述第一位置信息为屏幕全屏,根据所述第一位置信息,生成所述第一位置信息对应的第一随机数,所述第一随机数的取值范围从0到屏幕全高度;若所述第一位置信息为屏幕中间,根据所述第一位置信息,生成所述第一位置信息对应的第一随机数,所述第一随机数的取值范围为屏幕高度的1/4到屏幕高度的3/4;若所述第一位置信息为屏幕顶部,根据所述第一位置信息,生成所述第一位置信息对应的第一随机数,所述第一随机数的取值范围为从屏幕高度的3/4到屏幕全高度;若所述第一位置信息为屏幕底部,根据所述第一位置信息,生成所述第一位置信息对应的第一随机数,所述第一随机数的取值范围为从0到屏幕高度的1/4。在本发明实施例中,后续还可以随时调整弹幕位置信息,即本发明实施例中方法还可以包括:获取弹幕切换的第二指令,所述第二指令中包括弹幕位置调整后的第二位置信息,所述所述第二位置信息为屏幕底部、屏幕中间、屏幕顶部或屏幕全屏;根据所述第二位置信息,生成所述第二位置信息对应的第二随机数,并将所述第二随机数保存在所述数组中;获取当前输入的弹幕信息;从所述数组中获取所述第二随机数,根据所述第二随机数确定调整后的第二弹幕位置,并在所述第二弹幕位置对当前输入的弹幕信息进行显示。另外,用于用户发送的弹幕都会通过服务器作为中转中心,因此本发明实施例中可以使用长连接的通信方式将弹幕信息主动推送到本发明实施例移动终端中。本发明实施例中,在所述第一弹幕位置对当前输入的弹幕信息进行显示可以是:将当前输入的弹幕信息转化为预设模型;创建一个图层,在该图层中添加弹幕信息的所述预设模型;在所述第一弹幕位置对弹幕信息的所述预设模型进行显示。具体的,对于推送过来的弹幕信息进行解析并且转化为模型,这些模型中会包含一些信息,弹幕的显示内容,弹幕的颜色,弹幕的唯一标示信息,弹幕包含的图片的下载地址信息等等创建一个图层,这个图层的高度根据弹幕的内容变化,弹幕内容少可以是固定值,一般等于一行文字的高度,宽度根据弹幕内容计算出来的,弹幕的位置水平从0缓慢的增加到屏幕的宽度,弹幕的垂直方向的坐标值从上述数组中取第一随机数,每取出一个随机数,在上述数组将这个取出的值移除。为创建的图层添加第一位置信息,然后将这个图层添加到屏幕上,其中弹幕的水平的位置是从0到屏幕的宽度,弹幕的y值根据弹幕切换的指令生成一个位置信息的垂直方向的随机数(第一随机数),并且将第一随机数保存到一个数组中值来获取,这样就实现了一个弹幕位置切换的效果。下面描述本发明实施例中弹幕位置切换的装置的实施例。请参阅图4,为本发明实施例中弹幕位置切换的装置的一个实施例示意图,该装置包括:第一获取单元401,用于获取弹幕切换的第一指令,所述第一指令中包括弹幕位置调整后的第一位置信息;生成单元402,用于根据所述第一位置信息,生成所述第一位置信息对应的第一随机数,并将所述第一随机数保存在预设的数组中;第二获取单元403,用于获取当前输入的弹幕信息;弹幕显示单元404,用于从所述数组中获取所述第一随机数,根据所述第一随机数确定调整后的第一弹幕位置,并在所述第一弹幕位置对当前输入的弹幕信息进行显示。进一步的,如图5所示,所述装置还包括创建单元405,所述创建单元用于:在所述将所述第一随机数保存在预设的数组中之前,创建所述数组,为所述数组分配内存;为所述数组设置存储随机数的最大容量;为所述数组设置存储随机数数量的最大值。进一步的,如图6所示,所述装置还包括:记录单元406,用于在将随机数保存在所述数组中时,记录所述数组中存储的随机数次数,每在所述数组中存储一次随机数,则将所述存储随机数数量加1,直至达到所述存储随机数数量的最大值为止,所述存储随机数数量初始值为0;删除单元407,用于在将随机数保存在所述数组中时,若所述数组中存储的随机数达到所述存储随机数的最大容量时,删除所述数组中最先保存的随机数。进一步的,所述第一位置信息为屏幕底部、屏幕中间、屏幕顶部或屏幕全屏;所述生成单元402具体用于:若所述第一位置信息为屏幕全屏,根据所述第一位置信息,生成所述第一位置信息对应的第一随机数,所述第一随机数的取值范围从0到屏幕全高度;若所述第一位置信息为屏幕中间,根据所述第一位置信息,生成所述第一位置信息对应的第一随机数,所述第一随机数的取值范围为屏幕高度的1/4到屏幕高度的3/4;若所述第一位置信息为屏幕顶部,根据所述第一位置信息,生成所述第一位置信息对应的第一随机数,所述第一随机数的取值范围为从屏幕高度的3/4到屏幕全高度;若所述第一位置信息为屏幕底部,根据所述第一位置信息,生成所述第一位置信息对应的第一随机数,所述第一随机数的取值范围为从0到屏幕高度的1/4。进一步的,所述第一获取单元401还用于获取弹幕切换的第二指令,所述第二指令中包括弹幕位置调整后的第二位置信息,所述第二位置信息为屏幕底部、屏幕中间、屏幕顶部或屏幕全屏;所述生成单元402还用于根据所述第二位置信息,生成所述第二位置信息对应的第二随机数,并将所述第二随机数保存在所述数组中;所述第二获取单元403还用于获取当前输入的弹幕信息;所述弹幕显示单元404还用于从所述数组中获取所述第二随机数,根据所述第二随机数确定调整后的第二弹幕位置,并在所述第二弹幕位置对当前输入的弹幕信息进行显示。所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。以上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1