直播时长的确定方法、装置、存储介质和电子设备与流程

文档序号:25731131发布日期:2021-07-02 21:19阅读:183来源:国知局
直播时长的确定方法、装置、存储介质和电子设备与流程

本公开涉及电子信息处理技术领域,具体地,涉及一种直播时长的确定方法、装置、存储介质和电子设备。



背景技术:

随着电子信息技术的不断发展,网络直播在各个产业领域都得到了广泛的应用。对于提供网络直播的平台来说,通常是按照客户端使用网络直播的时长进行收费。然而,由于网络不稳定或者客户端异常等情况,可能导致客户端异常退出直播间。对于异常退出的客户端,平台无法获知客户端何时退出了直播间,通常有两种处理方式,一种是忽略该客户端的使用时长,另一种是认为该客户端在直播间结束时退出的直播间。这两种方式都无法准确统计客户端的使用时长。



技术实现要素:

本公开的目的是提供一种直播时长的确定方法、装置、存储介质和电子设备,用于解决现有技术中存在的相关技术问题。

为了实现上述目的,根据本公开实施例的第一方面,提供一种直播时长的确定方法,应用于业务服务端,所述方法包括:

接收流媒体服务端发送的断流回调请求,所述断流回调请求为所述流媒体服务端检测到与目标客户端之间的链接为异常的情况下发出的,所述目标客户端为直播间中的任一客户端,所述流媒体服务端用于为所述直播间提供流媒体服务;

根据所述断流回调请求,确定断流时间;

在所述直播间对应的进出记录表中,查找所述目标客户端对应的目标进出记录,所述进出记录表中包括多个进出记录,每个客户端进入所述直播间时生成对应的进出记录,该客户端对应的进出记录包括的起始时间为该客户端进入所述直播间的时间;

若所述目标进出记录包括的结束时间为空,将所述目标进出记录包括的结束时间修改为所述断流时间,并根据修改后的所述目标进出记录确定所述目标客户端的直播时长。

可选地,所述根据所述断流回调请求,确定断流时间,包括:

若所述断流回调请求中包括异常时间,将所述异常时间作为所述断流时间,所述异常时间为所述流媒体服务端检测到与目标客户端之间的链接为异常的时间;

若所述断流回调请求中不包括所述异常时间,将接收到所述断流回调请求的时间作为所述断流时间。

可选地,所述在所述直播间对应的进出记录表中,查找所述目标客户端对应的目标进出记录,包括:

若所述进出记录表中,存在与所述目标客户端对应的多个所述目标进出记录,将包括的起始时间最新的所述目标进出记录,作为最新目标进出记录;

所述若所述目标进出记录包括的结束时间为空,将所述目标进出记录包括的结束时间修改为所述断流时间,并根据修改后的所述目标进出记录确定所述目标客户端的直播时长,包括:

若所述最新目标进出记录包括的结束时间为空,将所述最新目标进出记录包括的结束时间修改为所述断流时间;

根据其他目标进出记录和修改后的所述最新目标进出记录确定所述目标客户端的直播时长,所述其他目标进出记录为多个所述目标进出记录中除所述最新目标进出记录之外的目标进出记录。

可选地,所述方法还包括:

响应于在第一时间检测到第一客户端进入所述直播间,在所述进出记录表中,查找是否存在所述第一客户端对应的第一进出记录;

在所述进出记录表中生成所述第一客户端对应的第二进出记录,所述第二进出记录包括的起始时间为所述第一时间;

若所述进出记录表中存在所述第一进出记录,且所述第一进出记录包括的结束时间为空,将所述第一进出记录包括的结束时间修改为所述第一时间。

可选地,所述方法还包括:

将修改后的所述目标进出记录标记为第一状态;

将修改后的所述第一进出记录标记为第二状态;

响应于针对所述直播间的结束指令,遍历所述进出记录表中的每个所述进出记录,若存在包括的结束时间为空的异常进出记录,将所述异常进出记录包括的结束时间修改为当前时间,并将所述异常进出记录标记为第三状态;

根据所述进出记录表中的全部所述进出记录,确定所述直播间的总直播时长。

可选地,所述方法还包括:

响应于在第二时间检测到第二客户端退出所述直播间,在所述进出记录表中,查找是否存在所述第二客户端对应的第三进出记录,所述第二客户端为直播间中的任一客户端;

若所述进出记录表中存在所述第三进出记录,所述第三进出记录包括的结束时间为空,且所述第三进出记录为第四状态,将所述第三进出记录包括的结束时间修改为所述第二时间,所述第四状态与所述第一状态、所述第二状态和所述第三状态均不相同;

