CN108810644B - 弹幕消息分发方法、装置、设备及存储介质 - Google Patents

弹幕消息分发方法、装置、设备及存储介质 Download PDF

Info

Publication number
CN108810644B
CN108810644B CN201810688456.XA CN201810688456A CN108810644B CN 108810644 B CN108810644 B CN 108810644B CN 201810688456 A CN201810688456 A CN 201810688456A CN 108810644 B CN108810644 B CN 108810644B
Authority
CN
China
Prior art keywords
bullet screen
list
target
distribution
screen distribution
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201810688456.XA
Other languages
English (en)
Other versions
CN108810644A (zh
Inventor
张磊
张文明
陈少杰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Wuhan Douyu Network Technology Co Ltd
Original Assignee
Wuhan Douyu Network Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Wuhan Douyu Network Technology Co Ltd filed Critical Wuhan Douyu Network Technology Co Ltd
Priority to CN201810688456.XA priority Critical patent/CN108810644B/zh
Publication of CN108810644A publication Critical patent/CN108810644A/zh
Application granted granted Critical
Publication of CN108810644B publication Critical patent/CN108810644B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/47End-user applications
    • H04N21/478Supplemental services, e.g. displaying phone caller identification, shopping application
    • H04N21/4788Supplemental services, e.g. displaying phone caller identification, shopping application communicating with other users, e.g. chatting
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/435Processing of additional data, e.g. decrypting of additional data, reconstructing software from modules extracted from the transport stream
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/443OS processes, e.g. booting an STB, implementing a Java virtual machine in an STB or power management in an STB
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/45Management operations performed by the client for facilitating the reception of or the interaction with the content or administrating data related to the end-user or to the client device itself, e.g. learning user preferences for recommending movies, resolving scheduling conflicts
    • H04N21/462Content or additional data management, e.g. creating a master electronic program guide from data received from the Internet and a Head-end, controlling the complexity of a video stream by scaling the resolution or bit-rate based on the client capabilities

Abstract

本发明实施例公开了一种弹幕消息分发方法、装置、设备及存储介质。该方法包括:依据待分发弹幕消息,确定当前消息标识;依据当前消息标识,从弹幕分发目标和弹幕分发目标对应的消息标识列表之间的映射关系列表中,确定至少一个目标弹幕分发目标,并依据至少一个目标弹幕分发目标生成分发列表;从分发列表中获取目标弹幕分发目标,并通过目标弹幕分发目标调用弹幕分发函数,将待分发弹幕消息分发至目标弹幕分发目标中,弹幕分发函数为弹幕分发目标继承弹幕分发协议而获得。通过上述技术方案,实现了音视频播放/直播应用软件中弹幕消息的直达式分发,各个弹幕分发目标能够直接获得其关注的弹幕消息,提高了弹幕消息分发效率及分发有效性。

Description

弹幕消息分发方法、装置、设备及存储介质
技术领域
本发明实施例涉及计算机技术,尤其涉及一种弹幕消息分发方法、装置、设备及存储介质。
背景技术
在诸如斗鱼的音视频播放/直播应用软件中,会大量使用弹幕消息。通常,这些弹幕消息是由音视频播放/直播应用软件逐条分发给需要使用弹幕消息的各个弹幕分发目标,如视图、业务控制器或数据管理器等。
以弹幕分发目标为视图为例,目前,对于安装于Android系统的音视频播放/直播应用软件,其向各个视图分发弹幕消息的方式是逐层传递的方式。具体来说,Android系统中的各个视图是按照层级关系布设的,那么基于该层级关系,可以构建各个视图之间的引用关系链。弹幕消息在各个视图之间的传递,便是按照上述引用关系链进行逐层传递的。参见图1,如果一个位于第三视图层104中的视图需要获取到弹幕消息101,那么该弹幕消息101需要按照引用关系链,先传递至第一视图层102,再由第一视图层102传递至第二视图层103,并最终由第二视图层103再传递至第三视图层104。这样,该视图获取弹幕消息的过程就比较复杂,用时较长,效率较低。而且,即便第一视图层102和第二视图层103中的视图不需要该弹幕消息,其也必须接收并传递该弹幕消息,无疑会造成系统资源的浪费。
现有的弹幕消息在音视频播放/直播应用软件中的分发方式存在分发过程复杂,分发效率低以及系统资源消耗较高的问题。
发明内容
本发明实施例提供一种弹幕消息分发方法、装置、设备及存储介质,以实现音视频播放/直播应用软件中弹幕消息的直达式分发,使得各个弹幕分发目标能够直接获得其所关注的弹幕消息,极大地提高了弹幕消息分发效率及分发有效性。
第一方面,本发明实施例提供了一种弹幕消息分发方法,包括:
依据待分发弹幕消息,确定当前消息标识;
依据所述当前消息标识,从弹幕分发目标和所述弹幕分发目标对应的消息标识列表之间的映射关系列表中,确定至少一个目标弹幕分发目标,并依据至少一个所述目标弹幕分发目标生成分发列表;
从所述分发列表中获取目标弹幕分发目标,并通过所述目标弹幕分发目标调用弹幕分发函数,将所述待分发弹幕消息分发至所述目标弹幕分发目标中,其中,所述弹幕分发函数为所述弹幕分发目标继承弹幕分发协议而获得。
第二方面,本发明实施例还提供了一种弹幕消息分发装置,该装置包括:
当前消息标识确定模块,用于依据待分发弹幕消息,确定当前消息标识;
分发列表生成模块,用于依据所述当前消息标识,从弹幕分发目标和所述弹幕分发目标对应的消息标识列表之间的映射关系列表中,确定至少一个目标弹幕分发目标,并依据至少一个所述目标弹幕分发目标生成分发列表;
弹幕消息分发模块,用于从所述分发列表中获取目标弹幕分发目标,并通过所述目标弹幕分发目标调用弹幕分发函数,将所述待分发弹幕消息分发至所述目标弹幕分发目标中,其中,所述弹幕分发函数为所述弹幕分发目标继承弹幕分发协议而获得。
第三方面,本发明实施例还提供了一种设备,该设备包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现本发明任意实施例所提供的弹幕消息分发方法。
第四方面,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现本发明任意实施例所提供的弹幕消息分发方法。
本发明实施例通过依据待分发弹幕消息,确定当前消息标识;依据当前消息标识,从弹幕分发目标和弹幕分发目标对应的消息标识列表之间的映射关系列表中,确定至少一个目标弹幕分发目标,并依据至少一个目标弹幕分发目标生成分发列表,实现了弹幕分发目标的筛选,获得了与当前消息标识相对应的分发列表,减少了无效的弹幕分发对象,为提高弹幕分发效率提供基础。通过弹幕分发目标继承弹幕分发协议以获得弹幕分发函数,使得弹幕分发目标中持有了弹幕分发接口和弹幕分发函数,建立了弹幕消息直达式分发的消息传输通道。通过从分发列表中获取目标弹幕分发目标,并通过目标弹幕分发目标调用从弹幕分发协议继承而来的弹幕分发函数,将待分发弹幕消息分发至目标弹幕分发目标中,实现了音视频播放/直播应用软件中弹幕消息的直达式分发,使得各个目标弹幕分发目标能够直接获得其所关注的弹幕消息,简化了弹幕消息分发过程,提高了弹幕消息的分发效率,也在一定程度上降低了系统的资源损耗。
附图说明
图1是现有技术中弹幕消息分发的过程示意图;
图2是本发明实施例一中的一种弹幕消息分发方法的流程图;
图3是本发明实施例一中的映射关系列表及分发列表的示意图;
图4是本发明实施例一中的弹幕消息分发的过程示意图;
图5是本发明实施例二中的一种弹幕消息分发方法的流程图;
图6是本发明实施例三中的一种弹幕消息分发方法中映射关系列表维护的流程图;
图7是本发明实施例四中的一种弹幕消息分发装置的结构示意图;
图8是本发明实施例五中的一种设备的结构示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
实施例一
本实施例提供的弹幕消息分发方法,可适用于Android客户端中的音视频播放/直播应用软件,将接收到的待分发弹幕消息分发至应用软件内与待分发弹幕消息相对应的各个弹幕分发目标,尤其适用于待分发弹幕消息的条数比较多的情况。该方法可以由弹幕消息分发装置来执行,该装置可以由软件和/或硬件的方式实现,该装置可以集成在安装有音视频播放/直播应用软件的设备中,例如典型的是用户终端设备,例如手机、平板电脑或智能电视等。参见图2,本实施例的方法具体包括如下步骤:
S110、依据待分发弹幕消息,确定当前消息标识。
其中,待分发弹幕消息是指等待分发至弹幕分发目标的弹幕消息,其是Android客户端从弹幕服务器中获取。消息标识是指能够标识弹幕消息的字符,其可以是数字、字母、符号及上述各种字符的任意组合,该消息标识应当是一条弹幕消息的唯一的、全局的标识。当前消息标识是指待分发弹幕消息的消息标识,其用于弹幕分发目标的筛选。
具体地,待分发弹幕消息的获取,可以是Android客户端向弹幕服务器发送数据获取请求,弹幕服务器被动响应数据获取请求来获取;优选是通过Android客户端中预先建立的弹幕监听器接口对象及所述弹幕监听器接口对象中作为回调函数的消息传输函数,接收弹幕服务器中的弹幕库对象回调消息传输函数发送的弹幕消息,所述弹幕监听器接口对象用于监听弹幕服务器中的弹幕库对象。也就是说,Android客户端从服务器获取弹幕消息是通过Android客户端中设置弹幕监听器接口对象,对弹幕服务器中的弹幕库对象进行监听,为弹幕服务器发送弹幕消息至Android客户端提供接口,且弹幕监听器中包含回调函数,为弹幕服务器发送弹幕消息至Android客户端提供调用函数指针。当弹幕消息到达弹幕服务器时,触发弹幕服务器主动调用回调函数,将弹幕消息通过弹幕监听器的接口发送至Android客户端,Android客户端则及时地、被动地接收弹幕消息,即待分发弹幕消息。上述弹幕监听器和回调函数便是Android客户端中设置的待分发弹幕消息获取协议和协议函数。Android客户端中获取待分发弹幕消息的模块是音视频播放/直播应用软件中进行弹幕消息分发的弹幕分发模块。
获取待分发弹幕消息之后,对其进行解析及重构,以获取待分发弹幕消息的消息标识type,作为当前消息标识。
S120、依据当前消息标识,从弹幕分发目标和弹幕分发目标对应的消息标识列表之间的映射关系列表中,确定至少一个目标弹幕分发目标,并依据至少一个目标弹幕分发目标生成分发列表。
其中,弹幕分发目标是音视频播放/直播应用软件中需要接收弹幕消息且满足直达式接收弹幕消息条件的组件对象,其数据类型为组件对象所属的数据类型,这里的直达式接收弹幕消息的条件将在后续进行说明。弹幕分发目标可以是用于弹幕消息显示的视图,也可以是用于对弹幕消息进行数据处理的业务控制器,还可以是对弹幕消息进行存储或传输的数据管理器。目标弹幕分发目标是指与当前消息标识相对应的弹幕分发目标,也就是说,目标弹幕分发目标是需要接收当前消息标识的弹幕消息的。
消息标识列表是指由消息标识构成的列表。参见图3,一个消息标识列表312中存储的是一个弹幕分发目标311可接收的弹幕消息的消息标识,其根据弹幕分发目标的可接收的弹幕消息预先建立。该消息标识列表容量与弹幕分发目标可接收的弹幕消息条数相对应,其至少存储一个消息标识。消息标识列表可以以数组形式存储,也可以以列表list的形式存储。映射关系列表是指存储弹幕分发目标、其对应的消息标识列表以及两者之间映射关系的列表。参见图3,一个映射关系列表310中存储的是至少一个弹幕分发目标311、至少一个与弹幕分发目标对应的消息标识列表312及两者之间的映射关系。本发明实施例中的映射关系列表中存储所有需要接收弹幕消息的弹幕分发目标及与其有映射关系的消息标识列表。同样地,映射关系列表可以以数组形式存储,也可以是查找表形式存储,优选是当消息标识列表以列表list形式存储时,映射关系列表以诸如map或set等键值对的数据结构存储,此时,映射关系列表310可转变为map映射关系列表330,这样能够便于映射关系列表的管理。该映射关系列表的创建及维护,将在实施例三中进行详述。分发列表是指存储目标弹幕分发目标的列表,目标弹幕分发目标的存储意味着弹幕分发模块持有了目标弹幕分发目标的引用关系,后续可以基于该引用关系进行待分发弹幕消息的分发。由图3可知,分发列表320中的目标弹幕分发目标是从映射关系列表310中筛选而来。
具体地,参见图3,以当前消息标识为查找索引,在映射关系列表310存储的各个消息标识列表312中进行对应查找,确定出包含当前消息标识的消息标识列表312。再由消息标识列表312进一步确定对应的弹幕分发目标311,将其作为目标弹幕分发目标。按照上述过程,对这个映射关系列表310进行遍历,以确定出所有的目标弹幕分发目标。将所有的目标弹幕分发目标存储至一个新的列表中,生成分发列表320。
S130、从分发列表中获取目标弹幕分发目标,并通过目标弹幕分发目标调用弹幕分发函数,将待分发弹幕消息分发至目标弹幕分发目标中,弹幕分发函数为弹幕分发目标继承弹幕分发协议而获得。
其中,弹幕分发协议是音视频播放/直播应用软件中预先定义的弹幕分发模块进行弹幕分发时所遵循的组件间通信协议。弹幕分发函数是用于进行弹幕消息分发的函数,其为弹幕分发协议的内部函数。如果弹幕分发目标继承了弹幕分发模块中定义的弹幕分发协议,那么弹幕分发目标就持有了弹幕分发协议接口及其内部函数,这样,弹幕分发目标就被注册至弹幕分发模块所在的弹幕分发总线中,在弹幕分发模块和各个弹幕分发目标之间也就建立了消息传输通道,且具备了实现弹幕消息透传式传输的函数,后续的弹幕消息就可以基于该消息传输通道和分发函数被直达式分发。详细的弹幕分发协议及弹幕分发函数的定义及继承将在后续进行说明。
具体地,获取了分发列表之后,弹幕分发模块就可以直接根据该分发列表进行待分发弹幕消息的分发,即弹幕分发模块从分发列表中以串行或并行的方式直接获取一个或多个目标弹幕分发目标。之后,由于目标弹幕分发目标是弹幕分发目标中的一部分,故其也继承了弹幕分发协议。那么,弹幕分发模块可以将待分发弹幕消息解析并重构为弹幕消息标识type和弹幕消息体msg的形式,并以获得的type和msg作为函数输入参数,通过目标弹幕分发目标调用其内部的弹幕分发函数onMessage(String type,Message msg),将待分发弹幕消息分发至目标弹幕分发目标中。上述待分发弹幕消息的分发形式可以为串行分发,例如利用for-each语句将待分发弹幕消息逐个分发至各个目标弹幕分发目标中;也可以为并行分发,例如同时并行地将待分发弹幕消息分发至各个目标弹幕分发目标中,具体的分发形式与目标弹幕分发目标的获取形式相对应。
示例性地,在通过当前弹幕分发目标调用弹幕分发函数,将待分发弹幕消息分发至当前弹幕分发目标中之前,还包括:依据待分发弹幕消息的弹幕消息获取协议,定义弹幕分发协议及弹幕分发协议中的弹幕分发函数;弹幕分发目标通过协议继承关键字,继承弹幕分发协议,以获得弹幕分发函数。
其中,弹幕消息获取协议是指Android客户端获取待分发弹幕消息时所遵循的通信协议,根据S110中所说明的,这里的弹幕消息获取协议是弹幕监听器及其内部所包含的回调函数。协议继承关键字是Java语言中规定的进行协议继承的关键字。
具体地,为了实现弹幕分发模块的直达式弹幕分发,本发明实施例中预先进行了弹幕分发协议的实现。更进一步地,为了实现对弹幕消息的透传式分发,本发明实施例中的弹幕分发协议为透传分发协议。弹幕分发协议是通过与Android客户端中弹幕消息获取协议采用一致的协议内部函数的形式来实现透传式分发的。
具体实施时,根据弹幕消息获取协议及其内部函数onMessage(String type,Message msg),定义弹幕分发协议IMessage及其内部函数——弹幕分发函数public voidonMessage(String type,Message msg),其中type为字符串string类型的弹幕消息标识,msg为消息Message类型的弹幕消息体。这里,弹幕消息体是指弹幕消息的承载者,其内包含具体地弹幕消息内容。之后,所有的弹幕分发目标均通过协议继承关键字implements,实现对弹幕分发协议的继承,以获得弹幕分发接口及弹幕分发函数。
参见图4,通过本发明实施例中的弹幕消息分发方法,弹幕消息401可以直接通过弹幕分发模块(或称为弹幕分发器)402发送至需要接收弹幕消息的视图中,即位于第三视图层405中的视图,而无需经过中间的第一视图层403和第二视图层404。
本实施例的技术方案,通过依据待分发弹幕消息,确定当前消息标识,构建了弹幕消息直达式分发的数据基础以及对弹幕分发目标进行筛选的依据。通过依据当前消息标识,从弹幕分发目标和弹幕分发目标对应的消息标识列表之间的映射关系列表中,确定至少一个目标弹幕分发目标,并依据至少一个目标弹幕分发目标生成分发列表,实现了弹幕分发目标的筛选,获得了与当前消息标识相对应的分发列表,减少了无效的弹幕分发对象,为提高弹幕分发效率提供基础。通过弹幕分发目标继承弹幕分发协议以获得弹幕分发函数,使得弹幕分发目标中持有了弹幕分发接口和弹幕分发函数,使得音视频播放/直播应用软件中的弹幕分发模块与弹幕分发目标之间具有了弹幕消息直达的消息传输通道。通过从分发列表中获取目标弹幕分发目标,并通过目标弹幕分发目标调用从弹幕分发协议继承而来的弹幕分发函数,将待分发弹幕消息分发至目标弹幕分发目标中,实现了音视频播放/直播应用软件中弹幕消息的直达式分发,使得各个目标弹幕分发目标能够直接获得其所关注的弹幕消息,极大地简化了弹幕消息分发过程,提高了弹幕消息的分发效率,也在一定程度上降低了系统的资源损耗。
实施例二
本实施例在上述实施例一的基础上,对“依据当前消息标识,从弹幕分发目标和弹幕分发目标对应的消息标识列表之间的映射关系列表中,确定至少一个目标弹幕分发目标,并依据至少一个目标弹幕分发目标生成分发列表”进行了进一步优化。在此基础上,还可以进一步对“从分发列表中获取目标弹幕分发目标”进行优化。在上述基础上,还可以进一步对“通过目标弹幕分发目标调用弹幕分发函数,将待分发弹幕消息分发至目标弹幕分发目标中”进行优化。其中与上述各实施例相同或相应的术语的解释在此不再赘述。参见图5,本实施例提供的弹幕消息分发方法包括:
S210、依据待分发弹幕消息,确定当前消息标识。
S220、依据映射关系列表,确定当前map映射关系。
其中,map映射关系是指以map数据类型存储的映射关系,map数据类型是以键值对的形式进行存储的数据结构。本实施例中的映射关系列表中的映射关系元素均以map数据类型存储,其中的弹幕分发目标为map结构中的键,消息标识列表为map结构中的值。当前map映射关系是指当前待处理的map映射关系。
具体地,从映射关系列表中获取一个map映射关系,作为当前map映射关系。为了便于列表管理及简化处理过程,通常是获取映射关系列表中的第一个map映射关系,作为当前map映射关系。
S230、依据当前map映射关系获取当前消息标识列表。
具体地,通过调用map值获取函数getValue,从当前map映射关系中获取其消息标识列表,作为当前消息标识列表listType。
S240、依据当前消息标识,调用当前消息标识列表的元素判断函数,判断当前消息标识列表中是否包含当前消息标识。
具体地,以当前消息标识localType为函数输入参数,调用当前消息标识列表的元素判断函数listType.contains(localType)。如果函数返回值为诸如true的确定性标识,则当前消息标识列表listType中包含当前消息标识localType,执行S250;如果函数返回值为诸如false的否定性标识,则当前消息标识列表listType中不包含当前消息标识localType,执行S260。
S250、将当前map映射关系对应的当前弹幕分发目标作为目标弹幕分发目标添加至预先创建的分发列表中。
具体地,在当前消息标识列表listType中包含当前消息标识localType时,通过调用map键获取函数getKey,从当前map映射关系中获取其包含的弹幕分发目标(即当前弹幕分发目标),作为目标弹幕分发目标。此处以目标弹幕分发目标为视图view为例,之后,通过分发列表的元素添加函数add(view)将该目标弹幕分发目标存储至预先创建的分发列表listView中,并执行S260。这里依据弹幕分发协议对象IMessage,通过列表类list创建分发列表,利用Android系统的动态数组类ArrayList进行分发列表listView的初始化,其代码可以为List<IMessage>listView=new ArrayList<IMessage>()。
S260、依据映射关系列表,获取下一个map映射关系,将下一个map映射关系更新为当前map映射关系,并返回执行依据当前map映射关系,获取当前map映射关系对应的当前消息标识列表的步骤,直至遍历完映射关系列表。
具体地,在当前map映射关系处理完之后,从映射关系列表listMap中获取一个新的map映射关系(即下一个map映射关系),并将其更新为当前map映射关系。之后,返回执行S230,直至对映射关系列表中的所有map映射关系均进行了查找操作。此时,获取到一个填充了所有目标弹幕分发目标的分发列表listView,之后执行S270。
S270、若分发列表存在,且分发列表的元素个数大于0,则依据分发列表获取目标弹幕分发目标。
具体地,上述过程是将目标弹幕分发目标存储于分发列表中,以实现映射关系列表的筛选,确定出当前消息标识对应的所有目标弹幕分发目标,并将其存储于分发列表中,以便于管理。本步骤则是逐个对目标弹幕分发目标进行弹幕分发的过程。
如果要通过分发列表来获取目标弹幕分发目标,则首先需要判断分发列表是否存在。如果分发列表不存在,则说明弹幕分发模块中没有建立目标弹幕分发目标的引用关系,则不进行该条待分发弹幕消息的分发,而是通过异常提示代码throw Exception抛出一个异常消息,以便开发人员快速定位出错位置,并且返回至获取待分发弹幕消息的步骤,以进行下一条弹幕消息的处理。
如果分发列表存在,则进一步通过列表元素数量获取函数count()来判断该分发列表的元素个数是否大于0。如果元素个数不大于0,则说明该列表虽然存在,但是其内部没有存储任何元素,同样不可进行弹幕消息的分发,返回至获取待分发弹幕消息的步骤,以进行下一条弹幕消息的处理。
如果列表元素个数大于0,则说明该待分发弹幕消息需要分发至分发列表中的每一个列表元素,此时通过分发列表获取其中map映射关系中的键信息,即目标弹幕分发目标。这样设置的好处在于,Android客户端中的音视频播放/直播应用软件可以直接通过对分发列表的访问,实现对所有目标弹幕分发目标进行弹幕消息的分发,而无需逐个判断组件对象是否为目标弹幕分发目标,可以进一步提高弹幕分发效率。
S280、依据弹幕分发协议对目标弹幕分发目标进行数据类型转换,获得目标弹幕分发协议对象,并通过目标弹幕分发协议对象调用弹幕分发函数,将待分发弹幕消息分发至目标弹幕分发目标中。
其中,弹幕分发协议对象是指基于弹幕分发协议而生成的对象。目标弹幕分发协议对象是目标弹幕分发目标进行数据类型转换之后的弹幕分发协议对象,其数据类型仅为弹幕分发协议对象。
具体地,弹幕分发模块在进行待分发弹幕消息的直达式分发时,是弹幕分发协议进行分发的,其在识别弹幕分发目标时,是通过弹幕分发协议对象进行识别的。虽然目标弹幕分发目标已经继承了弹幕分发协议,属于一种弹幕分发协议对象,但是其同时还是组件对象。为了便于弹幕分发协议的执行,利用目标弹幕分发目标进行弹幕消息的分发,需将其设置为单纯的弹幕分发协议对象。故在进行待分发弹幕消息的分发之前,需要先将目标弹幕分发目标的数据类型转换为弹幕分发协议对象IMessage,即获得目标弹幕分发协议对象。再通过目标弹幕分发协议对象调用弹幕分发函数,将待分发弹幕消息分发至目标弹幕分发目标中。
本实施例的技术方案,通过当前消息标识,对列表元素以map数据类型存储的映射关系列表进行遍历,确定出包含当前消息标识的map映射关系,并将该map映射关系中的弹幕分发目标确定为目标弹幕分发目标,存储于单独的分发列表中,实现了分发列表的构建,进一步缩短弹幕消息分发的耗时,并提高了待分发弹幕消息直达式分发的分发效率。
实施例三
本实施例在上述实施例的基础上,增加了映射关系列表维护的步骤,对映射关系列表的维护过程进行了阐述。本实施例中以弹幕分发目标为视图view为例进行说明,其中与上述各实施例相同或相应的术语的解释在此不再赘述。参见图6,本实施例提供的弹幕消息分发方法中映射关系列表的维护方法包括:
S310、创建map类型的映射关系列表。
具体地,根据上述说明可知,map结构中存储的是弹幕分发目标和消息标识列表,故创建map类型的映射关系列表时,应该以弹幕分发目标和消息标识列表的数据类型为依据,利用Android系统提供的列表类进行映射关系列表的创建,其实现代码可以为:List<Map<View,List<String>>>listMap=newArrayList<Hash<View,List<String>>>。
S320、在创建待添加弹幕分发目标之后,依据待添加弹幕分发目标和消息标识列表,调用列表元素添加函数,将待添加弹幕分发目标对应的待添加map映射关系添加至映射关系列表。
其中,待添加弹幕分发目标是指需要添加至映射关系列表中的弹幕分发目标。待添加map映射关系是与待添加弹幕分发目标对应的map映射关系。列表元素添加函数是预先定义的,可以对映射关系列表进行元素添加操作的函数。
具体地,Android客户端的音视频播放/直播应用软件中的每一个弹幕分发目标都有其生存周期,当弹幕分发目标被加载时,其被创建;当弹幕分发目标被退出时,其被销毁。那么,弹幕分发目标列表中对待添加弹幕分发目标的存储,也应该是在待添加弹幕分发目标的生存周期内实现。
具体实施时,在待添加弹幕分发目标被创建时,例如在视图view被创建时,在其生命周期起始函数onViewCreated中,以待添加弹幕分发目标view及其对应的消息标识列表listType为函数输入参数,调用列表元素添加函数Public void registerDanmu(List<String>listType,View view),将待添加弹幕分发目标对应的待添加map映射关系添加至映射关系列表。该列表元素添加函数的函数名称是registerDanmu,其是一个公有类型(public)的函数,以便弹幕分发模块能够方便的通过待添加弹幕分发目标来调用相应的弹幕分发业务逻辑。函数返回值数据类型为void类型,表明该函数没有返回值,不关注返回信息。
示例性地,列表元素添加函数通过如下步骤实现将待添加弹幕分发目标对应的待添加map映射关系添加至映射关系列表的功能:基于map类,调用map对象创建函数,创建map对象;依据待添加弹幕分发目标和消息标识列表,调用map对象的元素插入函数,构建待添加map映射关系;依据待添加map映射关系,调用映射关系列表的元素判断函数,判断映射关系列表中是否包含待添加map映射关系;若否,则依据待添加map映射关系,调用映射关系列表的元素添加函数,将待添加map映射关系添加至映射关系列表。
具体地,上述列表元素添加函数的功能实现过程为:首先通过系统提供的map类,调用map对象创建函数HashMap创建一个map对象,即Map<View,List<String>>map=newHashMap<View,List<String>>。之后,基于该map对象,以待添加弹幕分发目标和可接收消息标识列表为函数输入参数,调用map对象的元素插入函数put(view,listType),构建待添加map映射关系。然后,调用映射关系列表的元素判断函数listMap.contains(map),判断映射关系列表中是否包含待添加map映射关系。如果元素判断函数的返回值为诸如true的确定性标识,则说明映射关系列表listMap中已经包含了待添加map映射关系,则无需进行添加操作,直接结束本次列表元素添加操作。如果元素判断函数的返回值为诸如false的否定性标识,则说明映射关系列表listMap未包含待添加map映射关系,则调用映射关系列表的元素添加函数listMap.add(map),将待添加map映射关系添加至映射关系列表。这样设置的好处在于,能够减少代码执行过程中的逻辑错误,提高开发效率。
示例性地,在依据待添加弹幕分发目标和消息标识列表,调用列表元素添加函数,将待添加弹幕分发目标对应的待添加map映射关系添加至映射关系列表之前,还包括:依据弹幕分发协议,通过待添加弹幕分发目标调用实例判断关键字,判断待添加弹幕分发目标是否继承弹幕分发协议;若是,则执行依据待添加弹幕分发目标和消息标识列表,调用列表元素添加函数,将待添加弹幕分发目标对应的待添加map映射关系添加至映射关系列表的步骤。
其中,实例判断关键字是Java语言中规定的,以判断某一个对象是否是某一个类的实例的关键字,其使用方法为boolean result=object instanceof class,作用是判断实例判断关键字instanceof的左边对象object是否为其右边类class的实例,返回布尔类型boolean的返回值。
具体地,由于映射关系列表中存储的待添加弹幕分发目标均是弹幕分发的对象,而要实现弹幕消息的直达式分发,待添加弹幕分发目标均应当具备弹幕消息直达式分发的条件——继承了弹幕分发协议,也就是说添加至映射关系列表的待添加弹幕分发目标应当是弹幕分发协议接口的实例。那么,在执行列表元素添加操作之前,应该先通过实例判断关键字instanceof判定待添加弹幕分发目标是否为弹幕分发协议的实例,其代码实现可以为boolean result=view instanceof IMessage。如果返回值为诸如true的确定性标识,则说明待添加弹幕分发目标是为弹幕分发协议的实例,则可执行元素添加操作。否则,直接结束本次列表元素添加操作,以进行下一个待添加弹幕分发目标的添加操作。这样设置的好处在于,能够进一步提高映射关系列表的有效性及可用性。
S330、在销毁待删除弹幕分发目标之前,依据待删除弹幕分发目标,调用列表元素删除函数,将待删除弹幕分发目标对应的待删除map映射关系从映射关系列表中删除。
其中,待删除弹幕分发目标是指需要从映射关系列表中删除的弹幕分发目标。待删除map映射关系是与待删除弹幕分发目标对应的map映射关系。列表元素删除函数是预先定义的,可以对映射关系列表进行元素删除操作的函数。
具体地,当待删除弹幕分发目标(以视图为例)即将被销毁时,在其生命周期结束函数onDeatch中,将待删除弹幕分发目标从映射关系列表中移除。具体实施时,在待删除弹幕分发目标被销毁之前,以待删除弹幕分发目标view为函数输入参数,调用列表元素删除函数Public void unregisterDanmu(View view),将待删除弹幕分发目标对应的待删除map映射关系从映射关系列表中移除。该列表元素添加函数的函数名称是unregisterDanmu,其是一个公有类型(public)的函数,以便弹幕分发模块能够方便的通过待删除弹幕分发目标来调用相应的弹幕分发业务逻辑。函数返回值数据类型为void类型,表明该函数没有返回值,不关注返回信息。
示例性地,列表元素删除函数通过如下步骤实现将待删除弹幕分发目标对应的待删除map映射关系从映射关系列表中删除的功能:判断列表元素删除函数的输入参数是否为与待删除弹幕分发目标对应的目标输入参数;若是,则依据映射关系列表,获取至少一个弹幕分发目标对应的map映射关系中的map键信息;依据待删除弹幕分发目标及至少一个map键信息,确定映射关系列表中是否包含的待删除map映射关系;若是,则依据待删除map映射关系,调用映射关系列表的元素删除函数,将待删除map映射关系从映射关系列表中删除。
具体地,上述列表元素删除函数的功能实现过程为:首先通过view==null的方式判断函数输入参数是否是待删除弹幕分发目标对应的目标输入参数。若否,则说明列表元素删除函数的输入参数设置错误,该列表元素删除函数无法继续执行,故结束本次列表元素删除操作。
若输入参数为目标输入参数,则需进一步判断映射关系列表中是否包含的待删除map映射关系。具体是从映射关系列表中获取map映射关系,并通过map结构的键获取函数getKey获取该map映射关系的键信息,即弹幕分发目标,将该弹幕分发目标与待删除弹幕分发目标进行比较。如果两者一致,则说明从映射关系列表中获取的上述map映射关系即为待删除map映射关系,映射关系列表中包含待删除map映射关系,此时调用映射关系列表的元素删除函数listMap.remove(map),将待删除map映射关系从映射关系列表中删除。如果两者不一致,则说明从映射关系列表中获取的上述map映射关系不是待删除map映射关系,此时结束本次删除操作,并进行映射关系列表中下一个map映射关系的对比判断,直至映射关系列表中的所有元素被操作完毕。上述过程可以是逐个从映射关系列表中获取map映射关系以串行机制处理,也可以是从映射关系列表中获取多个map映射关系以并行机制处理。
本实施例的技术方案,通过创建并维护一个列表元素以map数据类型存储的映射关系列表,对弹幕分发目标及其对应的消息标识列表进行高效管理,能够进一步提高目标弹幕分发目标的筛选速度。通过列表元素添加函数和列表元素删除函数对映射关系列表进行动态维护,能够提高映射关系列表中数据更新的实时性,从而提高弹幕分发目标筛选的有效性,进而进一步提高弹幕消息的分发效率。
以下是本发明实施例提供的弹幕消息分发装置的实施例,该装置与上述各实施例的弹幕消息分发方法属于同一个发明构思,在弹幕消息分发装置的实施例中未详尽描述的细节内容,可以参考上述弹幕消息分发方法的实施例。
实施例四
本实施例提供一种弹幕消息分发装置,参见图7,该装置具体包括:
当前消息标识确定模块710,用于依据待分发弹幕消息,确定当前消息标识;
分发列表生成模块720,用于依据当前消息标识确定模块710确定的当前消息标识,从弹幕分发目标和弹幕分发目标对应的消息标识列表之间的映射关系列表中,确定至少一个目标弹幕分发目标,并依据至少一个目标弹幕分发目标生成分发列表;
弹幕消息分发模块730,用于从分发列表生成模块720生成的分发列表中获取目标弹幕分发目标,并通过目标弹幕分发目标调用弹幕分发函数,将待分发弹幕消息分发至目标弹幕分发目标中,其中,弹幕分发函数为弹幕分发目标继承弹幕分发协议而获得。
可选地,在上述装置的基础上,该装置还包括映射关系列表维护模块740,该映射关系列表维护模块740包括:
映射关系列表创建子模块,用于在依据当前消息标识,从弹幕分发目标和弹幕分发目标对应的消息标识列表之间的映射关系列表中,确定至少一个目标弹幕分发目标之前,创建map类型的映射关系列表;
列表元素添加子模块,用于在创建待添加弹幕分发目标之后,依据待添加弹幕分发目标和消息标识列表,调用列表元素添加函数,将待添加弹幕分发目标对应的待添加map映射关系添加至映射关系列表;
列表元素删除子模块,用于在销毁待删除弹幕分发目标之前,依据待删除弹幕分发目标,调用列表元素删除函数,将待删除弹幕分发目标对应的待删除map映射关系从映射关系列表中删除。
其中,列表元素添加子模块包括列表元素添加函数执行单元,用于通过如下步骤实现将所述待添加弹幕分发目标对应的待添加map映射关系添加至所述映射关系列表的功能:
基于map类,调用map对象创建函数,创建map对象;
依据待添加弹幕分发目标和消息标识列表,调用map对象的元素插入函数,构建待添加map映射关系;
依据待添加map映射关系,调用映射关系列表的元素判断函数,判断映射关系列表中是否包含待添加map映射关系;
若否,则依据待添加map映射关系,调用映射关系列表的元素添加函数,将待添加map映射关系添加至映射关系列表。
其中,列表元素删除子模块包括列表元素删除函数执行单元,用于通过如下步骤实现将所述待删除弹幕分发目标对应的待删除map映射关系从所述映射关系列表中删除的功能:
判断列表元素删除函数的输入参数是否为与待删除弹幕分发目标对应的目标输入参数;
若是,则依据映射关系列表,获取至少一个弹幕分发目标对应的map映射关系中的map键信息;
依据待删除弹幕分发目标及至少一个map键信息,确定映射关系列表中是否包含的待删除map映射关系;
若是,则依据待删除map映射关系,调用映射关系列表的元素删除函数,将待删除map映射关系从映射关系列表中删除。
可选地,分发列表生成模块720具体用于:
依据映射关系列表,确定当前map映射关系;
依据当前map映射关系获取当前消息标识列表;
依据当前消息标识,调用当前消息标识列表的元素判断函数,判断当前消息标识列表中是否包含当前消息标识;
若是,则将当前map映射关系对应的当前弹幕分发目标作为目标弹幕分发目标添加至预先创建的分发列表中;
依据映射关系列表,获取下一个map映射关系,将下一个map映射关系更新为当前map映射关系,并返回执行依据当前map映射关系,获取当前map映射关系对应的当前消息标识列表的步骤,直至遍历完映射关系列表。
可选地,在上述装置的基础上,该装置还包括:弹幕分发协议继承模块750,用于在依据待添加弹幕分发目标和消息标识列表,调用列表元素添加函数,将待添加弹幕分发目标对应的待添加map映射关系添加至映射关系列表之前,依据弹幕分发协议,通过待添加弹幕分发目标调用实例判断关键字,判断待添加弹幕分发目标是否继承弹幕分发协议;
若是,则执行依据待添加弹幕分发目标和消息标识列表,调用列表元素添加函数,将待添加弹幕分发目标对应的待添加map映射关系添加至映射关系列表的步骤。
可选地,弹幕消息分发模块730具体用于:
若分发列表存在,且分发列表的元素个数大于0,则依据分发列表获取目标弹幕分发目标。
可选地,弹幕消息分发模块730具体用于:依据弹幕分发协议对目标弹幕分发目标进行数据类型转换,并通过类型转换后的目标弹幕分发目标调用弹幕分发函数,将待分发弹幕消息分发至目标弹幕分发目标中。
通过本发明实施例四的一种弹幕消息分发装置,实现了音视频播放/直播应用软件中弹幕消息的直达式分发,使得各个弹幕分发目标能够直接获得其所关注的弹幕消息,极大地提高了弹幕消息分发效率及分发有效性。
本发明实施例所提供的弹幕消息分发装置可执行本发明任意实施例所提供的弹幕消息分发方法,具备执行方法相应的功能模块和有益效果。
值得注意的是,上述弹幕消息分发装置的实施例中,所包括的各个单元和模块只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。
实施例五
参见图8,本实施例提供了一种设备800,其包括:一个或多个处理器820;存储装置810,用于存储一个或多个程序,当一个或多个程序被一个或多个处理器820执行,使得一个或多个处理器820实现本发明实施例所提供的弹幕消息分发方法,包括:
依据待分发弹幕消息,确定当前消息标识;
依据当前消息标识,从弹幕分发目标和弹幕分发目标对应的消息标识列表之间的映射关系列表中,确定至少一个目标弹幕分发目标,并依据至少一个目标弹幕分发目标生成分发列表;
从分发列表中获取目标弹幕分发目标,并通过目标弹幕分发目标调用弹幕分发函数,将待分发弹幕消息分发至目标弹幕分发目标中,其中,弹幕分发函数为弹幕分发目标继承弹幕分发协议而获得。
当然,本领域技术人员可以理解,处理器820还可以实现本发明任意实施例所提供的弹幕消息分发方法的技术方案。
图8显示的设备800仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。如图8所示,该设备800包括处理器820、存储装置810、输入装置830和输出装置840;设备中处理器820的数量可以是一个或多个,图8中以一个处理器820为例;设备中的处理器820、存储装置810、输入装置830和输出装置840可以通过总线或其他方式连接,图8中以通过总线850连接为例。
存储装置810作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序以及模块,如本发明实施例中的弹幕消息分发方法对应的程序指令/模块(例如,弹幕消息分发装置中的当前消息标识确定模块、分发列表生成模块和弹幕消息分发模块)。
存储装置810可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据终端的使用所创建的数据等。此外,存储装置810可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实例中,存储装置810可进一步包括相对于处理器820远程设置的存储器,这些远程存储器可以通过网络连接至设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
输入装置830可用于接收输入的数字或字符信息,以及产生与设备的用户设置以及功能控制有关的键信号输入。输出装置840可包括显示屏等显示设备。
实施例六
本实施例提供一种包含计算机可执行指令的存储介质,该计算机可执行指令在由计算机处理器执行时用于执行一种弹幕消息分发方法,该方法包括:
依据待分发弹幕消息,确定当前消息标识;
依据当前消息标识,从弹幕分发目标和弹幕分发目标对应的消息标识列表之间的映射关系列表中,确定至少一个目标弹幕分发目标,并依据至少一个目标弹幕分发目标生成分发列表;
从分发列表中获取目标弹幕分发目标,并通过目标弹幕分发目标调用弹幕分发函数,将待分发弹幕消息分发至目标弹幕分发目标中,其中,弹幕分发函数为弹幕分发目标继承弹幕分发协议而获得。
当然,本发明实施例所提供的一种包含计算机可执行指令的存储介质,其计算机可执行指令不限于如上所述的方法操作,还可以执行本发明任意实施例所提供的弹幕消息分发方法中的相关操作。
通过以上关于实施方式的描述,所属领域的技术人员可以清楚地了解到,本发明可借助软件及必需的通用硬件来实现,当然也可以通过硬件实现,但很多情况下前者是更佳的实施方式。依据这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如计算机的软盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(RandomAccess Memory,RAM)、闪存(FLASH)、硬盘或光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所提供的弹幕消息分发方法。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。

Claims (9)

1.一种弹幕消息分发方法,其特征在于,包括:
依据待分发弹幕消息,确定当前消息标识;
创建map类型的映射关系列表;
在创建待添加弹幕分发目标之后,依据所述待添加弹幕分发目标和消息标识列表,调用列表元素添加函数,将所述待添加弹幕分发目标对应的待添加map映射关系添加至所述映射关系列表;
在销毁待删除弹幕分发目标之前,依据所述待删除弹幕分发目标,调用列表元素删除函数,将所述待删除弹幕分发目标对应的待删除map映射关系从所述映射关系列表中删除;
依据所述当前消息标识,从弹幕分发目标和所述弹幕分发目标对应的消息标识列表之间的映射关系列表中,确定至少一个目标弹幕分发目标,并依据至少一个所述目标弹幕分发目标生成分发列表;
从所述分发列表中获取所述目标弹幕分发目标,并通过所述目标弹幕分发目标调用弹幕分发函数,将所述待分发弹幕消息分发至所述目标弹幕分发目标中,其中,所述弹幕分发函数为所述弹幕分发目标继承弹幕分发协议而获得。
2.根据权利要求1所述的方法,其特征在于,所述列表元素添加函数通过如下步骤实现将所述待添加弹幕分发目标对应的待添加map映射关系添加至所述映射关系列表的功能:
基于map类,调用map对象创建函数,创建map对象;
依据所述待添加弹幕分发目标和所述消息标识列表,调用所述map对象的元素插入函数,构建所述待添加map映射关系;
依据所述待添加map映射关系,调用所述映射关系列表的元素判断函数,判断所述映射关系列表中是否包含所述待添加map映射关系;
若否,则依据所述待添加map映射关系,调用所述映射关系列表的元素添加函数,将所述待添加map映射关系添加至所述映射关系列表。
3.根据权利要求1所述的方法,其特征在于,所述列表元素删除函数通过如下步骤实现将所述待删除弹幕分发目标对应的待删除map映射关系从所述映射关系列表中删除的功能:
判断所述列表元素删除函数的输入参数是否为与所述待删除弹幕分发目标对应的目标输入参数;
若是,则依据所述映射关系列表,获取至少一个所述弹幕分发目标对应的map映射关系中的map键信息;
依据所述待删除弹幕分发目标及至少一个所述map键信息,确定所述映射关系列表中是否包含的所述待删除map映射关系;
若是,则依据所述待删除map映射关系,调用所述映射关系列表的元素删除函数,将所述待删除map映射关系从所述映射关系列表中删除。
4.根据权利要求1所述的方法,其特征在于,所述依据所述当前消息标识,从弹幕分发目标和所述弹幕分发目标对应的消息标识列表之间的映射关系列表中,确定至少一个目标弹幕分发目标,并依据所述至少一个目标弹幕分发目标生成分发列表包括:
依据所述映射关系列表,确定当前map映射关系;
依据所述当前map映射关系获取当前消息标识列表;
依据所述当前消息标识,调用所述当前消息标识列表的元素判断函数,判断所述当前消息标识列表中是否包含所述当前消息标识;
若是,则将所述当前map映射关系对应的所述当前弹幕分发目标作为目标弹幕分发目标添加至预先创建的所述分发列表中;
依据所述映射关系列表,获取下一个map映射关系,将所述下一个map映射关系更新为当前map映射关系,并返回执行依据所述当前map映射关系,获取所述当前map映射关系对应的当前消息标识列表的步骤,直至遍历完所述映射关系列表。
5.根据权利要求1所述的方法,其特征在于,在所述依据所述待添加弹幕分发目标和所述消息标识列表,调用列表元素添加函数,将所述待添加弹幕分发目标对应的待添加map映射关系添加至所述映射关系列表之前,还包括:
依据所述弹幕分发协议,通过所述待添加弹幕分发目标调用实例判断关键字,判断所述待添加弹幕分发目标是否继承所述弹幕分发协议;
若是,则执行所述依据所述待添加弹幕分发目标和所述消息标识列表,调用列表元素添加函数,将所述待添加弹幕分发目标对应的待添加map映射关系添加至所述映射关系列表的步骤。
6.根据权利要求1所述的方法,其特征在于,在所述通过所述当前弹幕分发目标调用弹幕分发函数,将所述待分发弹幕消息分发至所述当前弹幕分发目标中之前,还包括:
依据所述待分发弹幕消息的弹幕消息获取协议,定义所述弹幕分发协议及所述弹幕分发协议中的所述弹幕分发函数;
所述弹幕分发目标通过协议继承关键字,继承所述弹幕分发协议,以获得所述弹幕分发函数。
7.一种弹幕消息分发装置,其特征在于,包括:
当前消息标识确定模块,用于依据待分发弹幕消息,确定当前消息标识;
分发列表生成模块,用于依据所述当前消息标识,从弹幕分发目标和所述弹幕分发目标对应的消息标识列表之间的映射关系列表中,确定至少一个目标弹幕分发目标,并依据至少一个所述目标弹幕分发目标生成分发列表;
弹幕消息分发模块,用于从所述分发列表中获取目标弹幕分发目标,并通过所述目标弹幕分发目标调用弹幕分发函数,将所述待分发弹幕消息分发至所述目标弹幕分发目标中,其中,所述弹幕分发函数为所述弹幕分发目标继承弹幕分发协议而获得;
映射关系列表维护模块,包括:
映射关系列表创建子模块,用于在依据当前消息标识,从弹幕分发目标和弹幕分发目标对应的消息标识列表之间的映射关系列表中,确定至少一个目标弹幕分发目标之前,创建map类型的映射关系列表;
列表元素添加子模块,用于在创建待添加弹幕分发目标之后,依据待添加弹幕分发目标和消息标识列表,调用列表元素添加函数,将待添加弹幕分发目标对应的待添加map映射关系添加至映射关系列表;
列表元素删除子模块,用于在销毁待删除弹幕分发目标之前,依据待删除弹幕分发目标,调用列表元素删除函数,将待删除弹幕分发目标对应的待删除map映射关系从映射关系列表中删除。
8.一种弹幕消息分发设备,其特征在于,所述设备包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-6中任一所述的弹幕消息分发方法。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1-6中任一所述的弹幕消息分发方法。
CN201810688456.XA 2018-06-28 2018-06-28 弹幕消息分发方法、装置、设备及存储介质 Active CN108810644B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810688456.XA CN108810644B (zh) 2018-06-28 2018-06-28 弹幕消息分发方法、装置、设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810688456.XA CN108810644B (zh) 2018-06-28 2018-06-28 弹幕消息分发方法、装置、设备及存储介质

Publications (2)

Publication Number Publication Date
CN108810644A CN108810644A (zh) 2018-11-13
CN108810644B true CN108810644B (zh) 2020-10-16

Family

ID=64071037

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810688456.XA Active CN108810644B (zh) 2018-06-28 2018-06-28 弹幕消息分发方法、装置、设备及存储介质

Country Status (1)

Country Link
CN (1) CN108810644B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115442635A (zh) * 2021-06-04 2022-12-06 武汉斗鱼鱼乐网络科技有限公司 一种跨平台安全过滤弹幕的方法、装置、设备和存储介质

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1220507A1 (en) * 2000-12-22 2002-07-03 Sun Microsystems, Inc. Creating web content in a client and server system
CN105338410A (zh) * 2014-07-07 2016-02-17 乐视网信息技术(北京)股份有限公司 视频的弹幕显示方法及装置
CN107690078A (zh) * 2017-09-28 2018-02-13 腾讯科技(深圳)有限公司 弹幕信息显示方法、提供方法以及设备
CN107707986A (zh) * 2017-10-09 2018-02-16 武汉斗鱼网络科技有限公司 一种在直播软件的开发中模拟弹幕消息的方法及装置
CN108023808A (zh) * 2017-12-07 2018-05-11 深圳乐信软件技术有限公司 应用程序中的消息分发方法及装置
CN108174309A (zh) * 2018-01-16 2018-06-15 深圳市瑞致达科技有限公司 弹幕广告播放方法、弹幕广告播放装置以及可读存储介质
CN108173861A (zh) * 2017-12-29 2018-06-15 北京奇虎科技有限公司 一种视频直播的方法、装置和直播分发连接器
CN108200463A (zh) * 2018-01-19 2018-06-22 上海哔哩哔哩科技有限公司 弹幕表情包的生成方法、服务器及弹幕表情包的生成系统

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1220507A1 (en) * 2000-12-22 2002-07-03 Sun Microsystems, Inc. Creating web content in a client and server system
CN105338410A (zh) * 2014-07-07 2016-02-17 乐视网信息技术(北京)股份有限公司 视频的弹幕显示方法及装置
CN107690078A (zh) * 2017-09-28 2018-02-13 腾讯科技(深圳)有限公司 弹幕信息显示方法、提供方法以及设备
CN107707986A (zh) * 2017-10-09 2018-02-16 武汉斗鱼网络科技有限公司 一种在直播软件的开发中模拟弹幕消息的方法及装置
CN108023808A (zh) * 2017-12-07 2018-05-11 深圳乐信软件技术有限公司 应用程序中的消息分发方法及装置
CN108173861A (zh) * 2017-12-29 2018-06-15 北京奇虎科技有限公司 一种视频直播的方法、装置和直播分发连接器
CN108174309A (zh) * 2018-01-16 2018-06-15 深圳市瑞致达科技有限公司 弹幕广告播放方法、弹幕广告播放装置以及可读存储介质
CN108200463A (zh) * 2018-01-19 2018-06-22 上海哔哩哔哩科技有限公司 弹幕表情包的生成方法、服务器及弹幕表情包的生成系统

Also Published As

Publication number Publication date
CN108810644A (zh) 2018-11-13

Similar Documents

Publication Publication Date Title
CN108536492B (zh) 一种直播间属性信息获取方法、装置、设备及存储介质
CN108882053B (zh) 弹幕消息分发方法、装置、设备及存储介质
CN111182019B (zh) 跨平台通信方法及装置、电子设备
CN110753129A (zh) 消息传输方法、系统、装置、设备及计算机可读存储介质
CN109062650B (zh) 弹幕消息分发方法、装置、设备及存储介质
CN110457132B (zh) 一种功能对象的创建方法、装置和终端设备
CN108810644B (zh) 弹幕消息分发方法、装置、设备及存储介质
CN109167819B (zh) 数据同步系统、方法、装置及存储介质
CN109302639B (zh) 一种弹幕消息的分发方法、装置、终端和存储介质
CN108810645B (zh) 弹幕消息分发方法、装置、设备及存储介质
CN109005465B (zh) 弹幕消息分发方法、装置、设备及存储介质
CN109274988B (zh) 弹幕消息分发方法、装置、设备及存储介质
CN109089163B (zh) 弹幕消息分发方法、装置、设备及存储介质
CN109005448B (zh) 弹幕消息分发方法、装置、设备及存储介质
CN113687958A (zh) 数据处理方法、系统、计算机设备和存储介质
CN110324722B (zh) 直播间中数据的获取方法、装置、设备和存储介质
CN116233217B (zh) 基于路由的页面跳转方法、装置、电子设备及存储介质
CN108924653B (zh) 弹幕消息分发方法、装置、设备和存储介质
CN109101340B (zh) 弹幕消息的动态分发方法、装置、设备和存储介质
CN109144520B (zh) Android中不同对象间的信息交互方法、装置、设备和存储介质
CN109144639B (zh) 弹幕消息分发方法、装置、设备及存储介质
CN108881991B (zh) 弹幕消息分发方法、装置、设备及存储介质
CN109413498B (zh) 一种弹幕消息的分发方法、装置、终端和存储介质
CN109168079B (zh) 弹幕消息分发方法、装置、设备及存储介质
CN109309848B (zh) 基于重试机制的弹幕分发方法、装置、设备及存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant