一种过滤弹幕信息的方法、服务器及计算机设备
技术领域
本发明直播平台技术领域,尤其涉及一种过滤弹幕信息的方法、服务器及计算机设备。
背景技术
目前,随着移动端互联网的发展,直播也越来越受到大家的喜爱。直播时的弹幕更是加强了主播于观众之间的互动。尤其是当主播的精彩时刻时,观众会打出“666”或者“66666”等的弹幕以表示主播的表演精彩,然而主播直播是满屏幕的“666”则看不到其他的弹幕,导致会漏掉一些关键的弹幕信息。
现有技术中虽然可以利用客户端对这些弹幕进行过滤,但是当弹幕信息的数量过多时,则会导致客户端消耗非常多的计算资源,导致直播过程不顺畅,从而影响主播直播的直播过程。
发明内容
针对现有技术存在的问题,本发明实施例提供了一种过滤弹幕信息的方法、服务器及计算机设备,用于解决现有技术中对直播平台中的弹幕信息进行过滤时,客户端的计算资源消耗过多,导致直播过程受到影响的技术问题。
本发明提供一种过滤弹幕信息的方法,应用在直播平台中,所述方法包括:
获取客户端的设备类型、所述客户端的中央处理器(CPU,Central ProcessingUnit)使用率以及所述客户端处理的所述弹幕信息的数量之间的映射关系表;
判断所述客户端是否是个人计算机PC设备,若所述客户端不是所述PC设备,则继续判断所述客户端的当前CPU使用率是否超过所述映射关系表中预设的使用率阈值,若超过,则将所述客户端处理的弹幕信息的数量减少第一数量;
按照预设的过滤规则对所述第一数量的所述弹幕信息进行过滤,使得所述客户端能根据所述预设的过滤规则对第二数量的所述弹幕信息进行过滤,所述第二数量为所述客户端处理的弹幕信息的数量与所述第一数量的差值。
上述方案中,所述获取客户端的型号、所述客户端的中央处理器CPU使用率及所述客户端处理的弹幕信息的数量后,包括:
判断自身是否处于空闲状态,若处于空闲状态,则根据所述过滤规则对所有的弹幕信息进行过滤。
上述方案中,所述将所述客户端处理的弹幕信息的数量减少第一数量,并按照预设的过滤规则对所述第一数量的所述弹幕信息进行过滤后,包括:
为所述第一数量的弹幕信息标记表示已被过滤的过滤标识。
上述方案中,所述按照预设的过滤规则对所述第一数量的所述弹幕信息进行过滤,包括:
获取主播的直播标识ID;
基于所述主播的直播ID从所述主播的个人数据库中的map容器中获取当前直播间的弹幕过滤关键字列表;
基于所述弹幕过滤关键字列表对所述第一数量的弹幕信息进行匹配,若查找到带有所述过滤关键字的弹幕信息,则过滤掉所述带有过滤关键字的弹幕信息。
本发明还提供一种服务器,所述服务器包括:
获取单元,用于获取客户端的设备类型、所述客户端的中央处理器CPU使用率以及所述客户端处理的所述弹幕信息的数量之间的映射关系表;
判断单元,用于判断所述客户端是否是PC设备,若所述客户端不是所述PC设备,则继续判断所述客户端的CPU使用率是否超过所述映射关系表中预设的使用率阈值,若超过,则将所述客户端处理的弹幕信息的数量减少第一数量;
过滤单元,用于按照预设的过滤规则对所述第一数量的所述弹幕信息进行过滤,使得所述客户端能根据所述预设的过滤规则对第二数量的所述弹幕信息进行过滤,所述第二数量为所述客户端处理的弹幕信息的数量与所述第一数量的差值。
上述方案中,所述判断单元还用于:判断自身是否处于空闲状态,若处于空闲状态;
所述过滤单元,还用于根据所述过滤规则对所有的弹幕信息进行过滤。
上述方案中,所述服务器还包括:标记单元,用于在将所述客户端处理的弹幕信息的数量减少第一数量,并按照预设的过滤规则对所述第一数量的所述弹幕信息进行过滤后,为所述第一数量的弹幕信息标记表示已被过滤的过滤标识。
上述方案中,所述过滤单元具体用于:
获取主播的直播标识ID;
基于所述主播的直播ID从所述主播的个人数据库中的map容器中获取当前直播间的弹幕过滤关键字列表;
基于所述弹幕过滤关键字列表对所述第一数量的弹幕信息进行匹配,若查找到带有所述过滤关键字的弹幕信息,则过滤掉所述带有过滤关键字的弹幕信息。
本发明还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现能够执行如上述任一所述的方法。
本发明还提供一种用于实现视图控制器的计算机设备,包括:
至少一个处理器;以及
与所述处理器通信连接的至少一个存储器,其中,
所述存储器存储有可被所述处理器执行的程序指令,所述处理器调用所述程序指令能够执行如上述任一所述的方法。
本发明实施例提供了一种过滤弹幕信息的方法、服务器及计算机设备,应用在直播平台中,所述方法包括:获取客户端的设备类型、所述客户端的中央处理器CPU使用率以及所述客户端处理的所述弹幕信息的数量之间的映射关系表;判断所述客户端是否是PC设备,若所述客户端不是所述PC设备,则继续判断所述客户端的CPU使用率是否超过所述映射关系表中预设的使用率阈值,若超过,则将所述客户端处理的弹幕信息的数量减少第一数量;按照预设的过滤规则对所述第一数量的所述弹幕信息进行过滤,使得所述客户端能根据所述预设的过滤规则对第二数量的所述弹幕信息进行过滤,所述第二数量为所述客户端处理的弹幕信息的数量与所述第一数量的差值;如此,服务器预先获取到客户端的设备型号、所述客户端的CPU使用率以及所述客户端处理的所述弹幕信息的数量之间的映射关系表,当确定客户端的CPU使用率超过所述映射关系表中预设的使用率阈值时,则接替客户端过滤一部分弹幕信息,避免客户端的计算消耗过大,进而确保了直播过程的顺畅。
附图说明
图1为本发明实施例一提供的过滤弹幕信息的方法流程示意图;
图2为本发明实施例二提供的服务器装置结构示意图;
图3为本发明实施例三提供的过滤弹幕信息的计算机设备整体结构示意图。
具体实施方式
为了解决现有技术中对直播平台中的弹幕信息进行过滤时,客户端的计算资源消耗过多,导致直播过程受到影响的技术问题,本发明提供了一种过滤弹幕信息的方法、服务器及计算机设备,应用在直播平台中,所述方法包括:获取客户端的设备类型、所述客户端的中央处理器CPU使用率以及所述客户端处理的所述弹幕信息的数量之间的映射关系表;判断所述客户端是否是PC设备,若所述客户端不是所述PC设备,则继续判断所述客户端的CPU使用率是否超过所述映射关系表中预设的使用率阈值,若超过,则将所述客户端处理的弹幕信息的数量减少第一数量;按照预设的过滤规则对所述第一数量的所述弹幕信息进行过滤,使得所述客户端能根据所述预设的过滤规则对第二数量的所述弹幕信息进行过滤,所述第二数量为所述客户端处理的弹幕信息的数量与所述第一数量的差值。
下面通过附图及具体实施例对本发明的技术方案做进一步的详细说明。
实施例一
本实施例提供一种过滤弹幕信息的方法,应用在直播平台中,如图1所示,所述方法包括:
S110,获取客户端的设备类型、所述客户端的中央处理器CPU使用率以及所述客户端处理的所述弹幕信息的数量之间的映射关系表;
本步骤中,客户端的设备不同;比如,客户端使用的设备可以包括PC设备及移动设备;移动设备又可以包括手机、平板等终端。对于不同配置的设备,其处理弹幕信息的能力肯定是不同的,那么服务器会根据具体的设备情况对弹幕信息进行分配,避免客户端的计算消耗过大。
因此,服务器需要获取到户端的设备类型、型号;客户端的CPU使用率以及所述客户端处理的所述弹幕信息的数量之间的映射关系表。
具体地,服务器会预先获取一些主流移动设备的硬件配置信息,比如CPU信息,然后利用硬件配置信息来对弹幕信息的计算能力进行打分,计算能力越好的分值越高。
同时,需要对每种设备进行测试,确定其处理的弹幕信息的数量及对应的CPU使用率;然后对设备型号、CPU使用率以及所述客户端处理的所述弹幕信息的数量建立一个映射关系表。也就是说,所述映射关系表中存储有每种设备的类型、型号、其处理弹幕信息的数量及对应的CPU使用率。
比如,针对同种型号的设备,当客户端处理弹幕信息的数量为50时,对应的CPU使用率为20%;当客户端处理弹幕信息的数量为100时,对应的CPU使用率为30%。
S111,判断所述客户端是否是PC设备,若所述客户端不是所述PC设备,则根据所述映射关系表继续判断所述客户端的CPU使用率是否超过所述映射关系表中预设的使用率阈值,若超过,则将所述客户端处理的弹幕信息的数量减少第一数量;
当主播开播登陆服务器时,客户端会上报当前使用的设备类型和型号,那么服务器可以选择不同的过滤策略对弹幕信息进行过滤。
比如,服务器首先判断客户端是否是PC设备,若所述客户端不是所述PC设备,则查询映射关系表中,该设备处理弹幕信息的数量及对应的CPU使用率。
这里,在直播过程中,因直播需要有时会在直播页面中添加不同的辅助直播的功能,比如美颜功能,人脸定位功能或装饰功能等,这样的话,不同的时间段客户端消耗的CPU资源是不同的,因此客户端会在每间隔预设的时间向服务器上报一次当前的CPU使用率。其中,预设的时间可以为3~5min。
具体实现如下:
利用创建函数FileInputStream input=new FileInputStream("/proc/stat");创建一个读取文件的实例变量,所述"/proc/stat"为系统中的目录,在该目录下记录了当前的CPU使用率。
定义一个读取文件的缓存实例,将读取到的CPU使用率存储在缓存中的String变量load中:
BufferedReader reader=new BufferedReader(input,1000);
String load=reader.readLine();
这样就获取到了当前CPU使用率,并将当前CPU使用率发送至服务器中。
当服务器接收到当前CPU使用率时,会根据所述映射关系表继续判断所述客户端的当前CPU使用率是否超过所述映射关系表中预设的使用率阈值,若超过,则将所述客户端处理的弹幕信息的数量减少第一数量;其中,预设的使用率阈值一般为50%。
比如,当所述客户端的当前CPU使用率超过50%,而CPU使用率为50%时,对应的处理弹幕信息的数量为100条;CPU使用率为40%时,对应的处理弹幕信息的数量为80条;那么就会将客户端处理的弹幕信息的数量减少第一数量,所述第一数量可以为20条。
进一步地,当所述客户端是所述PC设备,那么弹幕信息处理则全部由客户端处理。
这里,所述获取客户端的类型、型号、所述客户端的中央处理器CPU使用率及所述客户端处理的弹幕信息的数量后,还包括:
判断自身是否处于空闲状态,若处于空闲状态,则根据所述过滤规则对所有的弹幕信息进行过滤。
或者,当确定当前直播的内容是敏感内容,则也会根据所述过滤规则对所有的弹幕信息进行过滤。
S112,按照预设的过滤规则对所述第一数量的所述弹幕信息进行过滤,使得所述客户端能根据所述预设的过滤规则对第二数量的所述弹幕信息进行过滤,所述第二数量为所述客户端处理的弹幕信息的数量与所述第一数量的差值。
当将客户端处理的弹幕信息数量减少第一数量后,服务器会预设的过滤规则对所述第一数量的所述弹幕信息进行过滤,使得所述客户端能根据所述预设的过滤规则对第二数量的所述弹幕信息进行过滤,所述第二数量为所述客户端处理的弹幕信息的数量与所述第一数量的差值。
还是以S111中的数量为例,将客户端处理的弹幕信息的数量减少第一数量,所述第一数量可以为20条时,那么服务器就会对这20条弹幕信息进行处理,以能减轻客户端的计算消耗。
这里,服务器与客户端使用的过滤规则是完全相同的,所述按照预设的过滤规则对所述第一数量的所述弹幕信息进行过滤,包括:
获取主播的直播标识ID;
基于所述主播的直播ID从所述主播的个人数据库中的map容器中获取当前直播间的弹幕过滤关键字列表;
基于所述弹幕过滤关键字列表对所述第一数量的弹幕信息进行匹配,若查找到带有所述过滤关键字的弹幕信息,则过滤掉所述带有过滤关键字的弹幕信息。
具体地,直播平台会为每个主播提供一个个人信息的设置页面,那么主播可以在个人设置页面中填写一些个人信息,比如直播分类、直播间标题等;同样的,主播可以在个人设置页面中填写一些过滤关键词,比如不想在直播页面中看到“666”、“你好”等类似的弹幕信息,那么可以将“666”、“你好”设置为过滤关键词,当设置完成后,会将过滤关键词生成一条打包协议发送至服务器中,协议实现如下:
Type@=SetInfo/keywords@=“666”@“你好”。
服务器接收到该打包协议后,会从协议中解析出过滤关键词,并将过滤关键词存储至该主播的个人数据库中,存储实现如下:
Insert“主播个人信息的表名”“列名称则是过滤关键词”“内容则是主播设置的屏蔽关键字”。
这里,为了方便及时对过滤关键词的读取和访问,本实施例中使用的内存数据库Redis来对过滤关键词进行存储:
redis.set(“keyword”,“666,你好,晚安”);
其中,内存数据库Redis是一个开源的内存数据库,其提供高性能的键值对KEY/VALUE的存储方式,上述存储命令中,keyword为该数据库的key值,主播设置的过滤关键词列表“666,你好,晚安”为对应的value值。
为了方便数据的匹配查找,本实施例进一步将过滤关键词列表存储至redis数据库中的map容器中,具体如下:
首先创建一个map容器Map<string>mapKeyDanmu;
字符串string用来存储过滤关键词列表。
然后对map容器进行初始化操作,即将每个过滤关键词赋值后存储至map容器中,代码如下:
mapKeyDanmu[“666”]=1;
mapKeyDanmu[“你好”]=1;
mapKeyDanmu[“晚安”]=1;
当服务器接收到用户发送的弹幕信息时,还需将弹幕信息存储至预设的链表容器list中,比如弹幕信息为:“23”、“早上好”,那么存储过程实现如下:
List<string>listDanmu;
listDanmu.push_back(“23”);
listDanmu.push_back(“早上好”);
存储完成后,就可以对第一数量的弹幕信息进行处理,具体地,对第一数量的弹幕信息进行遍历,实现如下:
List<string>::iterator it=listDanmu.begin();
定义一个迭代器it,用于遍历list容器,从而读取存储的所有的弹幕,代码实现如下:
For(;it!=listDanmu.end();++it)
{
String danmu=(*it);
然后利用字符串变量danmu来读取当前的弹幕信息。
读取到当前弹幕信息后,基于所述弹幕过滤关键字列表对比所述第一数量的弹幕信息,若查找到带有所述过滤关键字的弹幕信息,则过滤掉所述带有过滤关键字的弹幕信息;如没有查找到带有所述过滤关键字的弹幕信息,则正常显示所述弹幕信息,代码实现如下:
Map<string>::iterator itresult;
itresult=mapKeyDanm.find(danmu);
If(itresult!=mapKeyDanm.end())
{
}
Else
{
则在主播的页面上显示该弹幕信息。
}
进一步地,当服务器按照预设的过滤规则对所述第一数量的所述弹幕信息进行过滤后,包括:为所述第一数量的弹幕信息标记表示已被过滤的过滤标识,客户端接收到该部分弹幕信息后,会根据过滤标识直接显示该部分弹幕信息,避免客户端会对第一数量的弹幕信息进行重复过滤。
同样地,客户端对第二数量的弹幕信息进行过滤时,服务器会将主播设置的过滤关键词列表下发至客户端中,客户端接收到过滤关键词列表时,会将过滤关键词列表存储至预先建立的容器中,具体是使用以下协议进行存储:
Type@=keyInfo/keywords@=“666”@“你好”@晚安
后续对第二数量的弹幕信息进行过滤时,与服务器的过滤方式完全相同,在此不再赘述。
实施例二
相应于实施例一,本实施例提供一种服务器,如图2所示,所述服务器包括:获取单元21、判断单元22及过滤单元23;其中,
获取单元21用于获取客户端的设备类型、所述客户端的中央处理器CPU使用率以及所述客户端处理的所述弹幕信息的数量之间的映射关系表;
这里,客户端的设备不同;比如,客户端使用的设备可以包括PC设备及移动设备;移动设备又可以包括手机、平板等终端。对于不同配置的设备,其处理弹幕信息的能力肯定是不同的,那么服务器会根据具体的设备情况对弹幕信息进行分配,避免客户端的计算消耗过大。
因此,获取单元21需要获取到户端的设备类型、型号;客户端的CPU使用率以及所述客户端处理的所述弹幕信息的数量之间的映射关系表。
具体地,服务器会预先获取一些主流移动设备的硬件配置信息,比如CPU信息,然后利用硬件配置信息来对弹幕信息的计算能力进行打分,计算能力越好的分值越高。
同时,需要对每种设备进行测试,确定其处理的弹幕信息的数量及对应的CPU使用率;然后对设备型号、CPU使用率以及所述客户端处理的所述弹幕信息的数量建立一个映射关系表。也就是说,所述映射关系表中存储有每种设备的类型、型号、其处理弹幕信息的数量及对应的CPU使用率。
比如,针对同种型号的设备,当客户端处理弹幕信息的数量为50时,对应的CPU使用率为20%;当客户端处理弹幕信息的数量为100时,对应的CPU使用率为30%。
当主播开播登陆服务器时,客户端会上报当前使用的设备类型和型号,那么服务器可以选择不同的过滤策略对弹幕信息进行过滤。
具体地,判断单元22用于判断所述客户端是否是PC设备,若所述客户端不是所述PC设备,则查询映射关系表中,该设备处理弹幕信息的数量及对应的CPU使用率。
这里,在直播过程中,因直播需要有时会在直播页面中添加不同的辅助直播的功能,比如美颜功能,人脸定位功能或装饰功能等,这样的话,不同的时间段客户端消耗的CPU资源是不同的,因此客户端会在每间隔预设的时间向服务器上报一次当前的CPU使用率。其中,预设的时间可以为3~5min。
具体实现如下:
利用创建函数FileInputStream input=new FileInputStream("/proc/stat");创建一个读取文件的实例变量,所述"/proc/stat"为系统中的目录,在该目录下记录了当前的CPU使用率。
定义一个读取文件的缓存实例,将读取到的CPU使用率存储在缓存中的String变量load中:
BufferedReader reader=new BufferedReader(input,1000);
String load=reader.readLine();
这样就获取到了当前CPU使用率,并将当前CPU使用率发送至服务器中。
当判断单元22接收到当前CPU使用率时,会根据所述映射关系表继续判断所述客户端的当前CPU使用率是否超过所述映射关系表中预设的使用率阈值,若超过,则将所述客户端处理的弹幕信息的数量减少第一数量;其中,预设的使用率阈值一般为50%。
比如,当所述客户端的当前CPU使用率超过50%,而CPU使用率为50%时,对应的处理弹幕信息的数量为100条;CPU使用率为40%时,对应的处理弹幕信息的数量为80条;那么就会将客户端处理的弹幕信息的数量减少第一数量,所述第一数量可以为20条。
进一步地,判断单元22当确定所述客户端是所述PC设备,那么弹幕信息处理则全部由客户端处理。
这里,所述获取客户端的类型、型号、所述客户端的中央处理器CPU使用率及所述客户端处理的弹幕信息的数量后,所述判断单元22还用于:
判断自身是否处于空闲状态,若处于空闲状态,则根据所述过滤规则对所有的弹幕信息进行过滤。
或者,当确定当前直播的内容是敏感内容,则也会根据所述过滤规则对所有的弹幕信息进行过滤。
当将客户端处理的弹幕信息数量减少第一数量后,过滤单元23会用于按照预设的过滤规则对所述第一数量的所述弹幕信息进行过滤,使得所述客户端能根据所述预设的过滤规则对第二数量的所述弹幕信息进行过滤,所述第二数量为所述客户端处理的弹幕信息的数量与所述第一数量的差值。
还是以S111中的数量为例,将客户端处理的弹幕信息的数量减少第一数量,所述第一数量可以为20条时,那么过滤单元23就会对这20条弹幕信息进行处理,以能减轻客户端的计算消耗。
这里,服务器与客户端使用的过滤规则是完全相同的,过滤单元23具体用于:
获取主播的直播标识ID;
基于所述主播的直播ID从所述主播的个人数据库中的map容器中获取当前直播间的弹幕过滤关键字列表;
基于所述弹幕过滤关键字列表对所述第一数量的弹幕信息进行匹配,若查找到带有所述过滤关键字的弹幕信息,则过滤掉所述带有过滤关键字的弹幕信息。
具体地,直播平台会为每个主播提供一个个人信息的设置页面,那么主播可以在个人设置页面中填写一些个人信息,比如直播分类、直播间标题等;同样的,主播可以在个人设置页面中填写一些过滤关键词,比如不想在直播页面中看到“666”、“你好”等类似的弹幕信息,那么可以将“666”、“你好”设置为过滤关键词,当设置完成后,会将过滤关键词生成一条打包协议发送至服务器中,协议实现如下:
Type@=SetInfo/keywords@=“666”@“你好”。
服务器接收到该打包协议后,会从协议中解析出过滤关键词,并将过滤关键词存储至该主播的个人数据库中,存储实现如下:
Insert“主播个人信息的表名”“列名称则是过滤关键词”“内容则是主播设置的屏蔽关键字”。
这里,为了方便及时对过滤关键词的读取和访问,本实施例中使用的内存数据库Redis来对过滤关键词进行存储:
redis.set(“keyword”,“666,你好,晚安”);
其中,内存数据库Redis是一个开源的内存数据库,其提供高性能的键值对KEY/VALUE的存储方式,上述存储命令中,keyword为该数据库的key值,主播设置的过滤关键词列表“666,你好,晚安”为对应的value值。
为了方便数据的匹配查找,本实施例进一步将过滤关键词列表存储至redis数据库中的map容器中,具体如下:
首先创建一个map容器Map<string>mapKeyDanmu;
字符串string用来存储过滤关键词列表。
然后对map容器进行初始化操作,即将每个过滤关键词赋值后存储至map容器中,代码如下:
mapKeyDanmu[“666”]=1;
mapKeyDanmu[“你好”]=1;
mapKeyDanmu[“晚安”]=1;
当过滤单元23接收到用户发送的弹幕信息时,还需将弹幕信息存储至预设的链表容器list中,比如弹幕信息为:“23”、“早上好”,那么存储过程实现如下:
List<string>listDanmu;
listDanmu.push_back(“23”);
listDanmu.push_back(“早上好”);
存储完成后,过滤单元23就可以对第一数量的弹幕信息进行处理,具体地,对第一数量的弹幕信息进行遍历,实现如下:
List<string>::iterator it=listDanmu.begin();
定义一个迭代器it,用于遍历list容器,从而读取存储的所有的弹幕,代码实现如下:
For(;it!=listDanmu.end();++it)
{
String danmu=(*it);
然后利用字符串变量danmu来读取当前的弹幕信息。
读取到当前弹幕信息后,过滤单元23基于所述弹幕过滤关键字列表对比所述第一数量的弹幕信息,若查找到带有所述过滤关键字的弹幕信息,则过滤掉所述带有过滤关键字的弹幕信息;如没有查找到带有所述过滤关键字的弹幕信息,则正常显示所述弹幕信息,代码实现如下:
Map<string>::iterator itresult;
itresult=mapKeyDanm.find(danmu);
If(itresult!=mapKeyDanm.end())
{
}
Else
{
则在主播的页面上显示该弹幕信息。
}
进一步地,当过滤单元23按照预设的过滤规则对所述第一数量的所述弹幕信息进行过滤后,标记单元24用于:为所述第一数量的弹幕信息标记表示已被过滤的过滤标识,客户端接收到该部分弹幕信息后,会根据过滤标识直接显示该部分弹幕信息,避免客户端会对第一数量的弹幕信息进行重复过滤。
同样地,客户端对第二数量的弹幕信息进行过滤时,服务器会将主播设置的过滤关键词列表下发至客户端中,客户端接收到过滤关键词列表时,会将过滤关键词列表存储至预先建立的容器中,具体是使用以下协议进行存储:
Type@=keyInfo/keywords@=“666”@“你好”@晚安
后续对第二数量的弹幕信息进行过滤时,与过滤单元23的过滤方式完全相同,在此不再赘述。
实施例三
本实施例还提供一种过滤弹幕信息的计算机设备,如图3所示,所述计算机设备包括:射频(Radio Frequency,RF)电路310、存储器320、输入单元330、显示单元340、音频电路350、WiFi模块360、处理器370、以及电源380等部件。本领域技术人员可以理解,图3中示出的计算机设备结构并不构成对计算机设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
下面结合图3对计算机设备的各个构成部件进行具体的介绍:
RF电路310可用于信号的接收和发送,特别地,将基站的下行信息接收后,给处理器370处理。通常,RF电路310包括但不限于至少一个放大器、收发信机、耦合器、低噪声放大器(Low Noise Amplifier,LNA)、双工器等。
存储器320可用于存储软件程序以及模块,处理器370通过运行存储在存储器320的软件程序以及模块,从而执行计算机设备的各种功能应用以及数据处理。存储器320可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序等;存储数据区可存储根据计算机设备的使用所创建的数据等。此外,存储器320可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
输入单元330可用于接收输入的数字或字符信息,以及产生与计算机设备的用户设置以及功能控制有关的键信号输入。具体地,输入单元330可包括键盘331以及其他输入设备332。键盘331,可收集用户在其上的输入操作,并根据预先设定的程式驱动相应的连接装置。键盘331采集到输出信息后再送给处理器370。除了键盘331,输入单元330还可以包括其他输入设备332。具体地,其他输入设备332可以包括但不限于触控面板、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆等中的一种或多种。
显示单元340可用于显示由用户输入的信息或提供给用户的信息以及计算机设备的各种菜单。显示单元340可包括显示面板341,可选的,可以采用液晶显示器(LiquidCrystal Display,LCD)、有机发光二极管(Organic Light-Emitting Diode,OLED)等形式来配置显示面板341。进一步的,键盘331可覆盖显示面板341,当键盘331检测到在其上或附近的触摸操作后,传送给处理器370以确定触摸事件的类型,随后处理器370根据输入事件的类型在显示面板341上提供相应的视觉输出。虽然在图3中键盘331与显示面板341是作为两个独立的部件来实现计算机设备的输入和输入功能,但是在某些实施例中,可以将键盘331与显示面板341集成而实现计算机设备的输入和输出功能。
音频电路350、扬声器351,传声器352可提供用户与计算机设备之间的音频接口。音频电路350可将接收到的音频数据转换后的电信号,传输到扬声器351,由扬声器351转换为声音信号输出;
WiFi属于短距离无线传输技术,计算机设备通过WiFi模块360可以帮助用户收发电子邮件、浏览网页和访问流式媒体等,它为用户提供了无线的宽带互联网访问。虽然图3示出了WiFi模块360,但是可以理解的是,其并不属于计算机设备的必须构成,完全可以根据需要在不改变发明的本质的范围内而省略。
处理器370是计算机设备的控制中心,利用各种接口和线路连接整个计算机设备的各个部分,通过运行或执行存储在存储器320内的软件程序和/或模块,以及调用存储在存储器320内的数据,执行计算机设备的各种功能和处理数据,从而对计算机设备进行整体监控。可选的,处理器370可包括一个或多个处理单元;优选的,处理器370可集成应用处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等。
计算机设备还包括给各个部件供电的电源380(比如电源适配器),优选的,电源可以通过电源管理系统与处理器370逻辑相连。
本发明实施例提供的过滤弹幕信息的方法、服务器及计算机设备能带来的有益效果至少是:
本发明实施例提供了一种过滤弹幕信息的方法、服务器及计算机设备,应用在直播平台中,所述方法包括:获取客户端的设备类型、所述客户端的中央处理器CPU使用率以及所述客户端处理的所述弹幕信息的数量之间的映射关系表;判断所述客户端是否是PC设备,若所述客户端不是所述PC设备,则继续判断所述客户端的CPU使用率是否超过所述映射关系表中预设的使用率阈值,若超过,则将所述客户端处理的弹幕信息的数量减少第一数量;按照预设的过滤规则对所述第一数量的所述弹幕信息进行过滤,使得所述客户端能根据所述预设的过滤规则对第二数量的所述弹幕信息进行过滤,所述第二数量为所述客户端处理的弹幕信息的数量与所述第一数量的差值;如此,服务器预先获取到客户端的设备型号、所述客户端的中央处理器CPU使用率以及所述客户端处理的所述弹幕信息的数量之间的映射关系表,当确定客户端的CPU使用率超过所述映射关系表中预设的使用率阈值时,则接替客户端过滤一部分弹幕信息,避免客户端的计算消耗过大,进而确保了直播过程的顺畅;这样由于服务器与客户端可以共同对弹幕信息进行过滤,因此既可以减轻服务器的计算压力,也可以减轻客户端的计算压力。
在此提供的算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP,Digital Signal Processing)来实现根据本发明实施例的网关、代理服务器、系统中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读存储介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。