若所述进出记录表中存在所述第三进出记录,且所述第三进出记录为所述第一状态,或者所述第二状态,或者所述第三状态,将所述第三进出记录包括的结束时间修改为所述第二时间;

根据修改后的所述第三进出记录确定所述第二客户端的直播时长。

可选地,所述方法还包括:

响应于针对所述直播间的结束指令,将所述进出记录表中,为空的结束时间修改为检测到所述结束指令的时间。

根据本公开实施例的第二方面,提供一种直播时长的确定装置,应用于业务服务端,所述装置包括:

接收模块,用于接收流媒体服务端发送的断流回调请求,所述断流回调请求为所述流媒体服务端检测到与目标客户端之间的链接为异常的情况下发出的,所述目标客户端为直播间中的任一客户端,所述流媒体服务端用于为所述直播间提供流媒体服务;

确定模块,用于根据所述断流回调请求,确定断流时间;

查找模块,用于在所述直播间对应的进出记录表中,查找所述目标客户端对应的目标进出记录,所述进出记录表中包括多个进出记录,每个客户端进入所述直播间时生成对应的进出记录,该客户端对应的进出记录包括的起始时间为该客户端进入所述直播间的时间;

处理模块,用于若所述目标进出记录包括的结束时间为空,将所述目标进出记录包括的结束时间修改为所述断流时间,并根据修改后的所述目标进出记录确定所述目标客户端的直播时长。

可选地,所述确定模块用于:

若所述断流回调请求中包括异常时间,将所述异常时间作为所述断流时间,所述异常时间为所述流媒体服务端检测到与目标客户端之间的链接为异常的时间;

若所述断流回调请求中不包括所述异常时间,将接收到所述断流回调请求的时间作为所述断流时间。

可选地,所述查找模块用于:

若所述进出记录表中,存在与所述目标客户端对应的多个所述目标进出记录,将包括的起始时间最新的所述目标进出记录,作为最新目标进出记录;

所述处理模块包括:

修改子模块,用于若所述最新目标进出记录包括的结束时间为空,将所述最新目标进出记录包括的结束时间修改为所述断流时间;

处理子模块,用于根据其他目标进出记录和修改后的所述最新目标进出记录确定所述目标客户端的直播时长,所述其他目标进出记录为多个所述目标进出记录中除所述最新目标进出记录之外的目标进出记录。

可选地,所述查找模块还用于:

响应于在第一时间检测到第一客户端进入所述直播间,在所述进出记录表中,查找是否存在所述第一客户端对应的第一进出记录;

所述处理模块还用于:

在所述进出记录表中生成所述第一客户端对应的第二进出记录,所述第二进出记录包括的起始时间为所述第一时间;

若所述进出记录表中存在所述第一进出记录,且所述第一进出记录包括的结束时间为空,将所述第一进出记录包括的结束时间修改为所述第一时间。

可选地,所述处理模块还用于:

将修改后的所述目标进出记录标记为第一状态;

将修改后的所述第一进出记录标记为第二状态;

响应于针对所述直播间的结束指令,遍历所述进出记录表中的每个所述进出记录,若存在包括的结束时间为空的异常进出记录,将所述异常进出记录包括的结束时间修改为当前时间,并将所述异常进出记录标记为第三状态;

根据所述进出记录表中的全部所述进出记录,确定所述直播间的总直播时长。

可选地,所述查找模块还用于:

响应于在第二时间检测到第二客户端退出所述直播间,在所述进出记录表中,查找是否存在所述第二客户端对应的第三进出记录,所述第二客户端为直播间中的任一客户端;

所述处理模块还用于:

若所述进出记录表中存在所述第三进出记录,所述第三进出记录包括的结束时间为空,且所述第三进出记录为第四状态,将所述第三进出记录包括的结束时间修改为所述第二时间,所述第四状态与所述第一状态、所述第二状态和所述第三状态均不相同;

若所述进出记录表中存在所述第三进出记录,且所述第三进出记录为所述第一状态,或者所述第二状态,或者所述第三状态,将所述第三进出记录包括的结束时间修改为所述第二时间;

根据修改后的所述第三进出记录确定所述第二客户端的直播时长。

可选地,所述处理模块还用于:

响应于针对所述直播间的结束指令,将所述进出记录表中,为空的结束时间修改为检测到所述结束指令的时间。

根据本公开实施例的第三方面,提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现本公开实施例的第一方面所述方法的步骤。

根据本公开实施例的第四方面,提供一种电子设备,包括:

存储器,其上存储有计算机程序;

处理器,用于执行所述存储器中的所述计算机程序,以实现本公开实施例的第一方面所述方法的步骤。

