弹幕消息解析方法、装置及电子设备与流程

文档序号:11389121阅读:219来源:国知局
弹幕消息解析方法、装置及电子设备与流程

本发明涉及互联网技术领域,具体而言,涉及一种弹幕消息解析方法、装置及电子设备。



背景技术:

随着终端设备的快速发展,视频直播的兴起,越来越多的人们能够欣赏到各种趣味的视频直播。直播是一个信息交互和实时性非常强的行业,特别是文字和表情等消息的交互量非常多,有些超过几万甚至上十万的直播间,弹幕刷新速度非常快。

现有的技术中通常直接用自定义的消息协议传输弹幕消息,自定义的消息就是预先定义规则将弹幕消息转变为结构精简字符串,但是在对字符串进行处理时通常会存在冗余判断和处理,进而造成终端设备在消息量过多时,出现弹幕消息显示实时性差的问题。



技术实现要素:

有鉴于此,本发明的目的在于提供一种弹幕消息解析方法、装置及电子设备,以改善上述问题。

为了达到上述目的,本发明实施例提供一种弹幕消息解析方法,所述方法包括:

判断弹幕消息字符串是否满足长度预设条件;

在所述弹幕消息字符串满足长度预设条件时,根据所述弹幕消息字符串得到包括至少一个第一预设字符的构造字符串;

在所述构造字符串中查找所述第一预设字符,针对查找到的每个所述第一预设字符分别创建一个字典,并将该第一预设字符对应的临时字符串存储于所述字典,所述字典存储于一预设数组。

可选的,在上述弹幕消息解析方法中,根据所述弹幕消息字符串得到包括至少一个第一预设字符的构造字符串的步骤包括:

判断所述弹幕消息字符串的末尾字符是否为第一预设字符;

在所述弹幕消息字符串的末尾字符不为所述第一预设字符时,根据预设拼接函数向所述弹幕消息字符串的末尾字符后面拼接所述第一预设字符得到构造字符串;

在所述弹幕消息字符串的末尾字符为第一预设字符时,将所述弹幕消息字符串定义为构造字符串。

可选的,在上述弹幕消息解析方法中,在判断弹幕消息字符串是否满足长度预设条件的步骤之前,所述方法还包括:

在检测到弹幕消息时,对所述弹幕消息进行初始化得到弹幕消息字符串;

对所述弹幕消息字符串进行复制并保存。

可选的,在上述弹幕消息解析方法中,在所述构造字符串中查找所述第一预设字符,针对查找到的每个所述第一预设字符分别创建一个字典,并将该第一预设字符对应的临时字符串存储于所述字典的步骤包括:

根据预设循环函数对所述构造字符串进行循环索引,所述循环函数进行循环索引的次数与所述构造字符串的长度相对应;

当循环索引的次数对应的字符串长度处的字符为第一预设字符时,创建一个字典,将所述第一预设字符对应的临时字符串存储于所述字典,并在所述临时字符串之前拼接第二预设字符。

可选的,在上述弹幕消息解析方法中,所述方法还包括:

当循环索引的次数对应的字符串长度处的字符为第二预设字符,且所述第二预设字符相邻的下一字符为第三预设字符时,在该第三预设字符后面拼接第二预设字符,并创建一个字典,将该第二预设字符对应的字符串存储于该字典,并将该字典存储于所述预设数组;

当循环索引的次数对应的字符串长度处的字符为第二预设字符,且所述第二预设字符相邻的下一字符为第四预设字符时,在该第四预设字符后面拼接第一预设字符,并创建一个字典,将该第一预设字符对应的字符串存储于该字典,并将该字典存储于所述预设数组;

当循环索引的次数对应的字符串长度处的字符为第二预设字符,且所述第二预设字符相邻的下一字符为第五预设字符时,清空所述临时字符串。

本发明还提供一种弹幕消息解析装置,所述装置包括:

判断模块:用于判断弹幕消息字符串是否满足长度预设条件;

