一种显示弹幕消息的方法和装置与流程

文档序号:14785705发布日期:2018-06-27 22:29阅读:266来源:国知局
一种显示弹幕消息的方法和装置与流程

本发明涉及计算机技术领域,尤其涉及一种显示弹幕消息的方法和装置。



背景技术:

目前,在观看视频或者网络直播的过程中,为了增强趣味性和互动性,很多用户都会发送弹幕消息。现有技术中发送和显示弹幕消息的过程包括:每个用户在自己的UE(用户设备,User Equipment)中输入弹幕消息内容,UE将用户的弹幕消息发送到服务器。UE接收服务器发送的所有用户的弹幕消息,并解析显示在显示单元上。

然而,随着弹幕数量的增加,尤其对于热门视频和热门直播,每秒的弹幕消息数量就有可能非常庞大,那么就会造成至少以下两个问题:

1、解析和显示大量弹幕造成UE设备资源过分损耗。2、目标用户发送的弹幕消息可能被淹没在数量庞大的弹幕消息中。



技术实现要素:

本发明实施例提供了一种显示弹幕消息的方法和装置,用于降低显示弹幕对设备资源的消耗。

第一方面,本发明提供了一种显示弹幕的方法,包括:

接收服务器发送的N个弹幕消息,其中,N为正整数;

基于目标用户的身份标识,从所述N个弹幕消息中提取出由所述目标用户发送的K个第一目标弹幕消息,其中,K为自然数;

当所述第一目标弹幕消息的数量K小于预设数量T时,从所述K个第一目标弹幕消息以外的所述弹幕消息中确定出M个第二目标弹幕消息,其中T为正整数,M为自然数;

显示待显示弹幕消息,所述待显示弹幕消息包括所述K个第一目标弹幕消息和所述M个第二目标弹幕消息;所述待显示弹幕消息的数量K+M≤T。

可选的,显示待显示弹幕消息,包括:

针对每个所述待显示弹幕消息执行:

判断用于显示弹幕消息的所有弹道中是否均包含第一弹幕消息;用户设备当前显示于显示单元上的当前弹幕消息为所述弹道中包含的所述第一弹幕消息;

当存在不包含第一弹幕消息的所述弹道时,将不包含第一弹幕消息的所述弹道确定为预选弹道;

从所述预先弹道中为所述待显示弹幕消息确定出目标弹道,并将所述待显示弹幕消息添加到所述目标弹道中,进而显示所述待显示弹幕消息。

可选的,在判断用于显示弹幕消息的所有弹道中是否均包含第一弹幕消息之后,还包括:

当所有弹道均包含第一弹幕消息时,获得每个所述当前弹幕消息的末尾在所述显示单元上的末尾显示坐标;

基于每个所述当前弹幕消息的末尾显示坐标,获得所述待显示弹幕消息与每个所述当前弹幕消息之间的追击时间;

确定最长的所述追击时间对应的所述弹道为所述目标弹道。

可选的,所述方法还包括:

判断所述第一弹幕消息的末尾显示坐标是否为显示结束位置的坐标;

当所述第一弹幕消息的末尾显示坐标为所述显示结束位置的坐标时,从对应的所述弹道中删除末尾显示坐标为所述显示结束位置的坐标的所述第一弹幕消息。

可选的,所述目标用户为所述用户设备的用户,或者由所述用户设备的用户指定的用户。

第二方面,本发明提供了一种显示弹幕消息的装置,包括:

接收模块,用于接收服务器发送的N个弹幕消息,其中,N为正整数;

提取模块,用于基于目标用户的身份标识,从所述N个弹幕消息中提取出由所述目标用户发送的K个第一目标弹幕消息,其中,K为自然数;

确定模块,用于当所述第一目标弹幕消息的数量K小于预设数量T时,从所述K个第一目标弹幕消息以外的所述弹幕消息中确定出M个第二目标弹幕消息,其中T为正整数,M为自然数;

显示模块,用于显示待显示弹幕消息,所述待显示弹幕消息包括所述K个第一目标弹幕消息和所述M个第二目标弹幕消息;所述待显示弹幕消息的数量K+M≤T。

