弹幕显示方法、装置、设备及存储介质与流程

    专利查询2022-07-11  136



    1.本技术涉及多媒体显示领域,尤其涉及一种弹幕显示方法、装置、设备及存储介质。


    背景技术:

    2.弹幕,是指在网络上观看视频时弹出的评论性字幕。弹幕可以给观众一种“实时互动”的错觉,虽然不同弹幕的发送时刻有所区别,但是弹幕只会在视频中特定的一个时间点出现,因此在相同时刻发送的弹幕基本上也具有相同的主题,在参与评论时就会有与其他观众同时评论的错觉。用户是把发弹幕当成了玩游戏,同时有表达,交友,炫耀等需求。
    3.弹幕作为一种新型的社交方式,从最初的普通弹幕,到带有颜色,明星头像等各种多样的形式,给用户带来了新的体验。但是目前的弹幕样式还是比较单一,不够新颖,不够震撼,不够充分表达用户情绪。


    技术实现要素:

    4.本技术提供了一种弹幕显示方法、装置、设备及存储介质,用以解决弹幕样式单一的问题。
    5.第一方面,本技术提供了一种弹幕显示方法,包括:
    6.获取弹幕数据,其中,所述弹幕数据包括待显示弹幕或者已显示弹幕;
    7.获取像素参数,其中,所述像素参数包括像素位置,或者所述像素参数包括所述像素位置和像素取值变化方式;
    8.按照所述像素参数,显示所述弹幕数据。
    9.可选地,所述获取像素参数,包括:
    10.获取弹幕模板;
    11.拆分所述弹幕模板的覆盖区域,获得各个目标像素点;
    12.获取所述各个目标像素点的位置,作为所述像素位置,将所述像素位置作为所述像素参数。
    13.可选地,所述按照所述像素参数,显示所述弹幕数据,包括:
    14.拆分所述弹幕数据,获得各个字符;
    15.分散排列所述各个字符至所述各个目标像素点的位置。
    16.可选地,所述弹幕模板包括字母、文字、表情中的至少一个。
    17.可选地,所述获取像素参数,包括:
    18.获取所述弹幕数据的位图,其中,所述弹幕数据为已显示弹幕;
    19.获取所述位图中各个像素点的位置,作为所述像素位置;
    20.获取所述像素取值变化方式;
    21.将所述像素位置和所述像素取值变化方式,作为所述像素参数。
    22.可选地,所述按照所述像素参数,显示所述弹幕数据,包括:
    23.根据所述像素位置和预设的粒子尺寸信息,获取所述位图对应的粒子数量以及各个粒子的位置,其中,所述粒子是由至少一个像素点组成;
    24.根据所述粒子数量和所述各个粒子的位置,生成所述各个粒子;
    25.控制所述各个粒子按照所述像素取值变化方式动作,显示所述弹幕数据。
    26.可选地,所述获取所述像素取值变化方式,包括:
    27.根据所述各个粒子的位置和预设的爆炸锚点的位置,获取所述各个粒子的运动方向;
    28.获取所述各个粒子的运动速度和运动时长;
    29.将所述各个粒子的所述运动方向、所述运动速度和所述运动时长,作为所述像素取值变化方式。
    30.第二方面,本技术提供了一种弹幕显示装置,包括:
    31.第一获取模块,用于获取弹幕数据,其中,所述弹幕数据包括待显示弹幕或者已显示弹幕;
    32.第二获取模块,用于获取像素参数,其中,所述像素参数包括像素位置,或者所述像素参数包括所述像素位置和像素取值变化方式;
    33.处理模块,用于按照所述像素参数,显示所述弹幕数据。
    34.可选地,所述第二获取模块包括模板获取子模块、第一拆分子模块和位置获取子模块;
    35.所述模板获取子模块,用于获取弹幕模板;
    36.所述第一拆分子模块,用于拆分所述弹幕模板的覆盖区域,获得各个目标像素点;
    37.所述位置获取子模块,用于获取所述各个目标像素点的位置,作为所述像素位置,将所述像素位置作为所述像素参数。
    38.可选地,所述处理模块包括第二拆分子模块和分散排列子模块;
    39.所述第二拆分子模块,用于拆分所述弹幕数据,获得各个字符;
    40.所述分散排列子模块,用于分散排列所述各个字符至所述各个目标像素点的位置。
    41.可选地,所述弹幕模板包括字母、文字、表情中的至少一个。
    42.可选地,所述第二获取模块包括位图获取子模块、像素位置获取子模块、像素取值变化方式获取子模块和像素参数确定子模块;
    43.所述位图获取子模块,用于获取所述弹幕数据的位图,其中,所述弹幕数据为已显示弹幕;
    44.所述像素位置获取子模块,用于获取所述位图中各个像素点的位置,作为所述像素位置;
    45.所述像素取值变化方式获取子模块,用于获取所述像素取值变化方式;
    46.所述像素参数确定子模块,用于将所述像素位置和所述像素取值变化方式,作为所述像素参数。
    47.可选地,所述处理模块包括粒子获取子模块、生成子模块和显示子模块;
    48.所述粒子获取子模块,用于根据所述像素位置和预设的粒子尺寸信息,获取所述位图对应的粒子数量以及各个粒子的位置,其中,所述粒子是由至少一个像素点组成;
    49.所述生成子模块,用于根据所述粒子数量和所述各个粒子的位置,生成所述各个粒子;
    50.所述显示子模块,用于控制所述各个粒子按照所述像素取值变化方式动作,显示所述弹幕数据。
    51.可选地,所述像素取值变化方式获取子模块包括运动方向获取单元、运动速度获取单元和像素取值变化方式确定单元;
    52.所述运动方向获取单元,用于根据所述各个粒子的位置和预设的爆炸锚点的位置,获取所述各个粒子的运动方向;
    53.所述运动速度获取单元,用于获取所述各个粒子的运动速度和运动时长;
    54.所述像素取值变化方式确定单元,用于将所述各个粒子的所述运动方向、所述运动速度和所述运动时长,作为所述像素取值变化方式。
    55.第三方面,本技术提供了一种电子设备,包括:处理器、存储器和通信总线,其中,处理器和存储器通过通信总线完成相互间的通信;所述存储器,用于存储计算机程序;所述处理器,用于执行所述存储器中所存储的程序,实现第一方面所述的弹幕显示方法。
    56.第四方面,本技术提供了一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时实现第一方面所述的弹幕显示方法。
    57.本技术实施例提供的上述技术方案与现有技术相比具有如下优点:本技术实施例中,获取弹幕数据,其中,弹幕数据包括待显示弹幕或者已显示弹幕,获取像素参数,其中,像素参数包括像素位置,或者像素参数包括像素位置和像素取值变化方式,按照像素参数,显示弹幕数据。相对于现有技术中只是弹幕的颜色、字体发生改变,弹幕样式单一的情况,本技术通过按照像素参数,显示弹幕数据,从像素层面改变弹幕数据的显示方式,使弹幕数据的显示方式更加丰富。
    附图说明
    58.此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。
    59.图1为本技术实施例中弹幕显示方法的流程示意图;
    60.图2为本技术一个具体实施例中弹幕显示方法的流程示意图;
    61.图3为本技术一个具体实施例中弹幕显示方法的流程示意图;
    62.图4为本技术一个具体实施例中弹幕显示的效果示意图;
    63.图5为本技术一个具体实施例中弹幕显示的效果示意图;
    64.图6为本技术一个具体实施例中弹幕显示方法的流程示意图;
    65.图7为本技术一个具体实施例中弹幕显示方法的流程示意图;
    66.图8为本技术一个具体实施例中弹幕显示的效果示意图;
    67.图9为本技术实施例中弹幕显示装置的结构示意图;
    68.图10为本技术实施例中电子设备的结构示意图。
    具体实施方式
    69.为使本技术实施例的目的、技术方案和优点更加清楚,下面将结合本技术实施例
    中的附图,对本技术实施例中的技术方案进行清楚、完整地描述。
    70.本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
    71.本技术实施例中,提供了一种弹幕显示方法,该方法可以应用于服务器,当然,也可以应用于其他电子设备,例如终端(手机、平板电脑等)。本技术实施例中,以将该方法应用于终端为例进行说明。
    72.本技术实施例中,如图1所示,弹幕显示的方法流程主要包括:
    73.步骤101,获取弹幕数据。
    74.其中,弹幕数据包括待显示弹幕或者已显示弹幕。
    75.待显示弹幕,可以是指用户在终端的视频客户端上观看视频时输入至输入框内的内容,例如,这个画面太美啦,也可以是预设的数据,例如,01。
    76.已显示弹幕,是指在视频播放过程中,已经显示在视频界面上的弹幕。
    77.步骤102,获取像素参数。
    78.其中,像素参数包括像素位置,或者像素参数包括像素位置和像素取值变化方式。
    79.像素位置,可以是弹幕中各个像素点的位置,例如,弹幕为yyds(网络流行语,“永远滴神”的缩写,常被粉丝用来赞赏自己的偶像),将yyds画在60*15的画布(canvas,html5的一个新标签)上,然后把整个画布拆分成900个int类型(整数类型)的rgb像素点,获得yyds的覆盖区域中各个像素点的位置。
    80.像素取值变化方式,可以是弹幕中各个像素点的取值按照动画的效果进行取值变化的方式。其中,动画可以是用户选择的动画,也可以是预设的动画,例如,爆炸、飞出等。
    81.步骤103,按照像素参数,显示弹幕数据。
    82.按照像素参数,显示弹幕数据,可以是按照像素位置,显示待显示弹幕,例如,用户选择yyds弹幕模板,输入的待显示弹幕为“好可爱呀”,按照yyds的覆盖区域中各个像素点的位置,将“好可爱呀”拆分成各个字符“好”、“可”、“爱”、“呀”,并将“好”、“可”、“爱”、“呀”分散排列至各个像素点的位置,能够在视频界面上显示出一个较大的由“好”、“可”、“爱”、“呀”组成的yyds弹幕。使待显示弹幕的显示样式比较新颖,既能显示出待显示弹幕的具体内容,又能增强待显示弹幕的霸屏感,而且能够通过yyds等弹幕模板表达出用户观看时的心情。
    83.按照像素参数,显示弹幕数据,也可以是按照像素位置和像素取值变化方式,显示已显示弹幕,例如,用户点击视频界面上的已显示弹幕时,已显示弹幕是指在视频播放过程中,已经显示在视频界面上的弹幕,根据已显示弹幕中各个像素点的位置,生成对应数量的粒子,并使各个粒子按照预设的像素取值变化方式,朝四周爆炸散开。使已显示弹幕的显示样式比较新颖,当用户看到讨厌的弹幕时,能够通过点击弹幕使弹幕爆炸达到情绪发泄的效果。
    84.根据需要,按照像素参数,显示弹幕数据,还可以有其他方式,本技术并不对按照像素参数,显示弹幕数据的具体方式作出限制。
    85.本技术实施例中,获取弹幕数据,其中,弹幕数据包括待显示弹幕或者已显示弹幕,获取像素参数,其中,像素参数包括像素位置,或者像素参数包括像素位置和像素取值
    变化方式,按照像素参数,显示弹幕数据。相对于现有技术中只是弹幕的颜色、字体发生改变,弹幕样式单一的情况,本技术通过按照像素参数,显示弹幕数据,从像素层面改变弹幕数据的显示方式,使弹幕数据的显示方式更加丰富。
    86.一个具体实施例中,如图2所示,弹幕显示的方法流程主要包括:
    87.步骤201,获取弹幕数据。
    88.步骤202,获取弹幕模板。
    89.其中,弹幕模板包括字母、文字、表情中的至少一个。例如,弹幕模板可以是“yyds”,可以是“帅”,可以是弹幕模板包括字母时,弹幕模板可以由26个字母中至少一个字母排列组合形成。弹幕模板的种类丰富,用户的可选择项更多,提升用户的弹幕使用体验。
    90.弹幕模板,可以是和视频内容相关联,根据视频内容推荐对应的几种弹幕模板,由用户从这几种弹幕模板中进行选择,也可以是和用户的喜好相关联,根据用户对各个弹幕模板的使用频率,向用户推荐使用频率高的几种弹幕模板,由用户从这几种弹幕模板中进行选择。
    91.获取弹幕模板,可以是获取用户选择的弹幕模板,例如,弹幕设置界面中显示有至少两个弹幕模板,用户选择想要使用的弹幕模板。弹幕模板的样式也是可以设置的,弹幕模板的样式包括弹幕模板的大小、颜色中的至少一个,弹幕模板的样式还可以包括其他参数,本技术并不对弹幕模板的样式包括的参数作出限制。
    92.步骤203,拆分弹幕模板的覆盖区域,获得各个目标像素点。
    93.例如,弹幕模板为yyds,将yyds画在60*15的画布上,然后把整个画布拆分成900个int类型(整数类型)的rgb像素点,画布中yyds这四个字母的覆盖区域有实质像素点,画布中没有字母覆盖的位置无实质像素点,拆分yyds的覆盖区域,获得各个目标像素点,各个目标像素点即为各个实质像素点。
    94.步骤204,获取各个目标像素点的位置,作为像素位置,将像素位置作为像素参数。
    95.步骤205,按照像素参数,显示弹幕数据。
    96.按照各个目标像素点的位置,显示弹幕数据,可以是将用户在终端的视频客户端上观看视频时输入至输入框内的内容,显示在各个目标像素点的位置上,例如,用户输入的待显示弹幕为“好可爱呀”,弹幕模板为yyds,按照yyds的覆盖区域中各个目标像素点的位置,将“好可爱呀”显示在各个目标像素点的位置上。使待显示弹幕的显示样式比较新颖,既能显示出待显示弹幕的具体内容,又能增强待显示弹幕的霸屏感,而且能够通过yyds等弹幕模板表达出用户观看时的心情。
    97.终端的视频客户端中视频播放界面下方显示有输入框,输入框一侧显示有常用弹幕语句的按钮,点击常用弹幕语句的按钮,显示常用弹幕语句的界面,用户可以通过点击常用弹幕语句,将常用弹幕语句作为弹幕数据进行显示,点击的常用弹幕语句即为预设的数据。常用弹幕语句的界面上显示有返回按钮,通过点击返回按钮,显示输入框,用户可以通过在输入框中输入弹幕数据。
    98.按照各个目标像素点的位置,显示弹幕数据,也可以是将预设的数据显示在各个目标像素点的位置上,例如,预设的数据为01,弹幕模板为yyds,按照yyds的覆盖区域中各个目标像素点的位置,将“01”显示在各个目标像素点的位置上。使待显示弹幕的显示样式
    比较新颖,既能增强待显示弹幕的霸屏感,又能通过yyds等弹幕模板表达出用户观看时的心情。
    99.一个具体实施例中,如图3所示,弹幕显示的方法流程主要包括:
    100.步骤301,获取弹幕数据。
    101.步骤302,获取弹幕模板。
    102.其中,弹幕模板包括字母、文字、表情中的至少一个。例如,弹幕模板可以是“yyds”,可以是“帅”,可以是弹幕模板包括字母时,弹幕模板可以由26个字母中至少一个字母排列组合形成。弹幕模板的种类丰富,用户的可选择项更多,提升用户的弹幕使用体验。
    103.获取弹幕模板,可以是获取用户选择的弹幕模板,例如,弹幕设置界面中显示有至少两个弹幕模板,用户选择想要使用的弹幕模板。弹幕模板的样式也是可以设置的,弹幕模板的样式包括弹幕模板的大小、颜色中的至少一个,弹幕模板的样式还可以包括其他参数,本技术并不对弹幕模板的样式包括的参数作出限制。
    104.步骤303,拆分弹幕模板的覆盖区域,获得各个目标像素点。
    105.例如,弹幕模板为yyds,将yyds画在60*15的画布上,然后把整个画布拆分成900个int类型(整数类型)的rgb像素点,画布中yyds这四个字母的覆盖区域有实质像素点,画布中没有字母覆盖的位置无实质像素点,拆分yyds的覆盖区域,获得各个目标像素点,各个目标像素点即为各个实质像素点。
    106.步骤304,获取各个目标像素点的位置。
    107.步骤305,拆分弹幕数据,获得各个字符。
    108.弹幕数据为待显示弹幕时,是指用户选择用弹幕模板显示的待显示弹幕,可以是指用户在终端的视频客户端上观看视频时输入至输入框内的内容,例如,这个画面太美啦,也可以是预设的数据,例如,01。
    109.在弹幕数据为一条弹幕语句时,可以直接拆分弹幕数据,获得各个字符,分散排列各个字符至各个目标像素点的位置。
    110.在弹幕数据为至少两条弹幕语句时,可以先将弹幕数据按照标点符号进行分句,划分成各个弹幕语句,再拆分各个弹幕语句,获得各个字符,分散排列各个字符至各个目标像素点的位置,使每个弹幕语句都以弹幕模板的形式进行显示。
    111.拆分弹幕数据,获得各个字符,可以是拆分用户在终端的视频客户端上观看视频时输入至输入框内的内容,获得各个字符,例如,用户输入的待显示弹幕为“好可爱呀”,将“好可爱呀”拆分成各个字符“好”、“可”、“爱”、“呀”。
    112.拆分弹幕数据,获得各个字符,也可以是拆分预设的数据,获得各个字符,例如,预设的数据为“01”,将“01”拆分成各个字符“0”、“1”。
    113.步骤306,分散排列各个字符至各个目标像素点的位置。
    114.分散排列各个字符至各个目标像素点的位置,可以是将用户在终端的视频客户端上观看视频时输入至输入框内的内容拆分获得的各个字符,分散排列至各个目标像素点的位置,例如,用户输入的待显示弹幕为“好可爱呀”,将“好可爱呀”拆分成各个字符“好”、“可”、“爱”、“呀”,弹幕模板为yyds,按照yyds的覆盖区域中各个目标像素点的位置,各个目标像素点即为各个实质像素点,将“好”、“可”、“爱”、“呀”分散排列至各个实质像素点的位
    置,能够在视频界面上显示出一个较大的由“好”、“可”、“爱”、“呀”组成的yyds弹幕。分散排列,是指从左向右、从上向下,将各个字符排列至各个目标像素点的位置。使待显示弹幕的显示样式比较新颖,既能显示出待显示弹幕的具体内容,又能增强待显示弹幕的霸屏感,而且能够通过yyds等弹幕模板表达出用户观看时的心情。
    115.分散排列各个字符至各个目标像素点的位置,也可以是将预设的数据拆分获得的各个字符,分散排列至各个目标像素点的位置,例如,预设的数据为“01”,将“01”拆分成各个字符“0”、“1”,弹幕模板为yyds,按照yyds的覆盖区域中各个目标像素点的位置,各个目标像素点即为各个实质像素点,将“0”、“1”分散排列至各个实质像素点的位置,能够在视频界面上显示出一个较大的由“0”、“1”组成的yyds弹幕。使待显示弹幕的显示样式比较新颖,既能增强待显示弹幕的霸屏感,又能通过yyds等弹幕模板表达出用户观看时的心情。
    116.一个具体实施例中,如图4和图5所示,为弹幕显示的效果示意图。图4中,弹幕模板为yyds,用户输入的待显示弹幕为“快乐奇巴布”,将“快乐奇巴布”拆分成各个字符“快”、“乐”、“奇”、“巴”、“布”,按照yyds的覆盖区域中各个目标像素点的位置,各个目标像素点即为各个实质像素点,将“快”、“乐”、“奇”、“巴”、“布”分散排列至各个实质像素点的位置,能够在视频界面上显示出一个较大的由“快”、“乐”、“奇”、“巴”、“布”组成的yyds弹幕。图5中,弹幕模板为一个简笔画人物送心的表情,待显示弹幕为预设的数据“01”,将“01”拆分成各个字符“0”、“1”,按照简笔画人物送心的表情的覆盖区域中各个目标像素点的位置,各个目标像素点即为各个实质像素点,将“0”、“1”分散排列至各个实质像素点的位置,能够在视频界面上显示出一个较大的由“0”、“1”组成的简笔画人物送心的表情的弹幕。
    117.一个具体实施例中,如图6所示,弹幕显示的方法流程主要包括:
    118.步骤601,获取弹幕数据。
    119.步骤602,获取弹幕数据的位图,其中,弹幕数据为已显示弹幕。
    120.位图(bitmap),亦称为点阵图像或栅格图像,是由称作像素的单个点组成的,这些点可以进行不同的排列和染色。
    121.获取弹幕数据的位图,可以是将弹幕数据的视图绘制到canvas(画布,html5的一个新标签)上,并取出canvas的bitmap(位图)像素矩阵。弹幕数据的视图,是指终端的视频客户端上显示有已显示弹幕的视频播放画面中,弹幕数据的文本控件。能够获得弹幕数据的位图中每个像素点的颜色和位置。
    122.在视频播放画面上只有一条已显示弹幕时,弹幕数据为这条已显示弹幕。
    123.在视频播放画面上有至少两条已显示弹幕时,获取用户进行选择操作的已显示弹幕,将用户进行选择操作的已显示弹幕作为弹幕数据。其中,选择操作可以是点击操作,可以是框选操作。用户进行选择操作的已显示弹幕可以是一条弹幕语句,也可以是至少两条弹幕语句。分别对每条弹幕语句,执行步骤603至606的操作。
    124.步骤603,获取位图中各个像素点的位置,作为像素位置。
    125.步骤604,获取像素取值变化方式。
    126.获取像素取值变化方式,可以是获取用户选择的动画,例如,动画设置界面中显示有至少两个动画,用户选择想要使用的动画,也可以是获取预设的动画,例如,预设的动画为粒子爆炸,无需用户选择,默认使用粒子爆炸动画。动画的样式可以有多种,例如,粒子爆炸,飞出等。
    127.步骤605,将像素位置和像素取值变化方式,作为像素参数。
    128.步骤606,按照像素参数,显示弹幕数据。
    129.具体地,按照像素参数,显示弹幕数据,包括:根据像素位置和预设的粒子尺寸信息,获取位图对应的粒子数量以及各个粒子的位置,其中,粒子是由至少一个像素点组成;根据粒子数量和各个粒子的位置,生成各个粒子;控制各个粒子按照像素取值变化方式动作,显示弹幕数据。
    130.粒子的形状为圆形时,预设的粒子尺寸信息可以为粒子的半径。
    131.例如,弹幕数据为用户点击的已显示弹幕“演技太差啦”,将“演技太差啦”的视图绘制到canvas(画布)上,并取出canvas的bitmap(位图)像素矩阵,根据预设的圆形粒子半径像素大小,以及“演技太差啦”的位图中各个像素点的位置,计算出需要生成的粒子数量以及各个粒子的位置,各个粒子的位置记为粒子的圆心,用户选择的动画为粒子爆炸,根据预设的爆炸锚点和各个粒子的圆心,确定各个粒子的运动方向,然后根据随机生成的速度移动一定的时长,最后生成的粒子各自向各自方向移动就可以形成粒子朝四周爆炸散开的爆炸效果。使已显示弹幕的显示样式比较新颖,当用户看到讨厌的弹幕时,能够通过点击弹幕使弹幕生成动画达到情绪发泄的效果。
    132.一个具体实施例中,如图7所示,弹幕显示的方法流程主要包括:
    133.步骤701,获取弹幕数据。
    134.步骤702,获取弹幕数据的位图,其中,弹幕数据为已显示弹幕。
    135.位图(bitmap),亦称为点阵图像或栅格图像,是由称作像素的单个点组成的,这些点可以进行不同的排列和染色。
    136.获取弹幕数据的位图,可以是将已显示弹幕的视图绘制到canvas(画布,html5的一个新标签)上,并取出canvas的bitmap(位图)像素矩阵。能够获得弹幕数据的位图中每个像素点的颜色和位置。
    137.步骤703,获取位图中各个像素点的位置,作为像素位置。
    138.步骤704,根据像素位置和预设的粒子尺寸信息,获取位图对应的粒子数量以及各个粒子的位置,其中,粒子是由至少一个像素点组成。
    139.步骤705,根据各个粒子的位置和预设的爆炸锚点的位置,获取各个粒子的运动方向。
    140.各个粒子的运动方向,是指视觉效果中各个粒子的运动方向,实质上,各个粒子的运动方向是由弹幕中各个像素点的取值按照动画的效果进行取值变化体现出来的。
    141.当动画为粒子爆炸时,各个粒子的位置记为粒子的圆心,根据各个粒子的位置和预设的爆炸锚点的位置,获取各个粒子的运动方向,可以是各个粒子的运动方向为预设的爆炸锚点指向粒子的圆心的方向。
    142.步骤706,获取各个粒子的运动速度和运动时长。
    143.各个粒子的运动速度,可以是预设值,也可以是随机生成的数值。运动时长,可以是预设值,也可以是随机生成的数值。各个粒子的运动速度和运动时长,是指视觉效果中各个粒子的运动速度和运动时长,实质上,各个粒子的运动速度和运动时长是由弹幕中各个像素点的取值按照动画的效果进行取值变化体现出来的。
    144.步骤707,将各个粒子的运动方向、运动速度和运动时长,作为像素取值变化方式。
    145.步骤708,将像素位置和像素取值变化方式,作为像素参数。
    146.步骤709,按照像素参数,显示弹幕数据。
    147.具体地,按照像素参数,显示弹幕数据,包括:根据像素位置和预设的粒子尺寸信息,获取位图对应的粒子数量以及各个粒子的位置,其中,粒子是由至少一个像素点组成;根据粒子数量和各个粒子的位置,生成各个粒子;控制各个粒子按照像素取值变化方式动作,显示弹幕数据。
    148.例如,弹幕数据为用户点击的已显示弹幕“演技太差啦”,将“演技太差啦”的视图绘制到canvas(画布)上,并取出canvas的bitmap(位图)像素矩阵,根据预设的圆形粒子半径像素大小,以及“演技太差啦”的位图中各个像素点的位置,计算出需要生成的粒子数量以及各个粒子的位置,各个粒子的位置记为粒子的圆心,用户选择的动画为粒子爆炸,根据预设的爆炸锚点和各个粒子的圆心,确定各个粒子的运动方向,然后根据随机生成的速度移动一定的时长,最后生成的粒子各自向各自方向移动就可以形成粒子朝四周爆炸散开的爆炸效果。使已显示弹幕的显示样式比较新颖,当用户看到讨厌的弹幕时,能够通过点击弹幕使弹幕爆炸达到情绪发泄的效果。
    149.一个具体实施例中,如图8所示,为弹幕显示的效果示意图。图8中,弹幕数据为由“哈”、“ha”组成的xswl形状的已显示弹幕,“x”已经在视频界面外,视频界面中显示的为“swl”,xswl为网络用语,是“笑死我了”的缩写,用户点击这个由“哈”、“ha”组成的xswl形状的已显示弹幕,根据已显示弹幕中各个像素点的位置,生成对应数量的粒子,并使各个粒子按照预设的像素取值变化方式,朝四周爆炸散开。使已显示弹幕的显示样式比较新颖,当用户看到讨厌的弹幕时,能够通过点击弹幕使弹幕爆炸达到情绪发泄的效果。
    150.基于同一构思,本技术实施例中提供了一种弹幕显示装置,该装置的具体实施可参见方法实施例部分的描述,重复之处不再赘述。如图9所示,该装置主要包括:
    151.第一获取模块901,用于获取弹幕数据,其中,所述弹幕数据包括待显示弹幕或者已显示弹幕;
    152.第二获取模块902,用于获取像素参数,其中,所述像素参数包括像素位置,或者所述像素参数包括所述像素位置和像素取值变化方式;
    153.处理模块903,用于按照所述像素参数,显示所述弹幕数据。
    154.可选地,所述第二获取模块包括模板获取子模块、第一拆分子模块和位置获取子模块;
    155.所述模板获取子模块,用于获取弹幕模板;
    156.所述第一拆分子模块,用于拆分所述弹幕模板的覆盖区域,获得各个目标像素点;
    157.所述位置获取子模块,用于获取所述各个目标像素点的位置,作为所述像素位置,将所述像素位置作为所述像素参数。
    158.可选地,所述处理模块包括第二拆分子模块和分散排列子模块;
    159.所述第二拆分子模块,用于拆分所述弹幕数据,获得各个字符;
    160.所述分散排列子模块,用于分散排列所述各个字符至所述各个目标像素点的位置。
    161.可选地,所述弹幕模板包括字母、文字、表情中的至少一个。
    162.可选地,所述第二获取模块包括位图获取子模块、像素位置获取子模块、像素取值
    变化方式获取子模块和像素参数确定子模块;
    163.所述位图获取子模块,用于获取所述弹幕数据的位图,其中,所述弹幕数据为已显示弹幕;
    164.所述像素位置获取子模块,用于获取所述位图中各个像素点的位置,作为所述像素位置;
    165.所述像素取值变化方式获取子模块,用于获取所述像素取值变化方式;
    166.所述像素参数确定子模块,用于将所述像素位置和所述像素取值变化方式,作为所述像素参数。
    167.可选地,所述处理模块包括粒子获取子模块、生成子模块和显示子模块;
    168.所述粒子获取子模块,用于根据所述像素位置和预设的粒子尺寸信息,获取所述位图对应的粒子数量以及各个粒子的位置,其中,所述粒子是由至少一个像素点组成;
    169.所述生成子模块,用于根据所述粒子数量和所述各个粒子的位置,生成所述各个粒子;
    170.所述显示子模块,用于控制所述各个粒子按照所述像素取值变化方式动作,显示所述弹幕数据。
    171.可选地,所述像素取值变化方式获取子模块包括运动方向获取单元、运动速度获取单元和像素取值变化方式确定单元;
    172.所述运动方向获取单元,用于根据所述各个粒子的位置和预设的爆炸锚点的位置,获取所述各个粒子的运动方向;
    173.所述运动速度获取单元,用于获取所述各个粒子的运动速度和运动时长;
    174.所述像素取值变化方式确定单元,用于将所述各个粒子的所述运动方向、所述运动速度和所述运动时长,作为所述像素取值变化方式。
    175.基于同一构思,本技术实施例中还提供了一种电子设备,如图10所示,该电子设备主要包括:处理器1001、存储器1002和通信总线1003,其中,处理器1001和存储器1002通过通信总线1003完成相互间的通信。其中,存储器1002中存储有可被处理器1001执行的程序,处理器1001执行存储器1002中存储的程序,实现如下步骤:
    176.获取弹幕数据,其中,弹幕数据包括待显示弹幕或者已显示弹幕;获取像素参数,其中,像素参数包括像素位置,或者像素参数包括像素位置和像素取值变化方式;按照像素参数,显示弹幕数据。
    177.上述电子设备中提到的通信总线1003可以是外设部件互连标准(peripheral component interconnect,简称pci)总线或扩展工业标准结构(extended industry standard architecture,简称eisa)总线等。该通信总线1003可以分为地址总线、数据总线、控制总线等。为便于表示,图10中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
    178.存储器1002可以包括随机存取存储器(random access memory,简称ram),也可以包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。可选地,存储器还可以是至少一个位于远离前述处理器1001的存储装置。
    179.上述的处理器1001可以是通用处理器,包括中央处理器(central processing unit,简称cpu)、网络处理器(network processor,简称np)等,还可以是数字信号处理器
    (digital signal processing,简称dsp)、专用集成电路(application specific integrated circuit,简称asic)、现场可编程门阵列(field-programmable gate array,简称fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
    180.在本技术的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有计算机程序,当该计算机程序在计算机上运行时,使得计算机执行上述实施例中所描述的弹幕显示方法。
    181.在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。该计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行该计算机指令时,全部或部分地产生按照本技术实施例所述的流程或功能。该计算机可以是通用计算机、专用计算机、计算机网络或者其他可编程装置。该计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,计算机指令从一个网站站点、计算机、服务器或者数据中心通过有线(例如同轴电缆、光纤、数字用户线(dsl))或无线(例如红外、微波等)方式向另外一个网站站点、计算机、服务器或数据中心进行传输。该计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。该可用介质可以是磁性介质(例如软盘、硬盘、磁带等)、光介质(例如dvd)或者半导体介质(例如固态硬盘)等。
    182.需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
    ……”
    限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
    183.以上所述仅是本发明的具体实施方式,使本领域技术人员能够理解或实现本发明。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所申请的原理和新颖特点相一致的最宽的范围。
    转载请注明原文地址:https://tc.8miu.com/read-4206.html

    最新回复(0)