处理模块:用于在所述弹幕消息字符串满足长度预设条件时,根据所述弹幕消息字符串得到包括至少一个第一预设字符的构造字符串;

解析模块:用于在所述构造字符串中查找所述第一预设字符,针对查找到的每个所述第一预设字符分别创建一个字典,并将该第一预设字符对应的临时字符串存储于所述字典,所述字典存储于一预设数组。

可选的,在上述弹幕消息解析装置中,所述处理模块包括:

判断子模块:用于判断所述弹幕消息字符串的末尾字符是否为第一预设字符;

构造子模块:用于在所述弹幕消息字符串的末尾字符不为第一预设字符时,根据预设拼接函数向所述弹幕消息字符串的末尾字符后面拼接所述第一预设字符得到构造字符串;

定义子模块:用于在所述弹幕消息字符串的末尾字符为第一预设字符时,将所述弹幕消息字符串定义为构造字符串。

可选的,在上述弹幕消息解析装置中,所述解析模块包括:

索引子模块:用于根据预设循环函数对所述构造字符串进行循环索引,所述循环函数进行循环索引的次数与所述构造字符串的长度相对应;

解析子模块:用于当循环索引的次数对应的字符串长度处的字符为第一预设字符时,创建一个字典,将所述第一预设字符对应的临时字符串存储于所述字典,并在所述临时字符串之前拼接第二预设字符。

本发明还提供一种电子设备,包括处理器和存储器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现以下步骤:

判断弹幕消息字符串是否满足长度预设条件;

在所述弹幕消息字符串满足长度预设条件时,根据所述弹幕消息字符串得到包括至少一个第一预设字符的构造字符串;

在所述构造字符串中查找所述第一预设字符,针对查找到的每个所述第一预设字符分别创建一个字典,并将该第一预设字符对应的临时字符串存储于所述字典,所述字典存储于一预设数组。

本发明还提供一种计算机可读储存介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述弹幕消息解析方法的步骤。

本发明提供的一种弹幕消息解析方法、装置及电子设备,根据满足长度预设条件的弹幕消息字符串得到包括至少一个第一预设字符的构造字符串,并在所述构造字符串中查找所述第一预设字符,针对查找到的每个所述第一预设字符分别创建一个字典,将该第一预设字符对应的临时字符串存储于所述字典,所述字典存储于一预设数组。通过上述设置能够有效避免对弹幕消息字符串进行冗余判断和处理,进而有效避免弹幕消息显示时实时性差的问题。

附图说明

为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。

图1为本发明实施例提供的一种电子设备的方框示意图。

图2为本发明实施例提供的一种弹幕消息解析方法的流程示意图。

图3为图2中步骤s130的子步骤示意图。

图4为图2中步骤s150的子步骤示意图。

图5为本发明实施例提供的一种弹幕消息解析装置的模块框图。

图6为本发明实施例提供的一种处理模块的模块框图。

图7为本发明实施例提供的一种解析模块的模块框图。

图标:10-电子设备;100-弹幕消息解析装置;110-判断模块;130-处理模块;131-判断子模块;133-构造子模块;135-定义子模块;150-解析模块;151-索引子模块;153-解析子模块;200-存储器;300-处理器。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。

因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。

在本发明的描述中,需要说明的是,术语“第一”、“第二”、“第三”、“第四”和“第五”等仅用于区分描述,而不能理解为指示或暗示相对重要性。

如图1所示,是本发明较佳实施例提供的一种电子设备10的方框示意图。本发明实施例中的电子设备10可以是,但不限于,服务器、个人电脑(personalcomputer,pc)、平板电脑、个人数字助理(personaldigitalassistant,pda)、移动上网设备(mobileinternetdevice,mid)、智能手机等。本发明实施例中提供的方法及装置用于在电子设备10上实现弹幕消息解析。

其中,所述电子设备10包括弹幕消息解析装置100、存储器200和处理器300。