可选的,所述显示单元用于针对每个所述待显示弹幕消息执行:判断用于显示弹幕消息的所有弹道中是否均包含第一弹幕消息;用户设备当前显示于显示单元上的当前弹幕消息为所述弹道中包含的所述第一弹幕消息;当存在不包含第一弹幕消息的所述弹道时,将不包含第一弹幕消息的所述弹道确定为预选弹道;从所述预先弹道中为所述待显示弹幕消息确定出目标弹道,并将所述待显示弹幕消息添加到所述目标弹道中,进而显示所述待显示弹幕消息。

可选的,所述显示单元还用于当所有弹道均包含第一弹幕消息时,当所有弹道均包含第一弹幕消息时,获得每个所述当前弹幕消息的末尾在所述显示单元上的末尾显示坐标;基于每个所述当前弹幕消息的末尾显示坐标,获得所述待显示弹幕消息与每个所述当前弹幕消息之间的追击时间;确定最长的所述追击时间对应的所述弹道为所述目标弹道。

可选的,所述装置还包括:

判断模块,用于判断所述第一弹幕消息的末尾显示坐标是否为显示结束位置的坐标;

删除模块,用于当所述第一弹幕消息的末尾显示坐标为所述显示结束位置的坐标时,从对应的所述弹道中删除末尾显示坐标为所述显示结束位置的坐标的所述第一弹幕消息。

可选的,所述目标用户为所述用户设备的用户,或者由所述用户设备的用户指定的用户。

本申请实施例中的上述一个或多个技术方案,至少具有如下一种或多种技术效果:

在本发明实施例的技术方案中,接收服务器发送的N个弹幕消息,然后基于目标用户的身份标识,从N个弹幕消息中确定出由目标用户发送的K个第一目标弹幕消息,进一步,当第一目标弹幕消息的数量K小于预设数量T时,从第一目标弹幕消息以外的弹幕消息中确定出M个第二目标弹幕消息,显示包括K个第一目标弹幕消息和M个第二目标弹幕消息的待显示弹幕消息,待显示弹幕消息的数量K+M≤T。由于从N个弹幕消息中提取出了由目标用户发送的K个第一目标弹幕消息,并将K个第一目标弹幕消息作为待显示弹幕消息,K为自然数,所以当K>1时就避免了目标用户发送的弹幕消息被大量弹幕消息所淹没,确保第一目标弹幕消息能够被显示。同时,由于待显示弹幕消息的数量K+M≤T,因此降低了UE所需处理和显示的弹幕消息数量,故而降低了弹幕对设备资源的消耗。

附图说明

图1为本发明实施例中显示弹幕消息的方法流程图;

图2为本发明实施例中显示弹幕消息的逻辑流程图;

图3a-图3b为本发明实施例中弹道的示意图;

图4为本发明实施例中显示弹幕消息的装置示意图。

具体实施方式

本发明实施例提供了一种显示弹幕消息的方法和装置,用于降低显示弹幕对设备资源的消耗。

为了解决上述技术问题,本发明提供的技术方案总体思路如下:

在本发明实施例的技术方案中,接收服务器发送的N个弹幕消息,然后基于目标用户的身份标识,从N个弹幕消息中确定出由目标用户发送的K个第一目标弹幕消息,进一步,当第一目标弹幕消息的数量K小于预设数量T时,从第一目标弹幕消息以外的弹幕消息中确定出M个第二目标弹幕消息,显示包括K个第一目标弹幕消息和M个第二目标弹幕消息的待显示弹幕消息,待显示弹幕消息的数量K+M≤T。由于从N个弹幕消息中提取出了由目标用户发送的K个第一目标弹幕消息,并将K个第一目标弹幕消息作为待显示弹幕消息,K为自然数,所以当K>1时就避免了目标用户发送的弹幕消息被大量弹幕消息所淹没,确保第一目标弹幕消息能够被显示。同时,由于待显示弹幕消息的数量K+M≤T,因此降低了UE所需处理和显示的弹幕消息数量,故而降低了弹幕对设备资源的消耗。

下面通过附图以及具体实施例对本发明技术方案做详细的说明,应当理解本申请实施例以及实施例中的具体特征是对本申请技术方案的详细的说明,而不是对本申请技术方案的限定,在不冲突的情况下,本申请实施例以及实施例中的技术特征可以相互组合。

