弹幕消息分发方法、装置、设备及存储介质制造方法及图纸

技术编号:19857044 阅读:36 留言:0更新日期:2018-12-22 11:36
本发明专利技术实施例公开了一种弹幕消息分发方法、装置、设备及存储介质。该方法包括:分发目标对象依据弹幕分发器对象及弹幕消息获取协议,确定分发协议对象;在检测到上一条目标弹幕消息处理完成时,分发目标对象以消息标识列表为函数输入参数,通过分发协议对象调用弹幕消息获取函数,以使弹幕分发器对象回调弹幕消息获取函数,获得函数返回值,其中,弹幕消息获取函数为弹幕分发器对象继承弹幕消息获取协议而获得;若函数返回值不为空对象,则分发目标对象将函数返回值确定为当前目标弹幕消息。通过上述技术方案,实现弹幕消息的直达式分发,提高弹幕消息分发效率。同时保持弹幕消息的分发状态与处理状态同步,提高分发目标对象的性能稳定性。

【技术实现步骤摘要】
弹幕消息分发方法、装置、设备及存储介质
本专利技术实施例涉及计算机技术,尤其涉及一种弹幕消息分发方法、装置、设备及存储介质。
技术介绍
在诸如斗鱼的音视频播放/直播应用软件中,会大量使用弹幕消息。通常,这些弹幕消息是由音视频播放/直播应用软件逐条分发给需要使用弹幕消息的各个分发目标对象,如视图对象、业务控制器对象或数据管理器对象等。以视图对象为例,对于安装于Android系统的音视频播放/直播应用软件,其向各个视图对象分发弹幕消息的方式是按照视图层级的引用关系链逐层地将弹幕消息传递至目标视图对象。参见图1,如果一个位于第三视图层104中的视图需要获取到弹幕消息101,那么该弹幕消息101需要按照引用关系链,先传递至第一视图层102,再由第一视图层102传递至第二视图层103,并最终由第二视图层103再传递至第三视图层104,使得弹幕消息的分发过程复杂,耗时长,效率低。并且在上述过程中,即便第一视图层102和第二视图层103中的视图对象不需要该弹幕消息,其也必须接收并传递该弹幕消息,无疑会造成系统资源的浪费。另外,上述弹幕消息分发操作是实时触发的,即接收到新的弹幕消息时触发执行弹幕消息分发。如果接收弹幕消息的视图对象中有正在处理的弹幕消息,那么该视图对象就需要同时处理多条弹幕消息,会使得视图对象内部的业务逻辑复杂化,容易引入多线程问题。总之,现有的弹幕消息在音视频播放/直播应用软件中的分发方式存在分发过程复杂,分发效率低以及容易引起弹幕分发目标对象处理性能不稳定的问题。
技术实现思路
本专利技术实施例提供一种弹幕消息分发方法、装置、设备和存储介质,以实现弹幕消息的直达式分发,简化弹幕消息分发过程,提高弹幕消息分发效率。同时保持弹幕分发器中弹幕消息的分发状态与分发目标对象中弹幕消息的处理状态同步,提高分发目标对象的性能稳定性。第一方面,本专利技术实施例提供了一种弹幕消息分发方法,包括:分发目标对象依据弹幕分发器对象及弹幕消息获取协议,确定分发协议对象;在检测到上一条目标弹幕消息处理完成时,所述分发目标对象以消息标识列表为函数输入参数,通过所述分发协议对象调用弹幕消息获取函数,以使所述弹幕分发器对象回调所述弹幕消息获取函数,获得函数返回值,其中,所述弹幕消息获取函数为所述弹幕分发器对象继承所述弹幕消息获取协议而获得;若所述函数返回值不为空对象,则所述分发目标对象将所述函数返回值确定为当前目标弹幕消息。第二方面,本专利技术实施例还提供了一种弹幕消息分发装置,该装置包括:协议对象确定模块,用于分发目标对象依据弹幕分发器对象及弹幕消息获取协议,确定分发协议对象;函数返回值确定模块,用于在检测到上一条目标弹幕消息处理完成时,所述分发目标对象以消息标识列表为函数输入参数,通过所述分发协议对象调用弹幕消息获取函数,以使所述弹幕分发器对象回调所述弹幕消息获取函数,获得函数返回值,其中,所述弹幕消息获取函数为所述弹幕分发器对象继承所述弹幕消息获取协议而获得;弹幕消息确定模块,用于若所述函数返回值不为空对象,则所述分发目标对象将所述函数返回值确定为当前目标弹幕消息。第三方面,本专利技术实施例还提供了一种设备,该设备包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现本专利技术任意实施例所提供的弹幕消息分发方法。第四方面,本专利技术实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现本专利技术任意实施例所提供的弹幕消息分发方法。本专利技术实施例通过分发目标对象获取继承了弹幕消息获取协议及其内包含的弹幕消息获取函数的弹幕分发器对象,构建了弹幕分发器对象与分发目标对象之间的消息传输通道,使得弹幕分发器对象与分发目标对象之间能够直接进行弹幕消息的传输,简化了弹幕消息的分发过程,提高了弹幕消息的分发效率。通过在检测到上一条目标弹幕消息处理完成时,分发目标对象获取其对应的当前目标弹幕消息,实现了分发目标对象根据其内部的上一条目标弹幕消息处理状态主动获取当前目标弹幕消息,提高了弹幕消息分发的及时性,也使得弹幕分发器中弹幕消息的分发状态与分发目标对象中弹幕消息的处理状态之间保持同步,从而减少了分发目标对象内部的弹幕消息并行处理业务逻辑,提高了分发目标对象的性能稳定性。通过分发目标对象以消息标识列表为函数输入参数,由弹幕分发器对象转换而得到的分发协议对象调用作为回调函数的弹幕消息获取函数,获得弹幕分发器对象反馈的函数返回值,且在函数返回值不为空对象时,将函数返回值确定为当前目标弹幕消息,使得分发目标对象直接获取其对应的当前目标弹幕消息,减少了无关弹幕消息的获取过程,进一步简化了弹幕消息的分发过程,从而进一步提高了弹幕消息的分发效率。附图说明图1是现有技术中弹幕消息分发的过程示意图;图2是本专利技术实施例一中的一种弹幕消息分发方法的流程图;图3是本专利技术实施例一中的弹幕消息分发的过程示意图;图4是本专利技术实施例二中的一种弹幕消息分发方法的流程图;图5是本专利技术实施例三中的弹幕消息获取函数实现过程的流程图;图6是本专利技术实施例四中的一种弹幕消息分发装置的结构示意图;图7是本专利技术实施例五中的一种设备的结构示意图。具体实施方式下面结合附图和实施例对本专利技术作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本专利技术,而非对本专利技术的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本专利技术相关的部分而非全部结构。实施例一本实施例提供的弹幕消息分发方法,可适用于Android客户端中的音视频播放/直播应用软件将接收到的待分发弹幕消息,分发至应用软件内与待分发弹幕消息相对应的各个分发目标对象,尤其适用于待分发弹幕消息的条数比较多的情况。该方法可以由弹幕消息分发装置来执行,该装置可以由软件和/或硬件的方式实现,该装置可以集成在安装有音视频播放/直播应用软件的设备中,例如典型的是用户终端设备,例如手机、平板电脑或智能电视等。参见图2,本实施例的方法具体包括如下步骤:S110、分发目标对象依据弹幕分发器对象及弹幕消息获取协议,确定分发协议对象。其中,分发目标对象是指音视频播放/直播应用软件中需要接收弹幕消息,且满足直达式接收弹幕消息条件的组件对象,例如可以是用于弹幕消息显示的视图对象,也可以是用于对弹幕消息进行数据处理的业务控制器对象,还可以是对弹幕消息进行存储或传输的数据管理器对象。上述直达式接收弹幕消息的条件将在后续进行说明。弹幕分发器是指用于进行弹幕消息分发的弹幕分发模块,该模块中为实现弹幕消息分发操作而定义了弹幕分发器类,而弹幕分发器对象则是弹幕分发器类的一个实例,其是弹幕消息分发操作的具体执行者。弹幕消息获取协议是预先定义的、用于进行弹幕消息直达式分发的组件间的通信协议。示例性地,弹幕消息获取协议为具有公有权限修饰符的接口类型,且包含弹幕消息获取函数;弹幕消息获取函数具有公有权限修饰符,且函数返回值类型为Java-Object数据类型。其代码实现可以为:publicinterfaceIFetchMsg{publicObjectfetchMsg(List<String>listType)}。其中,public为公有权项修饰符,这样本文档来自技高网...