通过上述技术方案,本公开业务服务端首先接收流媒体服务端在检测到与目标客户端之间的链接为异常的情况下发出的,断流回调请求,其中,目标客户端为直播间中的任一客户端。之后,根据断流回调请求,确定断流时间,再在直播间对应的进出记录表中,查找目标客户端对应的目标进出记录,进出记录表中包括了每个客户端进入直播间时生成对应的进出记录。若目标进出记录包括的结束时间为空,那么将目标进出记录包括的结束时间修改为断流时间,并根据修改后的目标进出记录确定目标客户端的直播时长。本公开中,流媒体服务端检测到与目标客户端之间的链接为异常时,会向业务服务端发送断流回调请求,业务服务端可以根据断流回调请求,确定目标客户端异常退出直播间的时间,从而修改目标客户端对应的目标进出记录,能够准确确定异常退出直播间的客户端的直播时长。

本公开的其他特征和优点将在随后的具体实施方式部分予以详细说明。

附图说明

附图是用来提供对本公开的进一步理解,并且构成说明书的一部分,与下面的具体实施方式一起用于解释本公开,但并不构成对本公开的限制。在附图中:

图1是根据一示例性实施例示出的一种直播系统的部署示意图;

图2是根据一示例性实施例示出的一种直播时长的确定方法的流程图;

图3是根据一示例性实施例示出的另一种直播时长的确定方法的流程图;

图4是根据一示例性实施例示出的另一种直播时长的确定方法的流程图;

图5是根据一示例性实施例示出的另一种直播时长的确定方法的流程图;

图6是根据一示例性实施例示出的另一种直播时长的确定方法的流程图;

图7是根据一示例性实施例示出的另一种直播时长的确定方法的流程图;

图8是根据一示例性实施例示出的另一种直播时长的确定方法的流程图;

图9是根据一示例性实施例示出的一种直播时长的确定装置的框图;

图10是根据一示例性实施例示出的另一种直播时长的确定装置的框图;

图11是根据一示例性实施例示出的一种电子设备的框图。

具体实施方式

这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。

在介绍本公开提供的直播时长的确定方法、装置、存储介质和电子设备之前,首先对本公开中各个实施例所涉及的应用场景进行介绍,该应用场景中可以为一个直播系统,该直播系统的部署可以如图1所示,可以包括:业务服务端、流媒体服务端和多个客户端。其中,每个客户端上安装有直播软件,用户可以使用直播软件与业务服务端、流媒体服务端通过网络进行通信,业务服务端为直播软件提供业务服务(例如:计费服务、支付服务、密码服务、登录服务等),流媒体服务端为直播软件提供流媒体服务(例如:语音传输、视频传输等),可以将业务服务端和流媒体服务端理解为直播平台。上述客户端例如可以是智能手机、平板电脑、智能电视、智能手表、pda(英文:personaldigitalassistant,中文:个人数字助理)、便携计算机等移动终端,也可以是数字tv、台式计算机等固定终端。业务服务端和流媒体服务端可以部署在本地服务器上,也可以部署在云端服务器上。需要说明的是,业务服务端和流媒体服务端仅用于限定为直播软件提供不同的服务,业务服务端和流媒体服务端可以部署在同一个服务器上,也可以部署在不同的服务器上,例如直播软件可以使用第三方提供的流媒体服务端。

图2是根据一示例性实施例示出的一种直播时长的确定方法的流程图,如图2所示,该方法应用于业务服务端,可以包括以下步骤:

步骤101,接收流媒体服务端发送的断流回调请求,断流回调请求为流媒体服务端检测到与目标客户端之间的链接为异常的情况下发出的,目标客户端为直播间中的任一客户端,流媒体服务端用于为直播间提供流媒体服务。

举例来说,用户可以通过客户端上安装的直播软件,进入直播间。直播间中可以包括一个或多个客户端。业务服务端会为直播间维护一个进出记录表,每个客户端进入直播间时,会在进出记录表中新增一条该客户端对应的进出记录,该进出记录包括起始时间和结束时间,其中,起始时间为该客户端进入直播间的时间(可以理解为该客户端与流媒体服务端建立链接的时间),结束时间在该客户端进入直播间时为空,在该客户端退出直播间时,记为该客户端退出直播间的时间。这样,业务服务端可以根据进出记录表来统计每个客户端使用直播间的时长,即每个客户端的直播时长。然而,由于网络不稳定、客户端异常(例如客户端的系统崩溃、客户端在后台清理了直播软件的进程等)等情况,可能导致客户端与流媒体服务端或者业务服务端异常断开,即客户端异常退出直播间,也就是说业务服务端此时认为该客户端在直播间,但实际上该客户端与流媒体服务端之间的链接已经断开。对于异常退出的客户端,业务服务端无法获知客户端何时退出了直播间,因此无法准确统计客户端在直播间内的直播时长(即客户端使用直播服务的时长),也就导致无法根据客户端的直播时长进行计费。