本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。

本发明第一方面提供了一种显示弹幕消息的方法,请参考图1,为本发明实施例显示弹幕消息的方法流程图。该方法包括:

S101:接收服务器发送的N个弹幕消息;

S102:基于目标用户的身份标识,从所述N个弹幕消息中提取出由所述目标用户发送的K个第一目标弹幕消息;

S103:当所述第一目标弹幕消息的数量K小于预设数量T时,从所述K个第一目标弹幕消息以外的所述弹幕消息中确定出M个第二目标弹幕消息;

S104:显示待显示弹幕消息。

如图2所示,图2示出了一显示弹幕消息的逻辑流程图。具体来讲,为了显示弹幕,本发明实施例中的UE在显示弹幕之前,需要初始化弹幕画布容器。

具体来讲,首先,将弹幕画布容器的宽和高设置为弹幕显示区域的宽和高。在具体实现过程中,如果弹幕可以在显示单元的任何区域进行显示,即弹幕显示区域为整个显示区域,则弹幕画布容器的宽和高设置为显示单元的宽和高;或者弹幕可以在播放器显示区域的任何区域进行显示,即弹幕显示区域为播放器显示区域,则弹幕画布容器的宽和高设置为显示单元的宽和高,则弹幕画布容器的宽和高设置为播放器显示区域的宽和高。在本发明实施例中,令w表示弹幕显示区域的宽,令h表示弹幕显示区域的高。

接下来,设置弹道高度h1。弹道用于容纳弹幕元素,而弹幕元素用于容纳弹幕消息。弹道高度例如1cm,0.5cm、0.8cm等,本发明所属领域的普通技术人员可以根据实际设置弹道高度h1。进一步,基于弹道高度,确定弹道数量。例如可以通过

n=Math.floor(h/h1);

来获得弹道数量。其中,n为弹道数量,为Math.floor(h/h1)向下取整的正整数。例如Math.floor(h/h1)计算结果为10.5,向下取整,获得n=10。

在本发明实施例中,弹道可以纵向排布在弹幕显示区域中,如图3a所示,进而弹幕消息横向显示;或者弹道横向排布在弹幕显示区域中,如图3b所示,进而弹幕消息纵向显示,本发明不做具体限制。为了方面描述,后续以图3a所示的纵向排布进行介绍。由于n个弹道依次首尾相连排布在弹幕显示区域中,因此每个弹道的纵坐标就为

yi=(i-1)*h1,i=1,2,…,n。 公式(1)

其中,公式(1)中的yi表示第i弹道的纵坐标。需要说明的是,本发明以弹幕显示区域的左上角为坐标原点,弹幕消息显示方向为横坐标方向,弹道排布方向为纵坐标方向,弹道上边缘的纵坐标作为弹道的纵坐标。

将n个弹道按顺序存储到弹道数组dandaolist中,完成图2中“初始化弹道数组”。进一步,将弹道数组添加到弹幕画布容器中,并将每个弹道的纵坐标也添加到弹幕画布容器中。对于弹道的横坐标,本发明实施例将默认为0,即弹道基于弹幕显示区域左边缘对齐。在具体实现过程中,本发明所属领域的普通技术人员也可以根据实际设置弹道横坐标,本发明不做具体限制。

完成弹幕画布容器和弹道数组的初始化后,UE就可以接收服务器发送的所有用户的弹幕消息了。因此,S101中,接收服务器发送的N个弹幕消息,N为正整数。在本发明实施例中,弹幕消息为多个接入服务器的用户发送的弹幕消息。接收N个弹幕消息后,UE将N个弹幕消息存储到用于存储服务器发送的弹幕消息的数组中,在本发明实施例中,将用于存储服务器发送的弹幕消息的数组命名为datalist数组。

在本发明实施例中,为了降低UE的设备消耗,UE将按照预设周期接收服务器发送的弹幕消息。UE设定延时器,并将延时器时间设置为预设周期。当延时器延时结束时,触发UE接收一次服务器发送的弹幕消息。如图2中的“延时器触发”。预设周期例如为30毫秒。

