CN109302639A - 一种弹幕消息的分发方法、装置、终端和存储介质 - Google Patents

一种弹幕消息的分发方法、装置、终端和存储介质 Download PDF

Info

Publication number
CN109302639A
CN109302639A CN201811162350.2A CN201811162350A CN109302639A CN 109302639 A CN109302639 A CN 109302639A CN 201811162350 A CN201811162350 A CN 201811162350A CN 109302639 A CN109302639 A CN 109302639A
Authority
CN
China
Prior art keywords
weak reference
interface object
direct broadcasting
broadcasting room
barrage
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.)
Granted
Application number
CN201811162350.2A
Other languages
English (en)
Other versions
CN109302639B (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 CN201811162350.2A priority Critical patent/CN109302639B/zh
Publication of CN109302639A publication Critical patent/CN109302639A/zh
Application granted granted Critical
Publication of CN109302639B publication Critical patent/CN109302639B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/21Server components or server architectures
    • H04N21/218Source of audio or video content, e.g. local disk arrays
    • H04N21/2187Live feed
    • 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/431Generation of visual interfaces for content selection or interaction; Content or additional data rendering
    • H04N21/4312Generation of visual interfaces for content selection or interaction; Content or additional data rendering involving specific graphical features, e.g. screen layout, special fonts or colors, blinking icons, highlights or animations
    • H04N21/4314Generation of visual interfaces for content selection or interaction; Content or additional data rendering involving specific graphical features, e.g. screen layout, special fonts or colors, blinking icons, highlights or animations for fitting data in a restricted space on the screen, e.g. EPG data in a rectangular grid
    • 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/488Data services, e.g. news ticker
    • H04N21/4884Data services, e.g. news ticker for displaying subtitles

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Databases & Information Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • User Interface Of Digital Computer (AREA)
  • Storage Device Security (AREA)

Abstract

本发明实施例公开了一种弹幕消息的分发方法、装置、终端和存储介质。该方法包括:对弱引用集合对象中,以弱引用形式存储的直播间的弱引用接口对象进行依次遍历,其中,所述弱引用集合对象在弹幕分发对象中构建;从不为空的弱引用接口对象中,确定当前正在运行的目标直播间的目标弱引用接口对象;获取所述目标弱引用接口对象中的目标监听器接口对象,并根据所述目标监听器接口对象,将所述弹幕分发对象中的弹幕消息发送到所述目标直播间。通过采用上述技术方案,解决弹幕消息在分发过程中由于直播间切换而导致的内存泄露的问题。

Description

一种弹幕消息的分发方法、装置、终端和存储介质
技术领域
本发明实施例涉及弹幕技术领域,尤其涉及一种弹幕消息的分发方法、装置、终端和存储介质。
背景技术
随着网络交互平台的发展,越来越多的用户通过登录网络交互平台进行交流。其中,网络直播是非常受广大用户欢迎的应用。用户在观看直播的过程中,可以通过发送弹幕来表达自己的情感。其中,弹幕服务包括用户弹幕接收、处理和推送等重要功能。当客户端接收到弹幕服务器发送的弹幕消息后,需对弹幕消息分发到客户端正在运行的直播间中。
当不同类型的直播间在切换时,前一个直播间需先执行销毁函数,后一个直播间才进行注册。但由于不同直播间页面的生命周期是由系统控制的,其流程是不确定的,因此无法保证多个直播间之间的生命周期时序。如果不同直播间在切换时,后一个直播间先进行注册后,前一个直播间才执行销毁函数,这样就会导致弹幕库中同时存在两个直播间的引用关系。虽然前一个直播间执行了销毁函数,但系统的垃圾回收机制无法将其引用关系断开,造成前一个直播间无法得到释放,从而导致了内存泄露的问题。
发明内容
本发明实施例提供一种弹幕消息的分发方法、装置、终端和存储介质,以解决弹幕消息在分发过程中由于直播间切换而导致的内存泄露的问题。
第一方面,本发明实施例提供了弹幕消息分发方法,该方法包括:
对弱引用集合对象中,以弱引用形式存储的直播间的弱引用接口对象进行依次遍历,其中,所述弱引用集合对象在弹幕分发对象中构建;
从不为空的弱引用接口对象中,确定当前正在运行的目标直播间的目标弱引用接口对象;
获取所述目标弱引用接口对象中的目标监听器接口对象,并根据所述目标监听器接口对象,将所述弹幕分发对象中的弹幕消息发送到所述目标直播间。
进一步的,在对弱引用集合中,以弱引用形式存储的直播间的监听器接口对象进行依次遍历之前,所述方法还包括:
当检测到直播间启动时,在所述直播间对应的类的创建函数中,获取预设弹幕分发类的弹幕分发对象;
通过调用所述弹幕分发对象的弱引用关系创建函数,将完成初始化的监听器接口对象转换为弱引用接口对象;
调用弱引用接口对象的添加函数,将所述弱引用接口对象添加到弱引用集合对象中。
进一步的,所述监听器接口对象通过调用预设监听器接口协议的实现类的构造函数完成初始化,所述实现类通过关键字implements继承自所述预设监听器接口协议。
进一步的,所述预设监听器接口协议中包括弹幕消息的接收方法;
相应的,获取目标弱引用接口对象中的目标监听器接口对象,并根据所述目标监听器接口对象,将所述弹幕分发对象中的弹幕消息发送到所述目标直播间,包括:
调用监听器接口对象获取方法,获取目标弱引用接口对象中的目标监听器接口对象;
调用所述目标监听器接口对象的所述接收方法,将所述弹幕分发对象中的弹幕消息发送到所述目标监听器接口对象对应的目标直播间。
进一步的,所述方法还包括:
在直播间的切换过程中,当检测到切换前的直播间的页面销毁时,在该切换前直播间的类的销毁函数中,调用所述弹幕分发对象的监听器接口清空方法,以清空该直播间的监听器接口对象;
相应的,将切换后直播间的弱引用接口对象作为目标弱引用接口对象。
进一步的,实现调用所述弹幕分发对象的接口清空方法的功能,通过执行如下步骤来实现:
调用空对象设置方法,将空对象赋值给监听器接口对象。
进一步的,在对弱引用集合对象中,以弱引用形式存储的直播间的弱引用接口对象进行依次遍历之前,所述方法还包括:
调用弱引用集合对象的尺寸判断方法,获取弱引用集合中的元素个数;
判断所述元素个数是否大于零,如果小于零,则不进行弹幕分发。
第二方面,本发明实施例还提供了弹幕消息的分发装置,该装置包括:
弱引用接口对象遍历模块,用于对弱引用集合对象中,以弱引用形式存储的直播间的弱引用接口对象进行依次遍历,其中,所述弱引用集合对象在弹幕分发对象中构建;
目标弱引用接口对象确定模块,用于从不为空的弱引用接口对象中,确定当前正在运行的目标直播间的目标弱引用接口对象;
弹幕消息分发模块,用于获取所述目标弱引用接口对象中的目标监听器接口对象,并根据所述目标监听器接口对象,将所述弹幕分发对象中的弹幕消息发送到所述目标直播间。
进一步的,该装置还包括:
弹幕分发对象获取模块,用于当检测到直播间启动时,在所述直播间对应的类的创建函数中,获取预设弹幕分发类的弹幕分发对象;
弱引用接口对象转换模块,用于通过调用所述弹幕分发对象的弱引用关系创建函数,将完成初始化的监听器接口对象转换为弱引用接口对象;
弱引用接口对象添加模块,用于调用弱引用接口对象的添加函数,将所述弱引用接口对象添加到弱引用集合对象中。
进一步的,所述监听器接口对象通过调用预设监听器接口协议的实现类的构造函数完成初始化,所述实现类通过关键字implements继承自所述预设监听器接口协议。
进一步的,所述预设监听器接口协议中包括弹幕消息的接收方法;
相应的,所述弹幕消息分发模块具体用于:
调用监听器接口对象获取方法,获取目标弱引用接口对象中的目标监听器接口对象;
调用所述目标监听器接口对象的所述接收方法,将所述弹幕分发对象中的弹幕消息发送到所述目标监听器接口对象对应的目标直播间。
进一步的,该装置还包括:
监听器接口对象清空模块,用于在直播间的切换过程中,当检测到切换前的直播间的页面销毁时,在该切换前直播间的类的销毁函数中,调用所述弹幕分发对象的监听器接口清空方法,以清空该直播间的监听器接口对象;
相应的,将切换后直播间的弱引用接口对象作为目标弱引用接口对象。
进一步的,实现调用所述弹幕分发对象的接口清空方法的功能,通过执行如下步骤来实现:
调用空对象设置方法,将空对象赋值给监听器接口对象。
进一步的,该装置还包括:
元素个数判断模块,用于在对弱引用集合对象中,以弱引用形式存储的直播间的弱引用接口对象进行依次遍历之前,调用弱引用集合对象的尺寸判断方法,获取弱引用集合中的元素个数;判断所述元素个数是否大于零,如果小于零,则不进行弹幕分发。
第三方面,本发明实施例还提供了一种终端,所述终端包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现本发明任意实施例所提供的弹幕消息的分发方法。
第四方面,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现本发明任意实施例所提供的弹幕消息的分发方法。
本发明实施例的技术方案,将直播间的监听器接口对象包裹为弱引用接口对象存储于弹幕分发器的弱引用集合对象中,使得弱引用集合对象持有弹幕分发器与直播间之间的引用关系。通过利用弱引用本身具有在系统内存空间不足时易被垃圾回收器回收的特性,当直播间切换时,以弱引用形式存储的监听器接口对象将会被垃圾回收器回收,从而断开弹幕分发器与切换前直播间的引用关系,使得系统能够对切换前的直播间进行释放,从而解决了内存泄露的问题。对于切换后的直播间,在弱引用集合对象中,将会持有该直播间与弹幕分发器之间的引用关系,如果该直播间为正在运行的直播间,则从该直播间的弱引用接口对象中获取目标监听器接口对象,并根据该目标监听器接口对象向该直播间发送弹幕消息,实现了将弹幕消息发送到正在运行的直播间中。
附图说明
图1为本发明实施例一提供的一种弹幕消息的分发方法的流程图;
图2为本发明实施例二提供的一种弹幕消息的分发方法的流程图;
图3为本发明实施例三提供的一种弹幕消息的分发装置的结构框图;
图4为本发明实施例四提供的一种终端的结构示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
实施例一
图1为本发明实施例一提供的一种弹幕消息的分发方法的流程图,该方法可以由弹幕消息的分发装置来执行,该装置可以通过软件和/或硬件的方式实现,该装置可以集成在手机或平板电脑等智能终端中。参见图1,本实施例的方法具体包括:
S110、对弱引用集合对象中,以弱引用形式存储的直播间的弱引用接口对象进行依次遍历,其中,所述弱引用集合对象在弹幕分发对象中构建。
其中,弱引用是比软引用强度更低一种引用方式。如果一个对象只具有弱引用,则它的生命周期更加短暂,那么当垃圾回收器其在扫描他所管理的内存区域时,不管内存空间是否足够,都会将该对象进行回收。本实施例中即利用弱引用这一特性,将各直播间的监听器接口对象都包裹为弱引用接口对象存储于弹幕分发类中的弱引用集合对象中,即弹幕分发器中持有与各直播间之间的引用关系。
示例性的,在建立引用关系之前,需要在弹幕分发器中定义一个弱引用集合对象weakRouterLis,以存储与各直播间的引用关系。具体的定义方法如下:
Private List<WeakReference<DanmuRouterListener>>weakRouterLis。
在定义弱引用集合对象时,是将集合的泛型对象设计为监听器接口类型的对象,其作用就是在弱引用集合对象中按照弱引用形式存储直播间的监听器接口类型DanmuRouterListener的对象。
示例性的,可通过弹幕分发类的构造函数对弱引用集合对象进行初始化操作,具体的初始化方法如下:
weakRouterList=new ArrayList<WeakReference<DanmuRouterListener>>()。
需要说明的是,由于弱引用集合对象是用于存储直播间的监听器接口类型的对象,即存储弹幕分发器与直播间的引用关系,因此需在弹幕分发类中定义添加该引用关系的函数,具体弱引用关系创建函数addWeakDanmuRouteListene的设计方法如下:
Public void addWeakDanmuRouteListener(DanmuRouteListenermDanmuRouteListener)。该函数的参数为监听器接口对象,在弱引用关系创建函数addWeakDanmuRouteListener中,如果传入的参数不为空,则需要将存入的参数转化为弱引用接口对象,并添加到弱引用集合对象中。
由于弱引用关系创建函数为公有Public类型的函数,这样直播间对应的类可通过调用该函数,并将直播间的监听器接口对象转化为弱引用接口对象存入弱引用集合对象中。
在弱引用关系创建方法定义后,当直播间启动时,可通过调用弱引用关系创建方法,将完成初始化的监听器接口对象转换为弱引用接口对象,并将该弱引用接口对象存入弱引用集合对象中。
本实施例的方法应用与弹幕分发过程中。当弹幕消息到达弹幕分发器中时,可通过调用弱引用集合对象的元素获取方法weakRouterList.get(i),得到弱引用类型WeakReference<DanmuRouteListener>类型的弱引用接口对象weakRouter。
其中,为遍历的索引index。在获取到弱引用接口对象之后,可判断该对象是否为空对象,如果为空对象,则说明垃圾回收器已切换该对象所对应的直播间与弹幕库之间的引用关系,即将该弱引用对象已被回收;如果该对象为非空对象,则说明该弱引用接口对象对应的直播间存在两种情况:1、该直播间为正在运行的直播间;2、该直播间已执行了销毁函数,但垃圾回收器还未对该直播间的弱引用接口对象进行回收处理。此时,该直播间也可接收弹幕消息。为了提供弹幕消息的分发效率,避免将弹幕消息发送到即将销毁的直播间中,本实施例的步骤S120将对正在运行的直播间的目标弱引用接口对象进行识别。
S120、从不为空的弱引用接口对象中,确定当前正在运行的目标直播间的目标弱引用接口对象。
可以理解的是,当直播间在进行切换时,切换前的直播间都会执行页面销毁函数onDestroy。这样垃圾回收器在内存进行清理时,如果检测到该直播间执行销毁函数,则对该直播间对应的弱引用接口对象进行清理。
可选的,可对执行页面销毁函数的直播间进行销毁标记。当对弱引用对象进行遍历,并判断弱引用对象不为空对象时,根据销毁标记可确定该直播间已执行了页面销毁函数,此时,可说明该直播间与弹幕分发器之间的引用关系将会被垃圾回收器切断,因此,可将该直播间确定为非正在运行的直播间。并且,可将弱引用接口对象不为空,且未进行销毁标记的直播间作为正在运行的目标直播间。
优选的,在直播间在切换过程中,当检测到前一个直播间的页面销毁时,在该前一个直播间的类的销毁函数中,调用弹幕分发对象的监听器接口清空方法clearDanmuRouterListener(),以清空该直播间的监听器接口对象。具体的,可通过空对象设置方法,将空对象赋值给直播间的监听器接口对象。这样设置,可解决同时存在两个直播间的弱引用接口对象不为空的问题,即只有切换后直播间的弱引用接口对象不为空对象,即可将切换后直播间的弱引用接口对象作为目标弱引用接口对象,此时,目标弱引用接口对象对应的直播间即为当前正在运行的目标直播间。
通过上述设置,可将弹幕消息发送到正在运行的目标直播间,而避免在直播间页面执行销毁函数且在垃圾回收器回收引用关系之前的空档期,将弹幕消息发送到已执行销毁函数的页面中。
S130、获取目标弱引用接口对象中的目标监听器接口对象,并根据目标监听器接口对象,将弹幕分发对象中的弹幕消息发送到目标直播间。
示例性的,可通过调用监听器接口对象获取weakRouter.get()方法,从弱引用接口对象中获取具体的目标监听器接口对象realDanmuRouteListener,如果该对象为非空对象,则通过该对象建立了正在运行的直播间与弹幕分发器之间的唯一通道,利用该通道,可将弹幕消息发送到正在运行的目标直播间中。
本发明实施例的技术方案,将直播间的监听器接口对象包裹为弱引用接口对象存储于弹幕分发器的弱引用集合对象中,使得弱引用集合对象持有弹幕分发器与直播间之间的引用关系。通过利用弱引用本身具有在系统内存空间不足时易被垃圾回收器回收的特性,本实施例的技术方案当直播间切换时,以弱引用形式存储的监听器接口对象将会被垃圾回收器回收,从而断开弹幕分发器与切换前直播间的引用关系,系统将切换前直播间释放,从而解决了内存泄露的问题。对于切换后的直播间,在弱引用集合对象中,将会持有该直播间与弹幕分发器之间的引用关系,如果该直播间为正在运行的直播间,则从该直播间的弱引用接口对象中获取目标监听器接口对象,并根据该目标监听器接口对象向该直播间发送弹幕消息,实现了将弹幕消息发送到正在运行的直播间中。
进一步的,需要说明的是,上述实施例的技术方案是在基于弱引用集合对象中存在元素的情况下进行的,如果弱引用集合对象中不存任何元素,则说明弹幕分发器未与任何直播间建立引用关系,此时则不进行弹幕消息的分发。因此,在对弱引用集合对象中,以弱引用形式存储的直播间的弱引用接口对象进行依次遍历之前,需判断弱引用集合对象中的元素个数,具体可通过调用弱引用集合对象的尺寸判断weakRouterList.size()方法,获取弱引用集合中的元素个数count,判断元素个数是否大于零,如果小于零,则不进行弹幕分发。
实施例二
图2为本发明实施例二提供的一种弹幕消息的分发方法的流程图,本实施例在上述实施例的基础,将直播间对应的监听器接口对象进行初始化,并将完成初始化的监听器接口对象转换为弱引用接口对象,并存入弱引用集合对象中的过程进行了优化,其中与上述实施例相同或相应的术语的解释在此不再赘述。参见图2,本实施例提供的方法包括:
S210、当检测到直播间启动时,在直播间对应的类的创建函数中,获取预设弹幕分发类的弹幕分发对象。
每个直播间在启动时,都会调用生命周期的创建函数onCreate,该函数主要是在直播间启动时进行一些必要的初始化工作。
本实施例中的当前直播间可以为应用程序所支持显示的任意类型的直播间,例如半屏直播间、颜值直播间和游戏直播间等。在检测到当前直播间启动时,可通过调用预设弹幕分发类DanmuClient中的对象获取方法DanmuClient.getInstance()方法,得到预设弹幕分发类的弹幕分发对象。
其中,弹幕分发类中的对象获取方法DanmuClient.getInstance()为单例模式,即每次调用该方法,返回的是同一个对象。本实施例中,对于任意类型的直播间,通过调用该方法,得到的都是预设弹幕分发类中的弹幕分发对象mDanmuClient。
本实施例在获取到弹幕分发对象之后,可调用弹幕分对象中的函数,向弹幕分发对象传递参数,以建立直播间与弹幕分发对象之间的引用关系。
S220、通过调用弹幕分发对象的弱引用关系创建函数,将完成初始化的监听器接口对象转换为弱引用接口对象。
下面首先对直播间的监听器对象的初始化过程进行说明:
首先需要说明的是,直播间的类中定义的监听器接口变量为全局变量,只有当该变量为空时才对其进行初始化,否则不进行初始化。这样设置的好处原因在于:保证了一个直播间的活动页面中有且仅有一个监听器接口协议类型的对象,这样每个直播间的活动页面就只会添加一个监听器接口对象到弹幕分发对象中,以避免在弹幕分发过程中将相同的弹幕消息多次发送到相同的直播间页面中。
由于本发明实施例建立弹幕分发对象与直播间之间的引用关系是为了对弹幕消息按照直播间的类型进行分发,因此,当弹幕分发对象唯一指向一种类型的直播间的监听器接口对象时,弹幕分发对象可利用监听器接口对象中的弹幕接收方法对弹幕消息进行分发。为了使得不同直播间对应的监听器接口对象具有弹幕接收方法,本发明实施例首先定义了一个弹幕消息的预设监听器接口协议,该协议为监听器接口类型,通过将直播间对应的类继承该预设监听器接口协议,可使直播间对应的监听器接口对象具有该弹幕接收方法。
具体的,该接收协议DanmuRouterListener的定义方法如下:
Public interface DanmuRouterListener{
Public void onReceiveGiftBean(GiftBean giftBean);
Public void onReceiveTipsBean(TipsBean tipsBean)
}
其中,在该预设监听器接口协议DanmuRouterListener中包含了一些列的弹幕消息的接收方法,每一个方法对应的是一种类型的弹幕信息。也就是说一套弹幕消息被解析完后变成一个唯一的Bean对象,后续通过定义的这些接收方法来将该Bean对象发送到直播间中。
示例性的,对当前直播间对应的类中的监听器接口对象进行初始化,可通过将直播间所对应的当前类继承上述预先定义的预设监听器接口协议,从而使得当前监听器接口对象具有预设监听器接口协议中的各弹幕消息的接收方法,完成监听器接口对象的初始化。
优选的,当前监听器接口对象还可通过调用预设监听器接口协议的实现类的构造函数完成初始化,所述实现类通过关键字implements继承自预设监听器接口协议。
具体的,预设监听器接口协议的实现类DanmuRouterListenerImp的定义方法如下:
Public class DanmuRouterListenerImp implements DanmuRouterListener{
@override
Public void onReceiveGiftBean(GiftBean giftBean){}
@override
Public void onReceiveTipsBean(TipsBean tipsBean){}
}
该实现类DanmuRouterListenerImp通过关键字implements继承预设监听器接口协议DanmuRouterListener之后,可实现协议DanmuRouterListener中的所有的弹幕接收onReceiver方法。在每一个实现的函数中都会添加上一个@override标记用于表示是对预设监听器接口协议中的方法的复写。
进一步的,由于当前直播间已获取到弹幕分发对象,因此可调用弹幕分发对象中的一些方法。本实施中,在当前监听器接口对象在完成初始化后,通过调用弹幕分发对象的弱引用关系创建函数addWeakDanmuRouteListener,将完成初始化的监听器接口对象转换为弱引用接口对象。
具体的,在函数addWeakDanmuRouteListener中首先需要对参数信息进行判定处理,首先判定传入的监听器接口对象是否为空,如果为空,则说明传入的是非法参数,则直接返回不做处理;如果不为空,则需要将监听器接口对象对象包裹成一个弱引用对象,具体的包裹方法如下:
通过调用弱引用对象转换方法WeakReference<DanmuRouteListener>weakDanmuRouteListener=new WeakReference<DanmuRouteListener>(mDanmuRouteListener)方法将直播间的监听器接口对象mDanmuRouteListener对象转化成一个弱引用包裹的弱引用接口对象weakDanmuRouteListener。
S230、调用弱引用接口对象的添加函数,将弱引用接口对象添加到弱引用集合对象中。
其中,弱引用接口对象的添加函数weakRouterList.add()的作用是向预先定义的弱引用集合对象中添加元素。本实施例中是将弱引用接口对象作为参数,调用该添加函数,将直播间的以弱引用形式存在的监听器接口对象添加到弱引用集合对象中。这样集合weakRouterList中就持有直播间弱引用接口对象weakDanmuRouteListener的引用关系了。
S240、对弱引用集合对象中,以弱引用形式存储的直播间的弱引用接口对象进行依次遍历,其中,所述弱引用集合对象在弹幕分发对象中构建。
S250、从不为空的弱引用接口对象中,确定当前正在运行的目标直播间的目标弱引用接口对象。
S260、调用监听器接口对象获取方法,获取目标弱引用接口对象中的目标监听器接口对象,调用目标监听器接口对象的弹幕接收方法,将弹幕分发对象中的弹幕消息发送到目标监听器接口对象对应的目标直播间。
基于步骤S220的内容可知,在预设监听器接口协议中包括弹幕消息的接收方法,因此,在利用预设监听器接口协议对直播间的监听器接口对象进行初始化后,直播间的监听器接口对象也具有该弹幕消息的接收方法。因此,在向目标直播间发送弹幕消息时,可通过调用目标监听器接口对象的弹幕消息接收方法,将弹幕消息发送正在运行的目标直播间,提高了弹幕的分发效率。
本实施例在上述实施例的基础上,通过预先在弹幕分发类中设计包含有弹幕接收方法的预设监听器接口协议,并利用该协议对直播间的监听器接口对象进行初始化,可使得初始化后的监听器接口对象具有弹幕接收方法。将直播间的监听器接口对象包裹为弱引用接口对象并存入弹幕分发类的弱引用集合对象中,使得弱引用集合对象持有弹幕分发器和直播间之间的引用关系,通过利用该引用关系,并在确定正在运行的直播间后,可利用监听器接口对象中的弹幕接收方法将弹幕消息发送到正在运行的目标直播间中,提高了弹幕的分发效率。
实施例三
图3为本发明实施例三提供的一种弹幕消息的分发装置的结构框图,该装置包括:弱引用接口对象遍历模块310、目标弱引用接口对象确定模块320和弹幕消息分发模块330。
其中,弱引用接口对象遍历模块310,用于对弱引用集合对象中,以弱引用形式存储的直播间的弱引用接口对象进行依次遍历,其中,所述弱引用集合对象在弹幕分发对象中构建;
目标弱引用接口对象确定模块320,用于从不为空的弱引用接口对象中,确定当前正在运行的目标直播间的目标弱引用接口对象;
弹幕消息分发模块330,用于获取所述目标弱引用接口对象中的目标监听器接口对象,并根据所述目标监听器接口对象,将所述弹幕分发对象中的弹幕消息发送到所述目标直播间。
本发明实施例的技术方案,将直播间的监听器接口对象包裹为弱引用接口对象存储于弹幕分发器的弱引用集合对象中,使得弱引用集合对象持有弹幕分发器与直播间之间的引用关系。通过利用弱引用本身具有在系统内存空间不足时易被垃圾回收器回收的特性,本实施例的技术方案当直播间切换时,以弱引用形式存储的监听器接口对象将会被垃圾回收器回收,从而断开弹幕分发器与切换前直播间的引用关系,系统将切换前直播间释放,从而解决了内存泄露的问题。对于切换后的直播间,在弱引用集合对象中,将会持有该直播间与弹幕分发器之间的引用关系,如果该直播间为正在运行的直播间,则从该直播间的弱引用接口对象中获取目标监听器接口对象,并根据该目标监听器接口对象向该直播间发送弹幕消息,实现了将弹幕消息发送到正在运行的直播间中。
在上述实施例的基础上,该装置还包括:
弹幕分发对象获取模块,用于当检测到直播间启动时,在所述直播间对应的类的创建函数中,获取预设弹幕分发类的弹幕分发对象;
弱引用接口对象转换模块,用于通过调用所述弹幕分发对象的弱引用关系创建函数,将完成初始化的监听器接口对象转换为弱引用接口对象;
弱引用接口对象添加模块,用于调用弱引用接口对象的添加函数,将所述弱引用接口对象添加到弱引用集合对象中。
在上述实施例的基础上,所述监听器接口对象通过调用预设监听器接口协议的实现类的构造函数完成初始化,所述实现类通过关键字implements继承自所述预设监听器接口协议。
在上述实施例的基础上,所述预设监听器接口协议中包括弹幕消息的接收方法;
相应的,所述弹幕消息分发模块具体用于:
调用监听器接口对象获取方法,获取目标弱引用接口对象中的目标监听器接口对象;
调用所述目标监听器接口对象的所述接收方法,将所述弹幕分发对象中的弹幕消息发送到所述目标监听器接口对象对应的目标直播间。
在上述实施例的基础上,该装置还包括:
监听器接口对象清空模块,用于在直播间的切换过程中,当检测到切换前的直播间的页面销毁时,在该切换前直播间的类的销毁函数中,调用所述弹幕分发对象的监听器接口清空方法,以清空该直播间的监听器接口对象;
相应的,将切换后直播间的弱引用接口对象作为目标弱引用接口对象。
在上述实施例的基础上,实现调用所述弹幕分发对象的接口清空方法的功能,通过执行如下步骤来实现:
调用空对象设置方法,将空对象赋值给监听器接口对象。
在上述实施例的基础上,该装置还包括:
元素个数判断模块,用于在对弱引用集合对象中,以弱引用形式存储的直播间的弱引用接口对象进行依次遍历之前,调用弱引用集合对象的尺寸判断方法,获取弱引用集合中的元素个数;判断所述元素个数是否大于零,如果小于零,则不进行弹幕分发。
本发明实施例所提供的弹幕消息的分发装置可执行本发明任意实施例所提供的弹幕消息的分发方法,具备执行方法相应的功能模块和有益效果。未在上述实施例中详尽描述的技术细节,可参见本发明任意实施例所提供的弹幕消息的分发方法。
实施例四
图4为本发明实施例四提供的一种终端的结构示意图。图4示出了适于用来实现本发明实施方式的示例性终端12的框图。图4显示的终端12仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图4所示,终端12以通用计算设备的形式表现。终端12的组件可以包括但不限于:一个或者多个处理器或者处理单元16,系统存储器28,连接不同系统组件(包括系统存储器28和处理单元16)的总线18。
总线18表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(ISA)总线,微通道体系结构(MAC)总线,增强型ISA总线、视频电子标准协会(VESA)局域总线以及外围组件互连(PCI)总线。
终端12典型地包括多种计算机系统可读介质。这些介质可以是任何能够被终端12访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。
系统存储器28可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(RAM)30和/或高速缓存存储器32。终端12可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机系统存储介质。仅作为举例,存储系统34可以用于读写不可移动的、非易失性磁介质(图4未显示,通常称为“硬盘驱动器”)。尽管图4中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如CD-ROM,DVD-ROM或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线18相连。存储器28可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本发明各实施例的功能。
具有一组(至少一个)程序模块42的程序/实用工具40,可以存储在例如存储器28中,这样的程序模块42包括但不限于操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块42通常执行本发明所描述的实施例中的功能和/或方法。
终端12也可以与一个或多个外部设备14(例如键盘、指向设备、显示器24等)通信,还可与一个或者多个使得用户能与该终端12交互的设备通信,和/或与使得该终端12能与一个或多个其它计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口22进行。并且,终端12还可以通过网络适配器20与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器20通过总线18与终端12的其它模块通信。应当明白,尽管图中未示出,可以结合终端12使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
处理单元16通过运行存储在系统存储器28中的程序,从而执行各种功能应用以及数据处理,例如实现本发明实施例所提供的弹幕消息的分发方法,该方法包括:
对弱引用集合对象中,以弱引用形式存储的直播间的弱引用接口对象进行依次遍历,其中,所述弱引用集合对象在弹幕分发对象中构建;
从不为空的弱引用接口对象中,确定当前正在运行的目标直播间的目标弱引用接口对象;
获取所述目标弱引用接口对象中的目标监听器接口对象,并根据所述目标监听器接口对象,将所述弹幕分发对象中的弹幕消息发送到所述目标直播间。
实施例五
本发明实施例五还提供了计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现本发明任意实施例所提供的弹幕消息的分发方法,该方法包括:
对弱引用集合对象中,以弱引用形式存储的直播间的弱引用接口对象进行依次遍历,其中,所述弱引用集合对象在弹幕分发对象中构建;
从不为空的弱引用接口对象中,确定当前正在运行的目标直播间的目标弱引用接口对象;
获取所述目标弱引用接口对象中的目标监听器接口对象,并根据所述目标监听器接口对象,将所述弹幕分发对象中的弹幕消息发送到所述目标直播间。
本发明实施例的计算机存储介质,可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于无线、电线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如”C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。

Claims (10)

1.一种弹幕消息的分发方法,其特征在于,包括:
对弱引用集合对象中,以弱引用形式存储的直播间的弱引用接口对象进行依次遍历,其中,所述弱引用集合对象在弹幕分发对象中构建;
从不为空的弱引用接口对象中,确定当前正在运行的目标直播间的目标弱引用接口对象;
获取所述目标弱引用接口对象中的目标监听器接口对象,并根据所述目标监听器接口对象,将所述弹幕分发对象中的弹幕消息发送到所述目标直播间。
2.根据权利要求1所述的方法,其特征在于,在对弱引用集合中,以弱引用形式存储的直播间的监听器接口对象进行依次遍历之前,所述方法还包括:
当检测到直播间启动时,在所述直播间对应的类的创建函数中,获取预设弹幕分发类的弹幕分发对象;
通过调用所述弹幕分发对象的弱引用关系创建函数,将完成初始化的监听器接口对象转换为弱引用接口对象;
调用弱引用接口对象的添加函数,将所述弱引用接口对象添加到弱引用集合对象中。
3.根据权利要求2所述的方法,其特征在于,所述监听器接口对象通过调用预设监听器接口协议的实现类的构造函数完成初始化,所述实现类通过关键字implements继承自所述预设监听器接口协议。
4.根据权利要求3所述的方法,其特征在于,所述预设监听器接口协议中包括弹幕消息的接收方法;
相应的,获取所述目标弱引用接口对象中的目标监听器接口对象,并根据所述目标监听器接口对象,将所述弹幕分发对象中的弹幕消息发送到所述目标直播间,包括:
调用监听器接口对象获取方法,获取目标弱引用接口对象中的目标监听器接口对象;
调用所述目标监听器接口对象的所述接收方法,将所述弹幕分发对象中的弹幕消息发送到所述目标监听器接口对象对应的目标直播间。
5.根据权利要求1或2所述的方法,其特征在于,还包括:
在直播间的切换过程中,当检测到切换前的直播间的页面销毁时,在该切换前直播间的类的销毁函数中,调用所述弹幕分发对象的监听器接口清空方法,以清空该直播间的监听器接口对象;
相应的,将切换后的直播间的弱引用接口对象作为目标弱引用接口对象。
6.根据权利要求5所述的方法,其特征在于,实现调用所述弹幕分发对象的接口清空方法的功能,通过执行如下步骤来实现:
调用空对象设置方法,将空对象赋值给所述监听器接口对象。
7.根据权利要求1所述的方法,其特征在于,在对弱引用集合对象中,以弱引用形式存储的直播间的弱引用接口对象进行依次遍历之前,所述方法还包括:
调用弱引用集合对象的尺寸判断方法,获取弱引用集合中的元素个数;
判断所述元素个数是否大于零,如果小于零,则不进行弹幕分发。
8.一种弹幕消息的分发装置,其特征在于,包括:
弱引用接口对象遍历模块,用于对弱引用集合对象中,以弱引用形式存储的直播间的弱引用接口对象进行依次遍历,其中,所述弱引用集合对象在弹幕分发对象中构建;
目标弱引用接口对象确定模块,用于从不为空的弱引用接口对象中,确定当前正在运行的目标直播间的目标弱引用接口对象;
弹幕消息分发模块,用于获取所述目标弱引用接口对象中的目标监听器接口对象,并根据所述目标监听器接口对象,将所述弹幕分发对象中的弹幕消息发送到所述目标直播间。
9.一种终端,其特征在于,所述终端包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-7中任一所述的弹幕消息的分发方法。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-7中任一所述的弹幕消息的分发方法。
CN201811162350.2A 2018-09-30 2018-09-30 一种弹幕消息的分发方法、装置、终端和存储介质 Active CN109302639B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811162350.2A CN109302639B (zh) 2018-09-30 2018-09-30 一种弹幕消息的分发方法、装置、终端和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811162350.2A CN109302639B (zh) 2018-09-30 2018-09-30 一种弹幕消息的分发方法、装置、终端和存储介质

Publications (2)

Publication Number Publication Date
CN109302639A true CN109302639A (zh) 2019-02-01
CN109302639B CN109302639B (zh) 2020-10-16

Family

ID=65161604

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811162350.2A Active CN109302639B (zh) 2018-09-30 2018-09-30 一种弹幕消息的分发方法、装置、终端和存储介质

Country Status (1)

Country Link
CN (1) CN109302639B (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109947488A (zh) * 2019-03-19 2019-06-28 武汉斗鱼鱼乐网络科技有限公司 通用功能模块的对象初始化方法、装置、设备和存储介质
CN112015395A (zh) * 2020-08-28 2020-12-01 中移(杭州)信息技术有限公司 防止内存泄漏方法、装置及计算机可读存储介质
CN115567733A (zh) * 2022-11-15 2023-01-03 易方信息科技股份有限公司 基于sdk的直播间切换方法、装置、终端以及存储介质

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040268367A1 (en) * 2003-06-30 2004-12-30 Roe Bryan Y. Method for managing a callback object in an event-based environment using weak references
CN105373471A (zh) * 2014-08-29 2016-03-02 腾讯科技(深圳)有限公司 用于内存泄露漏洞的检测方法和装置
CN107544846A (zh) * 2017-08-08 2018-01-05 武汉斗鱼网络科技有限公司 一种内存管理方法、装置及电子设备
US20180041519A1 (en) * 2015-09-14 2018-02-08 D&M Holdings, Inc. System and Method for Controlling a Rendering Device Based Upon Detected User Proximity
CN107908567A (zh) * 2017-11-27 2018-04-13 腾讯科技(深圳)有限公司 一种Java对象引用方法、装置和介质
US20180121178A1 (en) * 2016-11-01 2018-05-03 Facebook, Inc. Detecting and remedying memory leaks caused by object reference cycles
CN108021445A (zh) * 2017-11-22 2018-05-11 广州品唯软件有限公司 内存优化方法、装置、系统及计算机可读存储介质
CN108052388A (zh) * 2017-11-24 2018-05-18 武汉斗鱼网络科技有限公司 一种Android中内存回收方法及装置
CN105103136B (zh) * 2013-01-04 2018-07-27 微软技术许可有限责任公司 共享和受管的存储器统一访问

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040268367A1 (en) * 2003-06-30 2004-12-30 Roe Bryan Y. Method for managing a callback object in an event-based environment using weak references
CN105103136B (zh) * 2013-01-04 2018-07-27 微软技术许可有限责任公司 共享和受管的存储器统一访问
CN105373471A (zh) * 2014-08-29 2016-03-02 腾讯科技(深圳)有限公司 用于内存泄露漏洞的检测方法和装置
US20180041519A1 (en) * 2015-09-14 2018-02-08 D&M Holdings, Inc. System and Method for Controlling a Rendering Device Based Upon Detected User Proximity
US20180121178A1 (en) * 2016-11-01 2018-05-03 Facebook, Inc. Detecting and remedying memory leaks caused by object reference cycles
CN107544846A (zh) * 2017-08-08 2018-01-05 武汉斗鱼网络科技有限公司 一种内存管理方法、装置及电子设备
CN108021445A (zh) * 2017-11-22 2018-05-11 广州品唯软件有限公司 内存优化方法、装置、系统及计算机可读存储介质
CN108052388A (zh) * 2017-11-24 2018-05-18 武汉斗鱼网络科技有限公司 一种Android中内存回收方法及装置
CN107908567A (zh) * 2017-11-27 2018-04-13 腾讯科技(深圳)有限公司 一种Java对象引用方法、装置和介质

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
刘一民,刘宪利: "《Objective-C程序设计入门与实践》", 30 September 2013 *

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109947488A (zh) * 2019-03-19 2019-06-28 武汉斗鱼鱼乐网络科技有限公司 通用功能模块的对象初始化方法、装置、设备和存储介质
CN109947488B (zh) * 2019-03-19 2022-05-10 武汉斗鱼鱼乐网络科技有限公司 通用功能模块的对象初始化方法、装置、设备和存储介质
CN112015395A (zh) * 2020-08-28 2020-12-01 中移(杭州)信息技术有限公司 防止内存泄漏方法、装置及计算机可读存储介质
CN112015395B (zh) * 2020-08-28 2023-04-07 中移(杭州)信息技术有限公司 防止内存泄漏方法、装置及计算机可读存储介质
CN115567733A (zh) * 2022-11-15 2023-01-03 易方信息科技股份有限公司 基于sdk的直播间切换方法、装置、终端以及存储介质
CN115567733B (zh) * 2022-11-15 2023-02-07 易方信息科技股份有限公司 基于sdk的直播间切换方法、装置、终端以及存储介质

Also Published As

Publication number Publication date
CN109302639B (zh) 2020-10-16

Similar Documents

Publication Publication Date Title
CN109302639A (zh) 一种弹幕消息的分发方法、装置、终端和存储介质
CN109275042A (zh) 一种弹幕消息的分发方法、装置、终端和存储介质
CN107995247B (zh) 一种文件传输方法、服务器及系统
CN109088799B (zh) 一种客户端接入方法、装置、终端以及存储介质
CN106502840B (zh) 一种数据备份方法、装置及系统
CN104331319B (zh) 虚拟桌面实例的管理方法及装置
CN106550030B (zh) 一种数据共享方法、装置及系统
CN105100880A (zh) 智能终端及包括该终端的内容交互系统及方法
CN109348167A (zh) 基于视频会议系统的无线辅流数据传输方法及系统
CN109521956A (zh) 一种基于区块链的云存储方法、装置、设备及存储介质
CN112346751B (zh) 应用程序的安装方法、装置、电子设备和存储介质
CN110505516A (zh) 一种投屏控制方法、装置和系统
CN107820289A (zh) 一种wifi网络切换方法、装置、终端和介质
CN109684114A (zh) 基于iOS系统的消息分发方法、装置、终端和介质
CN113827953A (zh) 游戏控制系统
RU2670096C2 (ru) Способ и аппарат для завершения видеосвязи
CN109327726A (zh) 一种弹幕消息的处理方法、装置、终端和存储介质
CN113506100A (zh) 联盟链数据处理方法、装置、计算机设备及存储介质
CN109348303A (zh) 一种弹幕消息的分发方法、装置、终端和存储介质
CN109413507B (zh) 弹幕库与直播间引用关系的处理方法、装置、终端和介质
WO2013078614A1 (zh) 一种虚拟桌面场景下音频压缩算法选择方法、装置及通信系统
CN109981778B (zh) 内容分发网络的服务实现方法、装置、设备及存储介质
CN110515489A (zh) 智能交互设备及其控制方法
CN106658138A (zh) 智能电视及其信号源切换方法、装置
CN113783768B (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