所述存储器200、处理器300以及各元件之间直接或间接地电性连接,以实现数据传输或交互。例如,这些元件相互之间可通过一条或多条通讯总线或信号线实现电性连接。所述处理器300用于执行所述存储器200中存储的可执行模块,例如所述弹幕消息解析装置100中所包括的软件功能模块及计算机程序。

其中,所述存储器200可以是,但不限于,随机存取存储器(randomaccessmemory,ram),只读存储器(readonlymemory,rom),可编程只读存储器(programmableread-onlymemory,prom),可擦除只读存储器(erasableprogrammableread-onlymemory,eprom),电可擦除只读存储器(electricerasableprogrammableread-onlymemory,eeprom)等。其中,存储器200用于存储程序,所述处理器300在接收到执行指令后,执行所述程序,例如本发明中的弹幕消息解析方法。

所述处理器300可以是一种集成电路芯片,具有信号处理能力。所述处理器300可以是通用处理器,包括中央处理器(centralprocessingunit,cpu)、网络处理器(networkprocessor,np)等;还可以是数字信号处理器(dsp)、专用集成电路(asic)、现场可编程门阵列(fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。

应当理解,图1所示的结构仅为示意,所述电子设备10可以包括比图1所示更多或者更少的组件,或者具有与图1所示不同的配置。图1中所示的各组件可以采用硬件、软件或其组合实现。

如图2所示,是本发明较佳实施例提供的一种弹幕消息解析方法。所述弹幕消息解析方法应用于图1所示的电子设备10。下面将对图2所示的方法步骤和具体流程进行详细阐述。

所述方法包括步骤s110、s130和s150三个步骤。

步骤s110:判断弹幕消息字符串是否满足长度预设条件。

所述长度预设条件可以是所述弹幕消息字符串的长度大于零,也可以是所述弹幕消息字符串的长度大于一个定值。为避免解析的消息字符串为空,进而造成崩溃的情况。可选的,在本实施例中,所述判断弹幕消息字符串是否满足长度预设条件为:判断所述弹幕消息字符串的长度是否大于零。

步骤s130:在所述弹幕消息字符串满足长度预设条件时,根据所述弹幕消息字符串得到包括至少一个第一预设字符的构造字符串。

通过上述设置使得构造字符串的格式相同,以便于进行解析。其中所述第一预设字符可以是但不限于符号、字母或数字,只要能使所述构造字符串的格式相同,并根据实际需求进行设置即可。例如,在本实施例中,所述第一预设字符为“/”。

请结合图3,根据所述弹幕消息字符串得到包括至少一个第一预设字符的构造字符串的步骤可以包括:s131、s133和s135三个子步骤。

子步骤s131:判断所述弹幕消息字符串的末尾字符是否为第一预设字符。

在所述弹幕消息字符串的末尾字符不为第一预设字符时,执行子步骤s133,在所述弹幕消息字符串的末尾字符为第一预设字符时,执行子步骤s135。

子步骤s133:根据预设拼接函数向所述弹幕消息字符串的末尾字符后面拼接所述第一预设字符得到构造字符串。

子步骤s135:将所述弹幕消息字符串定义为构造字符串。

通过上述步骤,使得所述弹幕消息字符串是以第一预设字符为结尾,从而使所述弹幕消息字符串的格式统一,以便于进行解析处理。

步骤s150:在所述构造字符串中查找所述第一预设字符,针对查找到的每个所述第一预设字符分别创建一个字典,并将该第一预设字符对应的临时字符串存储于所述字典,所述字典存储于一预设数组。

在所述构造字符串中查找所述第一预设字符的方式可以是按照顺序循环查找所述第一预设字符,也可以是随机查找所述第一预设字符,只要能查找到所述构造字符串中的所有第一预设字符即可,在此不做具体限定。

针对查找到的每个所述第一预设字符分别创建一个字典,并将该第一预设字符对应的临时字符串存储于所述字典时,所述字典中包括用于存放临时字符串的字符串存储空间和用于存放临时字符串对应信息的关键值存储空间。

所述临时字符串可以是所述构造字符串中的第一个字符到第一个第一预设字符的字符串,和/或第一预设字符之后的字符到与该第一预设字符相邻的下一个第一预设字符构成的字符串。所述临时字符串也可以是由第一预设字符和到与该第一预设字符相邻的下一第一预设字符之间的字符串构成的。每个临时字符串对应一个字典,每个临时字符串的结尾都是第一字符且不同字典中关键值存储空间中存储的临时字符串对应信息不同。

所述字典存储于一预设数组中,在本实施例中,所述构造字符串中包括至少一个第一预设字符,则该构造字符对应至少一个字典。不同字典存放于所述预设数组中的位置不同。通过上述设置实现了对弹幕消息字符串进行解析。

请结合图3,在本实施例中所述步骤s150包括s151和s153两个子步骤。

子步骤s151:根据预设循环函数对所述构造字符串进行循环索引,所述循环函数进行循环索引的次数与所述构造字符串的长度相对应。

子步骤s153:当循环索引的次数对应的字符串长度处的字符为第一预设字符时,创建一个字典,将所述第一预设字符对应的临时字符串存储于所述字典,并在所述临时字符串之前拼接第二预设字符。

所述第二预设字符可以是但不限于字母、数字或符号,根据实际需求进行设置即可。所述第二预设字符与所述第一预设字符可以是相同的,也可以是不同的。例如,在本实施例中,所述第二预设字符为“@”。通过在所述临时字符串之前拼接第二预设字符,使得各所述临时字符串的第一个字符相同,进而使各临时字符串的格式相同,以方便提取解析后的弹幕消息字符串。

可选的,所述步骤s150还包括:当循环索引的次数对应的字符串长度处的字符为第二预设字符,且所述第二预设字符相邻的下一字符为第三预设字符时,在该第三预设字符后面拼接第二预设字符,并创建一个字典,将该第二预设字符对应的字符串存储于该字典,并将该字典存储于所述预设数组。

所述第三预设字符可以是但不限于字母、数字或符号,根据实际需求进行设置即可。所述第三预设字符与所述第一预设字符和第二预设字符都不同。例如,在本实施例中,所述第三预设字符为“a”。

当循环索引的次数对应的字符串长度处的字符为第二预设字符,且所述第二预设字符相邻的下一字符为第四预设字符时,在该第四预设字符后面拼接第一预设字符,并创建一个字典,将该第一预设字符对应的字符串存储于该字典,并将该字典存储于所述预设数组。

所述第四预设字符可以是但不限于字母、数字或符号,根据实际需求进行设置即可。所述第四预设字符与所述第一预设字符、第二预设字符和三预设字符不同。例如,在本实施例中,所述第四预设字符为“s”。

当循环索引的次数对应的字符串长度处的字符为第二预设字符,且所述第二预设字符相邻的下一字符为第五预设字符时,清空所述临时字符串。

所述第五预设字符可以是但不限于字母、数字或符号,根据实际需求进行设置即可。例如,在本实施例中,所述第五预设字符为“=”。

通过上述设置使得所述弹幕消息字符串解析成为多个的字典,并存储于数组中,方便后续的调用和判断,进而有效避免在对弹幕消息进处理时存在多余的判断和处理,进而有效避免弹幕消息显示实时性差的问题。

可选的,在判断弹幕消息字符串是否满足长度预设条件的步骤之前,所述弹幕消息解析方法还包括:在检测到弹幕消息时,对所述弹幕消息进行初始化得到弹幕消息字符串,以及对所述弹幕消息字符串进行复制并保存。

请结合图5,本发明实施例提供一种弹幕消息解析装置100,所述弹幕消息解析装置100包括:判断模块110、处理模块130和解析模块150。

所述判断模块110用于判断弹幕消息字符串是否满足长度预设条件。在本实施例中,关于所述判断模块110的描述具体可参考对图2中所示的步骤s110的详细描述。也即,所述步骤s110可以由所述判断模块110执行。

所述处理模块130用于在所述弹幕消息字符串满足长度预设条件时,根据所述弹幕消息字符串得到包括至少一个第一预设字符的构造字符串。在本实施例中,关于所述处理模块130的描述具体可参考对图2中所示的步骤s130的详细描述。也即,所述步骤s130可以由所述处理模块130执行。

请结合图6,可选的,在本实施的例中,所述处理模块130包括:判断子模块131、构造子模块133和定义子模块135。

所述判断子模块131用于判断所述弹幕消息字符串的末尾字符是否为第一预设字符。在本实施例中,关于所述判断子模块131的描述具体可参考对图3中所示的子步骤s131的详细描述。也即,所述子步骤s131可以由所述判断子模块131执行。

所述构造子模块133用于在所述弹幕消息字符串的末尾字符不为第一预设字符时,根据预设拼接函数向所述弹幕消息字符串的末尾字符后面拼接所述第一预设字符得到构造字符串。在本实施例中,关于所述构造子模块133的描述具体可参考对图3中所示的子步骤s133的详细描述。也即,所述子步骤s133可以由所述构造子模块133执行。

所述定义子模块135用于在所述弹幕消息字符串的末尾字符为第一预设字符时,将所述弹幕消息字符串定义为构造字符串。在本实施例中,关于所述定义子模块135的描述具体可参考对图3中所示的子步骤s135的详细描述。也即,所述子步骤s135可以由所述定义子模块135执行。

所述解析模块150用于在所述构造字符串中查找所述第一预设字符,针对查找到的每个所述第一预设字符分别创建一个字典,并将该第一预设字符对应的临时字符串存储于所述字典,所述字典存储于一预设数组。在本实施例中,关于所述解析模块150的描述具体可参考对图2中所示的步骤s150的详细描述。也即,所述步骤s150可以由所述解析模块150执行。

请结合图7,可选的,在本实施的例中,所述解析模块150包括:索引子模块151和解析子模块153。

所述索引子模块151用于根据预设循环函数对所述构造字符串进行循环索引,所述循环函数进行循环索引的次数与所述构造字符串的长度相对应。在本实施例中,关于所述索引子模块151的描述具体可参考对图4中所示的子步骤s151的详细描述。也即,所述子步骤s151可以由所述索引子模块151执行。

所述解析子模块153用于当循环索引的次数对应的字符串长度处的字符为第一预设字符时,创建一个字典,将所述第一预设字符对应的临时字符串存储于所述字典,并在所述临时字符串之前拼接第二预设字符。在本实施例中,关于所述解析子模块153的描述具体可参考对图4中所示的子步骤s153的详细描述。也即,所述子步骤s153可以由所述解析子模块153执行。

综上所述,本发明提供的一种弹幕消息解析方法、装置及电子设备,根据满足长度预设条件的弹幕消息字符串得到包括至少一个第一预设字符的构造字符串,并在所述构造字符串中查找所述第一预设字符,针对查找到的每个所述第一预设字符分别创建一个字典,将该第一预设字符对应的临时字符串存储于所述字典,所述字典存储于一预设数组。通过上述设置能够有效避免对弹幕消息字符串进行冗余判断和处理,进而有效避免弹幕消息显示时实时性差的问题。通过设置第二预设字符、第三预设字符、第四预设字符和第五预设字符,可以进一步避免对弹幕消息字符串进行冗余判断和处理,进而有效避免弹幕消息显示实时性差的问题。

在本发明实施例所提供的几个实施例中,应该理解到,所揭露的系统和方法,也可以通过其它的方式实现。以上所描述的系统和方法实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本发明的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

另外,在本发明各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。

所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,电子设备,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。

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