接收完成后,UE判断本周期接收到的弹幕消息数量是否大于预设数量T。其中,预设数量为预先设置的渲染在UE弹幕显示区域中的最大弹幕消息数量,例如10或15等。如果接收到的弹幕消息的数量N小于或等于预设数量T,即N≤T,则表示弹幕消息数量较小,因此可以选择将所有弹幕消息显示在弹幕显示区域中,也可以仅显示部分弹幕消息,本发明不做具体限制。当然,当N≤T时,还可以进一步判断“弹幕消息的数量是否等于0”,进而在弹幕消息数量N=0时结束后续操作,以免进一步消耗UE设备资源。

而当弹幕消息的数量大于预设数量,即N>T时,为了避免目标用户的弹幕消息被大量弹幕淹没,接下来“过滤弹幕消息,形成待显示弹幕消息数组”。首先,S102中,将基于目标用户的身份标识提取出目标用户发送的K个第一目标弹幕消息。其中,K为自然数,如0、3或7等。

具体来讲,在本发明实施例中,目标用户可以为UE对应的用户,例如用户的所有者,或者在UE中登录账号的用户等。或者,目标用户还可以该UE对应的用户指定的用户。例如用户A在UE中登录自己的账号,成为UE对应的用户,然后指定关注自己的好友用户B和好友用户C的弹幕消息,那么用户B和用户C就为目标用户。本发明实施例中的身份信息例如为用户的账号,ID(身份,IDentification)号码,或者用户使用的UE的MAC(媒体访问控制,Media Access Control)地址等,本发明不做具体限制。第一目标弹幕消息为目标用户发送的弹幕消息。

服务器发送的弹幕消息包括弹幕消息的文本和每个弹幕消息对应的用户身份标识。例如,弹幕消息具体为“ID:8954226:好开心!”,表示ID号码为8954226的用户发送了文本为“好开心”的弹幕消息。因此,UE根据目标用户的身份标识,对每条弹幕消息的身份标识进行匹配。如果弹幕消息的身份标识与目标用户的身份标识匹配,则该条弹幕消息由目标用户发送,为第一目标弹幕消息。反之,如果弹幕消息的身份标识与目标用户的身份标识不匹配,则该条弹幕消息由目标用户以外的其他用户发送,不为第一目标弹幕消息。由此,提取出所有目标用户发送的第一目标弹幕消息。

然后,判断第一目标弹幕消息的数量K是否大于等于预设数量T。如果K≥T,则将K个第一目标弹幕消息存储在用于存储待显示弹幕消息的数组中,在本发明实施例中,将用于存储待显示弹幕消息的数组命名为newdatalist数组。

当然,如果K>T,则可以进一步筛选T个第一目标弹幕消息存储到newdatalist数组。对于进一步筛选的方式本发明实施例就不再详细介绍了。

而如果K<T时,为了充分利用渲染资源,则在S103中,进一步从datalist中第一目标弹幕消息以外的弹幕消息中选择出M弹幕消息作为第二目标弹幕消息。其中,M为自然数。并且,由于N为正整数,因此K=0时,M≠0。

具体来讲,本发明实施例中的第二目标弹幕消息为目标用户以外的其他用户发送的,且将要在UE中显示的弹幕消息。在本发明实施例中,M≤T-K。例如,预设数量T=10,第一目标弹幕消息的数量K=2,如果第一目标弹幕消息以外的弹幕消息大于等于

T1=T-K=10-2=8, 公式(2)

则选择的第二目标弹幕消息数量M=T1,最后第一目标弹幕消息和第二目标弹幕消息组成的待显示弹幕消息的数量K+M=T。如果第一目标弹幕消息以外的弹幕消息小于T1,则剩余的全部弹幕消息均可以确定为第二目标弹幕消息,那么最后第一目标弹幕消息和第二目标弹幕消息组成的待显示弹幕消息的数量K+M<T。

在确定第二目标弹幕消息时,可以通过随机方式选择M个弹幕消息作为第二目标弹幕消息。或者,根据每个弹幕消息对应的用户的身份标识,选择与目标用户关联度较高的用户的弹幕消息为第二目标弹幕消息。举例来说,选择与目标用户具有好友关系的用户发送的弹幕消息作为第二目标弹幕消息,或者选择与目标用户关注了相同网络主播的用户发送的弹幕消息作为第二目标弹幕消息等。