若客户端在直播间内,那么客户端与流媒体服务端之间建立了链接,并且客户端与流媒体服务端之间会通过该链接进行数据传输(例如:客户端将音视频数据上传至流媒体服务端,或者流媒体服务端将直播间中其他客户端上传的音视频数据发送给客户端等)。若客户端异常退出直播间,那么客户端与流媒体服务端之间的链接将出现异常,因此可以通过客户端与流媒体服务端之间的链接是否为异常来检测客户端是否异常退出。客户端与流媒体服务端之间的链接为异常,可以是预设时长(例如:1min)内没有数据传输,也可以是链接断开等情况。流媒体服务端在检测到与目标客户端之间的链接为异常的情况下,会向业务服务端发送断流回调请求,其中目标客户端可以是一个或多个。断流回调请求中可以包括目标客户端的标识(例如:userid),还可以包括直播间的标识。可以理解为,断流回调请求能够指示目标客户端异常退出了直播间。业务服务端在接收到断流回调请求后,可以获知目标客户端异常退出了直播间。

需要说明的是,在直播系统中,可以同时存在多个直播间,一个直播间可以理解为一个直播会议,每个直播间对应一个能够唯一标识该直播间的房间id(也可以理解为直播会议的会议id),本公开实施例中的直播间可以是直播系统中的任一个直播间。

步骤102,根据断流回调请求,确定断流时间。

示例的,业务服务端可以根据断流回调请求,来确定断流时间,断流时间可以理解为,业务服务端根据断流回调请求确定的,目标客户端退出直播间的时间。具体的,断流回调请求中可以直接携带流媒体服务端检测到与目标客户端之间的链接为异常的时间,那么业务服务端可以直接将该时间作为断流时间。断流回调请求中也可以携带发出断流回调请求的时间戳,业务服务端可以根据该时间戳确定断流时间。业务服务端还可以根据接收到断流回调请求的时间,作为断流时间。

步骤103,在直播间对应的进出记录表中,查找目标客户端对应的目标进出记录,进出记录表中包括多个进出记录,每个客户端进入直播间时生成对应的进出记录,该客户端对应的进出记录包括的起始时间为该客户端进入直播间的时间。

步骤104,若目标进出记录包括的结束时间为空,将目标进出记录包括的结束时间修改为断流时间,并根据修改后的目标进出记录确定目标客户端的直播时长。

示例的,业务服务端在确定目标客户端异常退出了直播间后,可以在维护的进出记录表中,查找与目标客户端对应的目标进出记录。其中,进出记录表中记录的每个进出记录,都至少包括三个字段:客户端的标识、起始时间、结束时间,其中,客户端的标识用于指示该进出记录对应的客户端,起始时间用于记录对应的客户端进入直播间的时间,结束时间用于记录对应的客户端退出直播间的时间。通常情况下,由于业务服务端无法获知目标客户端何时退出了直播间,可能会导致目标客户端对应的进出记录中,结束时间为空。

因此,可以根据目标客户端的标识,在进出记录表中查找目标进出记录。然后判断目标进出记录包括的结束时间是否为空,若目标进出记录包括的结束时间不为空,那么可以比较目标进出记录包括的结束时间和断流时间,将目标进出记录包括的结束时间确定为结束时间和断流时间中在前的时间。例如,目标进出记录包括的结束时间为10:50,断流时间为10:52,那么可以维持目标进出记录不变,再比如目标进出记录包括的结束时间为12:17,断流时间为12:11,那么可以将目标进出记录包括的结束时间修改为12:11。若目标进出记录包括的结束时间为空,那么可以将目标进出记录包括的结束时间修改为断流时间,也就是说,将断流时间作为结束时间填入目标进出记录。这样,业务服务端就可以根据修改后的目标进出记录确定目标客户端的直播时长。例如,修改后的目标进出记录包括的起始时间为8:00,结束时间为8:32,那么目标客户端的直播时长即为32分钟。进一步的,业务服务端还可以按照目标客户端的直播时长进行计费。

由于流媒体服务端检测到与目标客户端之间的链接为异常时,会向业务服务端发送断流回调请求,因此业务服务端可以根据断流回调请求,确定目标客户端异常退出直播间的时间,从而修改目标客户端对应的目标进出记录,使得业务服务端能够根据修改后的目标进出记录准确确定异常退出直播间的客户端的直播时长。