【技术保护点】
1.一种弹幕消息分发方法,其特征在于,包括:分发目标对象依据弹幕分发器对象及弹幕消息获取协议,确定分发协议对象;在检测到上一条目标弹幕消息处理完成时,所述分发目标对象以消息标识列表为函数输入参数,通过所述分发协议对象调用弹幕消息获取函数,以使所述弹幕分发器对象回调所述弹幕消息获取函数,获得函数返回值,其中,所述弹幕消息获取函数为所述弹幕分发器对象继承所述弹幕消息获取协议而获得;若所述函数返回值不为空对象,则所述分发目标对象将所述函数返回值确定为当前目标弹幕消息。

【技术特征摘要】
1.一种弹幕消息分发方法,其特征在于,包括:分发目标对象依据弹幕分发器对象及弹幕消息获取协议,确定分发协议对象;在检测到上一条目标弹幕消息处理完成时,所述分发目标对象以消息标识列表为函数输入参数,通过所述分发协议对象调用弹幕消息获取函数,以使所述弹幕分发器对象回调所述弹幕消息获取函数,获得函数返回值,其中,所述弹幕消息获取函数为所述弹幕分发器对象继承所述弹幕消息获取协议而获得;若所述函数返回值不为空对象,则所述分发目标对象将所述函数返回值确定为当前目标弹幕消息。2.根据权利要求1所述的方法,其特征在于,在所述获得函数返回值之后,还包括:若所述函数返回值为所述空对象,则所述分发目标对象间隔消息重获时间段,返回执行所述以消息标识列表为函数输入参数,通过所述分发协议对象调用弹幕消息获取函数,以使所述弹幕分发器对象回调所述弹幕消息获取函数,获得函数返回值的步骤,直至确定所述当前目标弹幕消息。3.根据权利要求1所述的方法,其特征在于,所述弹幕消息获取函数通过如下步骤实现获得函数返回值的功能:所述弹幕分发器对象从第一消息列表中按序获取一条弹幕消息,作为当前弹幕消息;所述弹幕分发器对象依据所述当前弹幕消息确定当前消息标识;所述弹幕分发器对象依据所述当前消息标识和所述消息标识列表,确定所述消息标识列表中是否包含所述当前消息标识;若是,则所述弹幕分发器对象将所述当前弹幕消息确定为所述函数返回值;若否,则所述弹幕分发器对象从所述第一消息列表中按序获取下一条弹幕消息,更新当前弹幕消息,返回执行所述依据所述当前弹幕消息确定当前消息标识的步骤,直至确定所述消息标识列表中包含所述当前消息标识或遍历完所述第一消息列表,并在遍历完所述第一消息列表时,将所述空对象确定为所述函数返回值。4.根据权利要求3所述的方法,其特征在于,在所述弹幕分发器对象将所述当前弹幕消息作为函数返回值之前,还包括:所述弹幕分发器对象按序逐条获取所述第一消息列表中的剩余弹幕消息,并按照所述剩余弹幕消息的获取顺序,逐条将所述剩余弹幕消息存储至第二消息列表;在所述弹幕分发器对象从所述第一消息列表中按序获取下一条弹幕消息之前,还包括:所述弹幕分发器对象将所述当前弹幕消息存储至所述第二消息列表;在所述弹幕分发器...

【专利技术属性】
技术研发人员:张磊
申请(专利权)人:武汉斗鱼网络科技有限公司
类型:发明
国别省市:湖北,42

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1