将确定出的M个第二目标弹幕消息也存储在newdatalist中,进而使第二目标弹幕消息也成为待显示弹幕消息。

另外,如果S102中,基于目标用户的身份标识提取出的第一目标弹幕消息为零个,即K=0时,则表示本次预设周期内接收到的N个弹幕消息中不包括目标用户发送的弹幕消息,因此只需确定出M的第二目标弹幕消息。如果弹幕消息的数量不足T,则确定全部弹幕消息为第二目标弹幕消息。

由此可见,在具体实现过程中,newdatalist中的待显示弹幕消息具体由第一目标弹幕消息(K≥T时),或第二目标弹幕消息(K=0时),或者第一目标弹幕消息和第二目标弹幕消息(1<K<T时)组成。无论具体包括第一目标弹幕消息和/或第二目标弹幕消息,在弹幕消息数量大于预设数量T时,newdatalist中的待显示弹幕消息的数量都等于或小于预设数量T。而当弹幕消息数量小于等于预设数量T时,newdatalist中的待显示弹幕消息的数量则为弹幕消息的数量。

确定出数量较少的待显示弹幕消息后,根据待显示弹幕消息初始化弹幕元素。在本发明实施例中,弹幕元素用于容置弹幕消息。具体来讲,首先,根据待显示弹幕消息的数量,创建与待显示弹幕消息数量一致的弹幕元素。本发明实施例中的弹幕元素可以包括文本和背景,也可以仅包括文本,本发明不做具体限制。创建出弹幕元素后,将待显示弹幕消息的文本一一导入每个弹幕元素的文本中。

另外,还需要设置每个弹幕的显示时间,即每个弹幕元素在弹幕显示区域中显示的时长。设置完成后,完成弹幕元素初始化。

然后S104中,在弹幕显示区域中显示待显示弹幕消息。

在本申请实施例中,显示弹幕消息的方式有多种。下面将介绍其中两种,在具体实现过程中,包括但不限于以下两种。

第一种:

在第一种方式中,针对每一个待显示弹幕消息执行以下步骤:

判断用于显示弹幕消息的所有弹道中是否均包含第一弹幕消息;用户设备当前显示于显示单元上的当前弹幕消息为所述弹道中包含的所述第一弹幕消息;

当存在不包含第一弹幕消息的所述弹道时,将不包含第一弹幕消息的所述弹道确定为预选弹道;

从所述预先弹道中为所述待显示弹幕消息确定出目标弹道,并将所述待显示弹幕消息添加到所述目标弹道中,进而显示所述待显示弹幕消息。

在本申请实施例中,由于显示每个待显示弹幕消息的方法类似,因此,下面以第一个待显示弹幕消息为例来进行介绍。

首先,UE遍历dandaolist中的n个弹道,检测n个弹道当前是否包均含弹幕元素。具体来讲,当前包含在弹道中的弹幕元素,该弹幕元素中所包括的弹幕消息为第一弹幕消息,而第一弹幕消息就是当前显示在显示单元上的当前弹幕消息。所以,UE遍历dandaolist的每个弹道,实现判断显示单元的每个弹道当前是否显示有弹幕消息。

如果遍历出存在不包含第一弹幕消息的弹道,则将不包含弹幕元素的弹道确定为预选弹道,即确定为可以显示待显示弹幕消息的弹道。如图2所示的“确定预选弹道”。遍历完成后,共确定出零个,一个或多个预选弹道。

在第一种方式中,预选弹道的数量为一个或多个。然后,如图2所示,进一步从一个或多个预选弹道中确定出一个预选弹道作为最终显示第一个待显示弹幕消息的目标弹道。在本发明实施例中,可以随机选择一个预选弹道为目标弹道。或者,为了避免影响用户视觉,选择纵坐标最小,即最靠上的预选弹道为目标弹道。本发明所属领域的普通技术人员可以根据实际进行选择,本发明不做具体限制。

确定出用于显示第一个待显示弹幕消息的弹道后,将第一个待显示弹幕消息的弹幕元素添加到目标弹道中,进而在显示单元的弹幕显示区域中显示第一个待显示弹幕消息。