综上所述,本公开业务服务端首先接收流媒体服务端在检测到与目标客户端之间的链接为异常的情况下发出的,断流回调请求,其中,目标客户端为直播间中的任一客户端。之后,根据断流回调请求,确定断流时间,再在直播间对应的进出记录表中,查找目标客户端对应的目标进出记录,进出记录表中包括了每个客户端进入直播间时生成对应的进出记录。若目标进出记录包括的结束时间为空,那么将目标进出记录包括的结束时间修改为断流时间,并根据修改后的目标进出记录确定目标客户端的直播时长。本公开中,流媒体服务端检测到与目标客户端之间的链接为异常时,会向业务服务端发送断流回调请求,业务服务端可以根据断流回调请求,确定目标客户端异常退出直播间的时间,从而修改目标客户端对应的目标进出记录,能够准确确定异常退出直播间的客户端的直播时长。

图3是根据一示例性实施例示出的另一种直播时长的确定方法的流程图,如图3所示,步骤102的实现方式可以包括:

步骤1021,若断流回调请求中包括异常时间,将异常时间作为断流时间,异常时间为流媒体服务端检测到与目标客户端之间的链接为异常的时间。

步骤1022,若断流回调请求中不包括异常时间,将接收到断流回调请求的时间作为断流时间。

示例的,流媒体服务端发送的断流回调请求中,可以包括流媒体服务端检测到与目标客户端之间的链接为异常的时间,即异常时间。那么,业务服务端可以直接将异常时间作为断流时间,即将流媒体服务端检测到与目标客户端之间的链接为异常的时间,确定为目标客户端异常退出直播间的时间。断流回调请求中也可以不包括异常时间,那么业务服务端可以将接收到断流回调请求的时间作为断流时间,即将接收到断流回调请求的时间,确定为目标客户端异常退出直播间的时间。

图4是根据一示例性实施例示出的另一种直播时长的确定方法的流程图,如图4所示,步骤103的实现方式可以为:

若进出记录表中,存在与目标客户端对应的多个目标进出记录,将包括的起始时间最新的目标进出记录,作为最新目标进出记录。

相应的,步骤104的实现方式可以包括:

步骤1041,若最新目标进出记录包括的结束时间为空,将最新目标进出记录包括的结束时间修改为断流时间。

步骤1042,根据其他目标进出记录和修改后的最新目标进出记录确定目标客户端的直播时长,其他目标进出记录为多个目标进出记录中除最新目标进出记录之外的目标进出记录。

举例来说,对于同一个直播间来说,可能存在目标客户端多次进入直播间的场景,相应的,进出记录表中会存在多个与目标客户端对应的,目标进出记录。步骤101中接收到了断流回调请求,说明目标客户端最后一次可能是异常退出直播间,那么可以将包括的起始时间最新的目标进出记录,作为最新目标进出记录。相应的,再判断最新目标进出记录包括的结束时间是否为空。若最新进出记录包括的结束时间不为空,那么可以比较最新目标进出记录包括的结束时间和断流时间,将最新目标进出记录包括的结束时间确定为结束时间和断流时间中在前的时间。若最新进出记录包括的结束时间为空,那么可以将最新目标进出记录包括的结束时间修改为断流时间。最后可以根据所有目标进出记录(其中包括修改后的最新目标进出记录)来确定目标客户端的直播时长。例如,目标进出记录为2个,断流时间为9:51,第一个目标进出记录包括的起始时间为8:00,结束时间为8:32,第二个目标进出记录包括的起始时间为9:07,结束时间为空。那么第二个目标进出记录即为最新进出记录,可以将第二个目标进出记录包括的结束时间修改为9:51。那么目标客户端的直播时长,即为(8:32-8:00)+(9:51-9:07)=76分钟。

图5是根据一示例性实施例示出的另一种直播时长的确定方法的流程图,如图5所示,该方法还包括:

步骤105,响应于在第一时间检测到第一客户端进入直播间,在进出记录表中,查找是否存在第一客户端对应的第一进出记录。

步骤106,在进出记录表中生成第一客户端对应的第二进出记录,第二进出记录包括的起始时间为第一时间。

步骤107,若进出记录表中存在第一进出记录,且第一进出记录包括的结束时间为空,将第一进出记录包括的结束时间修改为第一时间。

示例的,业务服务端在第一时间检测到第一客户端进入直播间,可以先在进出记录表中查找是否存在第一客户端对应的第一进出记录。若不存在第一进出记录,说明第一客户端是首次进入直播间。若存在第一进出记录(第一进出记录可以是一个或多个),说明第一客户端不是首次进入直播间。同时,可以在进出记录表中生成第一客户端对应的第二进出记录,第二进出记录可以理解为第一客户端此次进入直播间对应的进出记录,其中包括的起始时间即为第一时间,结束时间此时为空。