然后,再次遍历dandaolist数组,以判断n个弹道中是否存在不包含第一弹幕消息的弹道,提取出预选弹道。并进一步从预先弹道中确定出目标弹道,进而将第二个待显示弹幕消息的弹幕元素添加到目标弹道中,在弹幕显示区域中接着显示第二个待显示弹幕消息。

依次类推,直到newdatalisit中的每个待显示弹幕消息均被显示为止。

另外,如果所有的弹道均包含弹幕元素,也即弹幕显示区域中的每个弹道内当前都显示有当前弹幕消息时,则UE可以等待,等到存在不包含弹幕元素的弹道时,再将待显示弹幕消息的弹幕元素添加进去。或者,也可以选择如下第二种方式。

第二种:

在第二种方式中,针对每一个待显示弹幕消息执行以下步骤:

当所有弹道均包含第一弹幕消息时,获得每个所述当前弹幕消息的末尾在所述显示单元上的末尾显示坐标;

基于每个所述当前弹幕消息的末尾显示坐标,获得所述待显示弹幕消息与每个所述当前弹幕消息之间的追击时间;

确定最长的所述追击时间对应的所述弹道为所述目标弹道。

在第二种方式中,n个弹道中均包括弹幕元素,因此预选弹道的数量为零。还是以第一个待显示弹幕消息为例来介绍。获取每个当前弹幕消息的末尾在显示单元上的显示坐标。具体来讲,UE读取每个弹道中弹道元素的末尾显示坐标。末尾显示坐标为弹幕元素右边缘的横坐标。然后计算出假设在每个弹道中显示第一个待显示弹幕消息时,第一个待显示弹幕消息追击上对应弹道中当前弹幕消息的追击时间。

具体来讲,为计算出追击时间,UE进一步获取每个弹道中当前弹幕消息的弹幕元素宽度,以及第一个待显示弹幕消息的弹幕元素的宽度。然后,通过下列公式(3)、公式(4)和公式(5)计算追击时间。

vi=(w-wi)/t, 公式(3)

vs1=(w-ws1)/t, 公式(4)

t1=(xs1-xi)/(vi-vs1)。 公式(5)

其中,vi为显示在第i个弹道的当前弹幕消息的弹幕元素的移动速度,wi为在第i个弹道的当前弹幕消息的弹幕元素的宽度,t为显示时间,vs1为第一个待显示弹幕消息的移动速度,ws1为第一个待显示弹幕消息的弹幕元素的宽度,t1为追击时间,xs1为弹幕显示初始位置坐标(在本发明中以为弹幕显示区域的右边缘坐标为例),xi为显示在第i个弹道的当前弹幕消息的弹幕元素的末尾显示坐标。

通过上述公式,依次取i为1到n,进而计算出n个追击时间。然后,为了避免前后两条弹幕重叠显示,确定n个追击时间中最长的追击时间所对应的弹道为目标弹道。然后,将第一个待显示弹幕消息的弹幕元素添加到目标弹道中,进而在显示单元的弹幕显示区域中从初显示始位置开始移动显示第一个待显示弹幕消息。

然后,再次遍历dandaolist数组,以判断n个弹道中是否存在不包含第一弹幕消息的弹道,如果依然不存在不包含第一弹幕消息的弹道,则计算出第二个待显示消息的n个追击时间,然后确定追击时间最长的弹道为目标弹道,进而将第二个待显示弹幕消息的弹幕元素添加到目标弹道中,在弹幕显示区域中接着显示第二个待显示弹幕消息。

依次类推,直到newdatalisit中的每个待显示弹幕消息均被显示为止。

进一步,无论以上述第一种和/或第二种方式显示待显示弹幕消息,本发明实施例都进一步包括:

判断所述第一弹幕消息的末尾显示坐标是否为显示结束位置的坐标;

当所述第一弹幕消息的末尾显示坐标为所述显示结束位置的坐标时,从对应的所述弹道中删除末尾显示坐标为所述显示结束位置的坐标的所述第一弹幕消息。

具体来讲,获取每条第一弹幕消息的末尾显示坐标,并判断第一弹幕消息的末尾显示坐标是否为显示结束位置坐标。在本发明实施例中,显示结束位置例如为弹幕显示区域的左边缘。当第一弹幕消息的末尾显示坐标为显示结束位置的坐标时,从弹道中删除该第一弹幕消息的弹幕元素。换言之,删除已显示弹幕消息,以使得后续待显示弹幕消息能够正常显示。

进一步,在本次预设周期接收后,为了能够继续接收下一个预设周期服务器发送的弹幕消息,还需要删除datalist中的全部弹幕消息。

基于与前述实施例中显示弹幕消息的方法同样的发明构思,本发明第二方面还提供一种显示弹幕消息的装置,如图4所示,包括:

接收模块101,用于接收服务器发送的N个弹幕消息,其中,N为正整数;

提取模块102,用于基于目标用户的身份标识,从所述N个弹幕消息中提取出由所述目标用户发送的K个第一目标弹幕消息,其中,K为自然数;

确定模块103,用于当所述第一目标弹幕消息的数量K小于预设数量T时,从所述K个第一目标弹幕消息以外的所述弹幕消息中确定出M个第二目标弹幕消息,其中T为正整数,M为自然数;

显示模块104,用于显示待显示弹幕消息,所述待显示弹幕消息包括所述K个第一目标弹幕消息和所述M个第二目标弹幕消息;所述待显示弹幕消息的数量K+M≤T。

具体来讲,显示单元104用于针对每个所述待显示弹幕消息执行:判断用于显示弹幕消息的所有弹道中是否均包含第一弹幕消息;用户设备当前显示于显示单元上的当前弹幕消息为所述弹道中包含的所述第一弹幕消息;当存在不包含第一弹幕消息的所述弹道时,将不包含第一弹幕消息的所述弹道确定为预选弹道;从所述预先弹道中为所述待显示弹幕消息确定出目标弹道,并将所述待显示弹幕消息添加到所述目标弹道中,进而显示所述待显示弹幕消息。

进一步,显示单元104还用于当所有弹道均包含第一弹幕消息时,当所有弹道均包含第一弹幕消息时,获得每个所述当前弹幕消息的末尾在所述显示单元上的末尾显示坐标;基于每个所述当前弹幕消息的末尾显示坐标,获得所述待显示弹幕消息与每个所述当前弹幕消息之间的追击时间;确定最长的所述追击时间对应的所述弹道为所述目标弹道。

进一步,所述装置还包括:

判断模块,用于判断所述第一弹幕消息的末尾显示坐标是否为显示结束位置的坐标;

删除模块,用于当所述第一弹幕消息的末尾显示坐标为所述显示结束位置的坐标时,从对应的所述弹道中删除末尾显示坐标为所述显示结束位置的坐标的所述第一弹幕消息。

前述图1-图3b实施例中的显示弹幕消息的方法的各种变化方式和具体实例同样适用于本实施例的显示弹幕消息的装置,通过前述对显示弹幕消息的方法的详细描述,本领域技术人员可以清楚的知道本实施例中显示弹幕消息的装置的实施方法,所以为了说明书的简洁,在此不再详述。

本申请实施例中的上述一个或多个技术方案,至少具有如下一种或多种技术效果:

在本发明实施例的技术方案中,接收服务器发送的N个弹幕消息,然后基于目标用户的身份标识,从N个弹幕消息中确定出由目标用户发送的K个第一目标弹幕消息,进一步,当第一目标弹幕消息的数量K小于预设数量T时,从第一目标弹幕消息以外的弹幕消息中确定出M个第二目标弹幕消息,显示包括K个第一目标弹幕消息和M个第二目标弹幕消息的待显示弹幕消息,待显示弹幕消息的数量K+M≤T。由于从N个弹幕消息中提取出了由目标用户发送的K个第一目标弹幕消息,并将K个第一目标弹幕消息作为待显示弹幕消息,K为自然数,所以当K>1时就避免了目标用户发送的弹幕消息被大量弹幕消息所淹没,确保第一目标弹幕消息能够被显示。同时,由于待显示弹幕消息的数量K+M≤T,因此降低了UE所需处理和显示的弹幕消息数量,故而降低了弹幕对设备资源的消耗。

本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。

本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1