如果第一客户端不是首次进入直播间,且上一次退出直播间时,是异常退出,那么第一客户端上一次进入直播间对应的进出记录包括的结束时间可能为空,可能会导致业务服务端无法准确确定第一客户端的直播时长。例如,第一客户端异常退出直播间后,很短时间(例如10s)内又进入直播间,此时业务服务端可能还未收到流媒体服务端发送的,指示第一客户端异常退出了直播间的断流回调请求,那么第一客户端上一次进入直播间对应的进出记录包括的结束时间仍然为空。为了避免上述情况,业务服务端可以在存在第一进出记录,且第一进出记录包括的结束时间为空的情况下,将第一进出记录包括的结束时间修改为第一时间。之后,若业务服务端收到了流媒体服务端发送的,指示第一客户端上一次异常退出了直播间的断流回调请求,可以按照步骤101至步骤104的实现方式,将第二进出记录包括的结束时间修改为断流时间。在第一客户端退出直播间时,会再根据第一客户端退出直播间的时间,更新第二进出记录包括的结束时间(即后文提及的步骤114的实现方式),以保证第二进出记录包括的结束时间能够指示第一客户端退出直播间的时间。

图6是根据一示例性实施例示出的另一种直播时长的确定方法的流程图,如图6所示,该方法还可以包括:

步骤108,将修改后的目标进出记录标记为第一状态。

步骤109,将修改后的第一进出记录标记为第二状态。

步骤110,响应于针对直播间的结束指令,遍历进出记录表中的每个进出记录,若存在包括的结束时间为空的异常进出记录,将异常进出记录包括的结束时间修改为当前时间,并将异常进出记录标记为第三状态。

步骤111,根据进出记录表中的全部进出记录,确定直播间的总直播时长。

举例来说,业务服务端在对进出记录(例如上述目标进出记录、第一进出记录、异常进出记录)进行修改时,可以对该进出记录进行标记,以指示该进出记录为被修正过的状态。若业务服务端未对进出记录进行过修改(即客户端正常退出的场景),该进出记录可以为未修正过的状态(即后文提及的第四状态)。具体的,在接收到断流回调请求后,根据断流时间修改的目标进出记录,可以标记为第一状态(可以记作end_type=1)。在检测到第一时间客户端进入直播间的情况下,根据第一时间修改的第一进出记录,可以标记为第二状态(可以记作end_type=2)。若检测到针对直播间的结束指令,说明直播间结束(可以理解为主持人结束直播会议),可以遍历进出记录表中的每个进出记录,若存在包括的结束时间为空的异常进出记录,那么可以将异常进出记录包括的结束时间修改为当前时间,并将异常进出记录标记为第三状态(可以记作end_type=3)。需要说明的是,遍历进出记录表的操作,可以在检测到结束指令的一段时间之后进行,以避免可能存在未收到的断流回调请求。例如可以在检测到结束指令8分钟之后再遍历进出记录表的操作,那么当前时间即为检测到结束指令8分钟之后。

最后,在直播间结束后,可以根据进出记录表中的全部进出记录,确定直播间的总直播时长。例如可以将每个进出记录包括的结束时间与起始时间求差,得到每个进出记录对应的时长,然后将全部进出记录对应的时长求和,得到总直播时长。再比如,可以根据公式一来计算总直播时长:

其中,a表示总直播时长,s表示直播间开始到结束的总时长,n1表示完整参与直播间的第一类客户端的数量,n2表示正常进入和退出直播间的第二类客户端的数量,n3表示正常进入直播间,但异常退出直播间的第三类客户端的数量,t'i表示第i个第二类客户端的结束时间,ti表示第i个第二类客户端的起始时间,p'j表示第j个第三类客户端的结束时间,pj表示第j个第三类客户端的起始时间。需要说明的是,第二类客户端和第三类客户端可以多次进入直播间,因此上述公式中(t'i-ti)可以表示第i个第二类客户端多次进入直播间,每次进入直播间对应的直播时长的和,(p'j-pj)可以表示为第j个第三类客户端多次进入直播间,每次进入直播间对应的直播时长的和。

图7是根据一示例性实施例示出的另一种直播时长的确定方法的流程图,如图7所示,该方法还可以包括:

步骤112,响应于在第二时间检测到第二客户端退出直播间,在进出记录表中,查找是否存在第二客户端对应的第三进出记录,第二客户端为直播间中的任一客户端。

步骤113,若进出记录表中存在第三进出记录,第三进出记录包括的结束时间为空,且第三进出记录为第四状态,将第三进出记录包括的结束时间修改为第二时间,第四状态与第一状态、第二状态和第三状态均不相同。

步骤114,若进出记录表中存在第三进出记录,且第三进出记录为第一状态,或者第二状态,或者第三状态,将第三进出记录包括的结束时间修改为第二时间。

步骤115,根据修改后的第三进出记录确定第二客户端的直播时长。

举例来说,业务服务端在第二时间检测到第二客户端退出直播间,即第二客户端正常退出直播间。那么可以在进出记录表中,查找是否存在第二客户端对应的第三进出记录。在存在第三进出记录、第三进出记录包括的结束时间为空,且第三进出记录为第四状态(即说明第三进出记录为未修正过的状态)的情况下,可以将第三进出记录包括的结束时间修改为第二时间。也就是说,在第二客户端正常退出直播间时,可以将第三进出记录包括的结束时间记为检测到第二客户端退出直播间的时间。在存在第三进出记录,且第三进出记录为第一状态,或者第二状态,或者第三状态(即说明第三进出记录为被修正过的状态)的情况下,可以将第三进出记录包括的结束时间修改为第二时间。

图8是根据一示例性实施例示出的另一种直播时长的确定方法的流程图,如图8所示,该方法还可以包括:

步骤116,响应于针对直播间的结束指令,将进出记录表中,为空的结束时间修改为检测到结束指令的时间。

示例的,若检测到针对直播间的结束指令,说明直播间结束(可以理解为主持人结束直播会议),可以遍历进出记录表中的每个进出记录,将为空的结束时间修改为检测到结束指令的时间。可以理解为,当直播间结束时,可以将直播间结束的时间,统一填入每个包括的结束时间为空的进出记录。最后,在直播间结束后,可以根据进出记录表中的全部进出记录,确定直播间的总直播时长。例如可以将每个进出记录包括的结束时间与起始时间求差,得到每个进出记录对应的时长,然后将全部进出记录对应的时长求和,得到总直播时长,也可以按照公式一计算总直播时长。

综上所述,本公开业务服务端首先接收流媒体服务端在检测到与目标客户端之间的链接为异常的情况下发出的,断流回调请求,其中,目标客户端为直播间中的任一客户端。之后,根据断流回调请求,确定断流时间,再在直播间对应的进出记录表中,查找目标客户端对应的目标进出记录,进出记录表中包括了每个客户端进入直播间时生成对应的进出记录。若目标进出记录包括的结束时间为空,那么将目标进出记录包括的结束时间修改为断流时间,并根据修改后的目标进出记录确定目标客户端的直播时长。本公开中,流媒体服务端检测到与目标客户端之间的链接为异常时,会向业务服务端发送断流回调请求,业务服务端可以根据断流回调请求,确定目标客户端异常退出直播间的时间,从而修改目标客户端对应的目标进出记录,能够准确确定异常退出直播间的客户端的直播时长。

图9是根据一示例性实施例示出的一种直播时长的确定装置的框图,如图9所示,该装置200应用于业务服务端,可以包括:

接收模块201,用于接收流媒体服务端发送的断流回调请求,断流回调请求为流媒体服务端检测到与目标客户端之间的链接为异常的情况下发出的,目标客户端为直播间中的任一客户端,流媒体服务端用于为直播间提供流媒体服务。

确定模块202,用于根据断流回调请求,确定断流时间。

查找模块203,用于在直播间对应的进出记录表中,查找目标客户端对应的目标进出记录,进出记录表中包括多个进出记录,每个客户端进入直播间时生成对应的进出记录,该客户端对应的进出记录包括的起始时间为该客户端进入直播间的时间。

处理模块204,用于若目标进出记录包括的结束时间为空,将目标进出记录包括的结束时间修改为断流时间,并根据修改后的目标进出记录确定目标客户端的直播时长。

在一种应用场景中,确定模块202可以用于:

若断流回调请求中包括异常时间,将异常时间作为断流时间,异常时间为流媒体服务端检测到与目标客户端之间的链接为异常的时间。

若断流回调请求中不包括异常时间,将接收到断流回调请求的时间作为断流时间。

图10是根据一示例性实施例示出的另一种直播时长的确定装置的框图,如图10所示,查找模块203可以用于:

若进出记录表中,存在与目标客户端对应的多个目标进出记录,将包括的起始时间最新的目标进出记录,作为最新目标进出记录。

相应的,处理模块204可以包括:

修改子模块2041,用于若最新目标进出记录包括的结束时间为空,将最新目标进出记录包括的结束时间修改为断流时间。

处理子模块2042,用于根据其他目标进出记录和修改后的最新目标进出记录确定目标客户端的直播时长,其他目标进出记录为多个目标进出记录中除最新目标进出记录之外的目标进出记录。

在一种应用场景中,查找模块203还可以用于:

响应于在第一时间检测到第一客户端进入直播间,在进出记录表中,查找是否存在第一客户端对应的第一进出记录。

相应的,处理模块204还可以用于:

在进出记录表中生成第一客户端对应的第二进出记录,第二进出记录包括的起始时间为第一时间。

若进出记录表中存在第一进出记录,且第一进出记录包括的结束时间为空,将第一进出记录包括的结束时间修改为第一时间。

在另一种应用场景中,处理模块204还可以用于:

将修改后的目标进出记录标记为第一状态。

将修改后的第一进出记录标记为第二状态。

响应于针对直播间的结束指令,遍历进出记录表中的每个进出记录,若存在包括的结束时间为空的异常进出记录,将异常进出记录包括的结束时间修改为当前时间,并将异常进出记录标记为第三状态。

根据进出记录表中的全部进出记录,确定直播间的总直播时长。

在另一种应用场景中,查找模块203还可以用于:

响应于在第二时间检测到第二客户端退出直播间,在进出记录表中,查找是否存在第二客户端对应的第三进出记录,第二客户端为直播间中的任一客户端。

相应的,处理模块204还可以用于:

若进出记录表中存在第三进出记录,第三进出记录包括的结束时间为空,且第三进出记录为第四状态,将第三进出记录包括的结束时间修改为第二时间,第四状态与第一状态、第二状态和第三状态均不相同。

若进出记录表中存在第三进出记录,且第三进出记录为第一状态,或者第二状态,或者第三状态,将第三进出记录包括的结束时间修改为第二时间。

根据修改后的第三进出记录确定第二客户端的直播时长。

在另一种应用场景中,处理模块204还可以用于:

响应于针对直播间的结束指令,将进出记录表中,为空的结束时间修改为检测到结束指令的时间。

关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。

综上所述,本公开业务服务端首先接收流媒体服务端在检测到与目标客户端之间的链接为异常的情况下发出的,断流回调请求,其中,目标客户端为直播间中的任一客户端。之后,根据断流回调请求,确定断流时间,再在直播间对应的进出记录表中,查找目标客户端对应的目标进出记录,进出记录表中包括了每个客户端进入直播间时生成对应的进出记录。若目标进出记录包括的结束时间为空,那么将目标进出记录包括的结束时间修改为断流时间,并根据修改后的目标进出记录确定目标客户端的直播时长。本公开中,流媒体服务端检测到与目标客户端之间的链接为异常时,会向业务服务端发送断流回调请求,业务服务端可以根据断流回调请求,确定目标客户端异常退出直播间的时间,从而修改目标客户端对应的目标进出记录,能够准确确定异常退出直播间的客户端的直播时长。

图11是根据一示例性实施例示出的一种电子设备300的框图。例如,电子设备300可以被提供为一服务器。参照图11,电子设备300包括处理器322,其数量可以为一个或多个,以及存储器332,用于存储可由处理器322执行的计算机程序。存储器332中存储的计算机程序可以包括一个或一个以上的每一个对应于一组指令的模块。此外,处理器322可以被配置为执行该计算机程序,以执行上述的直播时长的确定方法。

另外,电子设备300还可以包括电源组件326和通信组件350,该电源组件326可以被配置为执行电子设备300的电源管理,该通信组件350可以被配置为实现电子设备300的通信,例如,有线或无线通信。此外,该电子设备300还可以包括输入/输出(i/o)接口358。电子设备300可以操作基于存储在存储器332的操作系统,例如windowsservertm,macosxtm,unixtm,linuxtm等等。

在另一示例性实施例中,还提供了一种包括程序指令的计算机可读存储介质,该程序指令被处理器执行时实现上述的直播时长的确定方法的步骤。例如,该计算机可读存储介质可以为上述包括程序指令的存储器332,上述程序指令可由电子设备300的处理器322执行以完成上述的直播时长的确定方法。

在另一示例性实施例中,还提供一种计算机程序产品,该计算机程序产品包含能够由可编程的装置执行的计算机程序,该计算机程序具有当由该可编程的装置执行时用于执行上述的直播时长的确定方法的代码部分。

以上结合附图详细描述了本公开的优选实施方式,但是,本公开并不限于上述实施方式中的具体细节,在本公开的技术构思范围内,可以对本公开的技术方案进行多种简单变型,这些简单变型均属于本公开的保护范围。

另外需要说明的是,在上述具体实施方式中所描述的各个具体技术特征,在不矛盾的情况下,可以通过任何合适的方式进行组合,为了避免不必要的重复,本公开对各种可能的组合方式不再另行说明。

此外,本公开的各种不同的实施方式之间也可以进行任意组合,只要其不违背本公开的思想,其同样应当视为本公开所公开的内容。

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