进行语音通话的方法及装置
技术领域
本申请涉及互联网通信技术领域,尤其是涉及一种进行语音通话的方法及装置。
背景技术
随着互联网的快速发展,越来越多的用户利用实时通信系统或者即时通信系统实现对信息的转发,其中,实时通信系统可以实现语音、视频、网络电话等实时消息的通信,即时通信系统可以实现文字、图片等即时消息的通信。因此,创建多人语音聊天系统,实现多人语音聊天的功能越来越重要。
发明内容
有鉴于此,本申请至少提供一种进行语音通话的方法及装置,用以实现语音通话的灵活建立。
第一方面,本申请实施例提供了一种进行语音通话的方法,应用于语音通话服务端,所述方法包括:
响应第一客户端发送的语音房间创建请求,向即时通信服务端发送群聊账号创建请求,所述群聊账号创建请求用于指示所述即时通信服务端创建与所述第一客户端关联的群聊账号信息;
接收所述即时通信服务端反馈的已创建的群聊账号信息,并生成与所述群聊账号信息关联的语音房间的第一令牌信息;
通过所述第一客户端向实时通信服务端发送语音房间创建指令,所述语音房间创建指令用于指示所述实时通信服务端基于所述第一令牌信息,创建与所述群聊账号信息关联的语音房间,并指示所述实时通信服务端将所述第一客户端与所述语音房间关联;
接收所述第一客户端发送的反馈信息,当所述反馈信息为所述语音房间与所述第一客户端关联成功时,指示所述第一客户端进入与所述群聊账号信息关联的所述语音房间。
本申请的一些实施例中,接收到所述第一客户端发送的语音房间关联成功的所述反馈信息后之后,还包括:
指示所述第一客户端将所述群聊账号信息发送给其它客户端,以便其它客户端基于该群聊账号信息进入与所述群聊账号信息关联的所述语音房间。
本申请的一些实施例中,所述语音房间创建请求中携带有所述第一客户端的标识信息,其中,所述第一客户端的标识信息为表征所述第一客户端对应的用户的身份的信息;
所述响应第一客户端发送的语音房间创建请求,向即时通信服务端发送群聊账号创建请求,包括:
在基于所述第一客户端的标识信息确定所述第一客户端满足预设的创建条件后,向所述即时通信服务端发送群聊账号创建请求。
本申请的一些实施例中,所述基于所述第一客户端的标识信息确定所述第一客户端满足预设的创建条件,包括:
检测预先存储的目标标识信息列表中是否包括所述第一客户端的标识信息;
若包括,则确定所述第一客户端满足预设的创建条件;
若不包括,则确定所述第一客户端不满足预设的创建条件。
本申请的一些实施例中,所述群聊账号信息对应有数量信息,所述数量信息包括第一数量和/或第二数量,所述第一数量为所述群聊账号信息允许关联的客户端的最大数量,所述第二数量为所述群聊账号信息允许生成的虚拟麦克风的最大数量,在所述第一数量和第二数量同时存在的情况下,所述第二数量小于或等于所述第一数量。
本申请的一些实施例中,在接收到所述第一客户端发送的语音房间关联成功的反馈信息之后,所述方法还包括:
为所述第一客户端生成第一虚拟麦克风。
本申请的一些实施例中,所述群聊账号信息中携带有属性信息,所述属性信息初始被置为无效群聊;
在接收到所述第一客户端发送的语音房间关联成功的反馈信息之后,所述方法还包括:
向所述即时通信服务端发送属性修改指令,所述属性修改指令用于指示所述即时通信服务端将所述群聊账号信息的属性信息从无效群聊修改为有效群聊。
本申请的一些实施例中,在指示所述第一客户端进入与所述群聊账号信息关联的语音房间之后,所述方法还包括:
接收第二客户端发送的所述语音房间加入请求;其中,所述语音房间加入请求中携带有所述群聊账号信息;
生成与所述群聊账号信息关联的所述语音房间的第二令牌信息;
通过所述第二客户端向所述实时通信服务端发送语音房间加入指令,所述语音房间加入指令用于指示所述实时通信服务端基于所述第二令牌信息,将所述第二客户端与所述语音房间关联;
接收到所述第二客户端发送的语音房间关联成功的反馈信息后,向所述即时通信服务端发送群聊关联指令,所述群聊关联指令用于指示所述即时通信服务端将所述第二客户端与所述群聊账号信息关联;
接收到所述即时通信服务端发送的群聊关联成功的反馈信息后,指示所述第二客户端进入与所述群聊账号信息关联的所述语音房间。
本申请的一些实施例中,接收第二客户端发送的语音房间加入请求之后,生成与所述群聊账号信息关联的所述语音房间的第二令牌信息之前,还包括:
向所述即时通信服务端发送客户端数量查询请求,所述客户端数量查询请求用于查询所述群聊账号信息当前已关联的客户端的数量;
接收所述即时通信服务端发送的所述群聊账号信息当前已关联的客户端的数量;
所述生成与所述群聊账号信息关联的所述语音房间的第二令牌信息,包括:
在确定所述群聊账号信息允许关联的客户端的最大数量大于所述当前已关联的客户端的数量时,生成与所述群聊账号信息关联的所述语音房间的第二令牌信息。
本申请的一些实施例中,所述语音房间加入请求中携带有所述第二客户端的标识信息,其中,所述第二客户端的标识信息为表征所述第二客户端对应的用户的身份的信息;
所述生成与所述群聊账号信息关联的所述语音房间的第二令牌信息,包括:
在基于所述第二客户端的标识信息确定所述第二客户端满足预设的加入条件后,生成与所述群聊账号信息关联的所述语音房间的第二令牌信息。
本申请的一些实施例中,所述方法还包括:
响应所述第二客户端发送的麦克风获取请求,为所述第二客户端生成第二虚拟麦克风。
本申请的一些实施例中,为所述第二客户端生成第二虚拟麦克风之后,还包括:
将所述第二虚拟麦克风的状态设置为预占用;
在所述第二客户端打开推流功能及静音功能后,将所述第二虚拟麦克风的状态更改为占用;
指示所述第二客户端关闭静音功能,并通过所述第二虚拟麦克风发送音频数据。
本申请的一些实施例中,所述在所述第二客户端打开推流功能及静音功能后,将所述第二虚拟麦克风的状态更改为占用,包括:
向所述第二客户端发送打开推流静音指令,所述打开推流静音指令用于指示所述第二客户端打开推流功能及静音功能;
接收所述第二客户端发送的状态更改指令,响应所述状态更改指令,将所述第二虚拟麦克风的状态更改为占用;其中所述状态更改指令为所述第二客户端打开推流功能及静音功能成功后生成的。
本申请的一些实施例中,所述在所述第二客户端打开推流功能及静音功能后,将所述第二虚拟麦克风的状态更改为占用,包括:
向所述第二客户端发送打开推流静音指令,所述打开推流静音指令用于指示所述第二客户端打开推流功能及静音功能;
指示所述第二客户端向所述实时通信服务端发送打开推流功能及静音功能成功的反馈信息;
接收所述第二客户端发送的状态更改指令,响应所述状态更改指令,将所述第二虚拟麦克风的状态更改为占用,其中,所述状态更改指令为所述第二客户端在接收到所述实时通信服务端发送的、用于指示所述打开推流功能及静音功能成功的反馈信息已接收的第一确认信息后生成的。
本申请的一些实施例中,在为所述第二客户端生成第二虚拟麦克风之前,所述方法还包括:
在检测到所述第二客户端不存在对应有虚拟麦克风时,获取所述群聊账号信息对应的当前虚拟麦克风的数量;
所述为所述第二客户端生成第二虚拟麦克风,包括:
若所述当前虚拟麦克风的数量小于所述群聊账号信息允许生成的虚拟麦克风的最大数量,则为所述第二客户端生成所述第二虚拟麦克风。
本申请的一些实施例中,在向所述第二客户端发送打开推流静音指令之后,所述方法还包括:
响应所述第二客户端发送的麦克风释放指令,将所述第二虚拟麦克风删除;
或者,在预设时间内,未接收到所述第二客户端发送的所述状态更改指令和所述麦克风释放指令,则将所述第二虚拟麦克风删除。
本申请的一些实施例中,在指示所述第二客户端关闭静音功能,并通过所述第二虚拟麦克风发送音频数据之后,所述方法还包括:
在接收到所述第二客户端发送的推流功能关闭成功的反馈信息之后,将所述第二客户端对应的所述第二虚拟麦克风删除,其中,在所述第二客户端关闭推流功能,并向所述实时通信服务端发送推流功能已关闭信息后,所述第二客户端在接收到所述实时通信服务端发送的第二确认信息后,生成推流功能关闭成功的反馈信息;
向所述第二客户端发送第二虚拟麦克风删除成功的反馈消息,指示所述第二客户端禁止发送音频数据。
本申请的一些实施例中,在指示所述第二客户端进入与所述群聊账号信息关联的语音房间之后,所述方法还包括:
接收所述第二客户端发送的与所述语音房间解绑的反馈信息;
判断所述第二客户端是否占用有第二虚拟麦克风,若是,则将所述第二客户端占用的第二虚拟麦克风删除,并向所述即时通信服务端发送群聊退出指令,所述群聊退出指令用于指示所述即时通信服务端解除所述第二客户端与所述群聊账号信息之间的关联;
接收到所述即时通信服务端发送的群聊退出成功的反馈信息后,指示所述第二客户端退出与所述群聊账号信息关联的语音房间。
第二方面,本申请实施例提供了一种进行语音通话的方法,应用于即时通信服务端,所述方法包括:
响应语音通话服务端发送的群聊账号创建请求,生成所述群聊账号创建请求对应的群聊账号信息,其中,所述群聊账号创建请求为所述语音通话服务端响应第一客户端发送的语音房间创建请求生成的;
将所述第一客户端与所述群聊账号信息关联,并将所述群聊账号信息发送给所述语音通话服务端;所述群聊账号信息用于所述语音通话服务端生成与所述群聊账号信息关联的语音房间的第一令牌信息,以便所述实时通信服务端基于所述第一令牌信息,创建与所述群聊账号信息关联的语音房间。
本申请的一些实施例中,所述群聊账号信息携带有属性信息,所述属性信息包括有效群聊以及无效群聊;
在响应语音通话服务端发送的群聊账号创建请求,生成所述群聊账号创建请求对应的群聊账号信息之后,在将所述第一客户端与所述群聊账号信息关联之前,所述方法还包括:
将所述群聊账号信息的属性信息设置为无效群聊;
在将所述群聊账号信息发送给所述语音通话服务端之后,所述方法还包括:
响应所述语音通话服务端发送的属性修改指令,将所述群聊账号信息的属性信息修改为有效群聊。
本申请的一些实施例中,将所述群聊账号信息发送给所述语音通话服务端之后,所述方法还包括:
响应所述语音通话服务端发送的针对第二客户端的群聊关联指令,将所述第二客户端与所述群聊关联指令指示的所述群聊账号信息关联,并将群聊关联成功的反馈信息发送给所述语音通话服务端。
本申请的一些实施例中,将所述群聊账号信息发送给所述语音通话服务端之后,响应所述语音通话服务端发送的针对第二客户端的群聊关联指令,将所述第二客户端与所述群聊关联指令指示的所述群聊账号信息关联之前,所述方法还包括:
响应所述语音通话服务端发送的客户端数量查询请求,确定所述群聊账号信息当前已关联的客户端的数量,其中,所述客户端数量查询请求为所述语音通话服务端响应第二客户端发送的语音房间加入请求生成的,所述语音房间加入请求携带有所述群聊账号信息;
将所述群聊账号信息当前关联的客户端的数量发送给所述语音通话服务端,以便所述语音通话服务端在确定所述群聊账号信息允许关联的客户端的最大数量大于所述当前关联的客户端的数量时,生成与所述群聊账号信息关联的语音房间的第二令牌信息;所述第二令牌信息用于指示所述实时通信服务端将所述第二客户端与所述语音房间关联,并反馈群聊关联指令。
本申请的一些实施例中,所述方法还包括:
响应所述语音通话服务端发送的关联判断指令,判断所述第二客户端与所述群聊账号信息是否关联,并生成关联判断结果,其中,所述关联判断指令为所述语音通话服务端响应所述第二客户端发送的麦克风获取请求生成的;
将所述关联判断结果发送给所述语音通话服务端,所述关联判断结果用于所述语音通话服务端在检测到所述关联判断结果为关联时,为所述第二客户端生成第二虚拟麦克风。
本申请的一些实施例中,将群聊关联成功的反馈信息发送给所述语音通话服务端之后,所述方法还包括:
响应所述语音通话服务端发送的群聊退出指令,解除所述第二客户端与所述群聊账号信息之间的关联,其中,所述群聊退出指令为所述语音通话服务端在接收到所述实时通信服务端发送的语音房间退出成功的反馈信息,以及将所述第二客户端对应的第二虚拟麦克风删除之后生成的;
生成群聊退出成功的反馈信息,并将所述群聊退出成功的反馈信息发送给所述语音通话服务端。
第三方面,本申请实施例提供了一种进行语音通话的方法,应用于实时通信服务端,所述方法包括:
接收第一客户端转发的语音房间创建指令;所述语音房间创建指令中携带有与群聊账号信息关联的语音房间的第一令牌信息,其中,所述语音房间创建指令为所述语音通话服务端响应第一客户端发送的语音房间创建请求,从即时通信服务端获取创建的群聊账号信息后生成的;
响应所述语音房间创建指令,基于所述第一令牌信息,创建与所述群聊账号信息关联的语音房间,并将所述第一客户端与所述语音房间关联;
生成语音房间关联成功的反馈信息,并将所述语音房间关联成功的反馈信息通过所述第一客户端发送给所述语音通话服务端,以便所述语音通话服务端指示所述第一客户端进入与所述群聊账号信息关联的语音房间,并发布所述群聊账号信息。
本申请的一些实施例中,在将所述语音房间关联成功的反馈信息通过所述第一客户端发送给所述语音通话服务端之后,所述方法还包括:
接收第二客户端发送的语音房间加入指令;所述语音房间加入指令中携带有与群聊账号信息关联的语音房间的第二令牌信息;
响应所述语音房间加入指令,基于所述第二令牌信息,将所述第二客户端与所述语音房间关联;
生成语音房间关联成功的反馈信息,并将所述语音房间关联成功的反馈信息通过所述第二客户端发送给所述语音通话服务端。
本申请的一些实施例中,将所述语音房间关联成功的反馈信息通过所述第二客户端发送给所述语音通话服务端之后,所述方法还包括:
接收所述第二客户端发送的打开推流功能及静音功能成功的反馈信息,其中,所述打开推流功能及静音功能成功的反馈信息为所述第二客户端响应打开推流静音指令,打开推流功能及静音功能后生成的;
在接收到所述打开推流功能及静音功能成功的反馈信息后,生成用于指示所述打开推流功能及静音功能成功的反馈信息已接收的第一确认信息,并将所述第一确认信息发送给所述第二客户端,以便所述第二客户端在接收到第一确认信息后,生成状态更改指令,并将所述状态更改指令发送给所述语音通话服务端;或者,在接收到所述打开推流功能及静音功能成功的反馈信息后,生成用于指示所述打开推流功能及静音功能成功的反馈信息已接收的第一确认信息,并将所述第一确认信息发送给所述第二客户端,以便所述第二客户端将接收到的所述第一确认信息转发给所述语音通话服务端。
本申请的一些实施例中,在接收所述第二客户端发送的所述关闭静音功能成功的反馈信息之后,所述方法还包括:
接收所述第二客户端发送的推流功能已关闭信息,其中,所述推流功能已关闭信息为所述第二客户端在关闭推流功能后生成的;
基于所述推流功能已关闭信息,生成第二确认信息,并将所述第二确认信息发送给所述第二客户端,以便所述第二客户端在接收到所述第二确认信息后,生成推流功能关闭成功的反馈信息。
本申请的一些实施例中,将所述语音房间关联成功的反馈信息通过所述第二客户端发送给所述语音通话服务端之后,所述方法还包括:
响应所述第二客户端发送的语音房间退出指令,解除所述第二客户端与所述语音房间之间的关联;
在所述第二客户端与所述语音房间之间的关联解除成功后,生成关联已解除信息,将所述关联已解除信息发送给所述第二客户端。
第四方面,本申请实施例提供了一种进行语音通话的方法,应用于第一客户端,所述方法包括:响应第一触发操作,生成语音房间创建请求;
将所述语音房间创建请求发送给所述语音通话服务端,以便所述语音通话服务端指示即时通信服务端创建群聊账号信息并生成与所述群聊账号信息关联的语音房间的第一令牌信息,以便实时通信服务端基于所述第一令牌信息创建与所述群聊账号信息关联的语音房间并将所述第一客户端与所述语音房间关联;
接收所述语音通话服务端在所述实时通信服务端发送语音房间关联成功的反馈信息后发送的语音房间进入指示;
基于所述语音房间进入指示中携带的第一令牌信息,进入与所述群聊账号信息关联的语音房间。
本申请的一些实施例中,接收所述语音房间关联成功的反馈信息之后,还包括:
将所述群聊账号信息发送给其它客户端,以便其它客户端基于该群聊账号信息进入与所述群聊账号信息关联的语音房间。
本申请的一些实施例中,将所述语音房间创建请求发送给所述语音通话服务端之后,接收所述语音房间进入指示之前,还包括:
接收所述语音通话服务端发送的携带有所述群聊账号信息和所述第一令牌信息的语音房间创建指令;
将所述语音房间创建指令转发给所述实时通信服务端,以便所述实时通信服务端在接收到所述语音房间创建指令后,基于所述第一令牌信息,创建与所述群聊账号信息关联的语音房间,并将所述第一客户端与所述语音房间关联;
接收所述实时通信服务端发送的所述语音房间关联成功的反馈信息,并将所述语音房间关联成功的反馈信息转发给所述语音通话服务端。
本申请的一些实施例中,进入与所述群聊账号信息关联的语音房间之后,所述方法还包括:
关闭推流功能,生成推流已关闭信息,并将所述推流已关闭信息发送给所述实时通信服务端,以便所述语音通话服务端将为所述第一客户端生成的第一虚拟麦克风删除。
本申请的一些实施例中,进入与所述群聊账号信息关联的语音房间之后,所述方法还包括:
响应第二触发操作,生成语音房间退出指令,将所述语音房间退出指令发送给所述实时通信服务端,以便所述实时通信服务端解除所述第一客户端与所述语音房间之间的关联。
第五方面,本申请实施例提供了一种进行语音通话的方法,应用于第二客户端,所述方法包括:
响应第三触发操作,生成语音房间加入请求;所述语音房间加入请求中携带有群聊账号信息;
将所述语音房间加入请求发送给所述语音通话服务端,以便所述语音通话服务端为所述第二客户端生成与所述群聊账号信息关联的语音房间的第二令牌信息;
接收所述语音通话服务端发送的语音房间进入指示;
根据所述语音房间进入指示中携带的第二令牌信息,进入与所述群聊账号信息关联的语音房间。
本申请的一些实施例中,将所述语音房间加入请求发送给所述语音通话服务端之后,接收所述语音通话服务端发送的语音房间进入指示之前,还包括:
接收所述语音通话服务端发送的携带有所述群聊账号信息和所述第二令牌信息的语音房间加入指令;
将所述语音房间加入指令转发给所述实时通信服务端,以便所述实时通信服务端在接收到所述语音房间加入指令后,基于所述第二令牌信息,将所述第二客户端与所述语音房间关联;
接收所述实时通信服务端发送的所述语音房间关联成功的反馈信息,并将所述语音房间关联成功的反馈信息转发给所述语音通话服务端。
本申请的一些实施例中,进入与所述群聊账号信息关联的语音房间之后,所述方法还包括:
生成麦克风获取请求,并将所述麦克风获取请求发送给所述语音通话服务端,其中,所述麦克风获取请求中携带有群聊账号信息;以便所述语音通话服务端响应所述麦克风获取请求,从所述即时通信服务端获取所述麦克风获取请求中的群聊账号信息是否与所述第二客户端关联的关联判断结果;若所述关联判断结果为已关联,则为所述第二客户端生成第二虚拟麦克风;所述第二虚拟麦克风用于所述第二客户端向所述群聊账号信息关联的其它客户端发送音频数据。
本申请的一些实施例中,在生成麦克风获取请求,并将所述麦克风获取请求发送给所述语音通话服务端之后,所述方法还包括:
接收所述语音通话服务端发送的打开推流静音指令;
基于所述打开推流静音指令,打开推流功能及静音功能;
生成打开推流功能及静音功能成功的反馈信息,并将所述打开推流功能及静音功能成功的反馈信息发送给所述实时通信服务端;
在接收到所述实时通信服务端发送的用于指示所述打开推流功能及静音功能成功的反馈信息已接收的第一确认信息后,生成状态更改指令,并将所述状态更改指令发送给所述语音通话服务端,以便所述语音通话服务端响应所述状态更改指令,将所述第二虚拟麦克风的状态更改为占用;或者,在接收到所述实时通信服务端发送的用于指示所述打开推流功能及静音功能成功的反馈信息已接收的第一确认信息后,将所述用于指示所述打开推流功能及静音功能成功的反馈信息已接收的第一确认信息转发给所述语音通话服务端,以便所述语音通话服务端将所述第二虚拟麦克风的状态更改为占用;
接收所述语音通话服务端发送的取消静音指令,基于所述取消静音指令,关闭静音功能,并通过所述第二虚拟麦克风发送音频数据。
本申请的一些实施例中,在将所述打开推流功能及静音功能成功的反馈信息发送给所述实时通信服务端之后,所述方法还包括:
在接收到所述实时通信服务端发送的用于指示所述打开推流功能及静音功能成功的反馈信息未接收的第一确认信息后,生成麦克风释放指令,并将所述麦克风释放指令发送给所述语音通话服务端,以便所述语音通话服务端响应所述麦克风释放指令,将所述第二虚拟麦克风删除;
或者,在接收到所述实时通信服务端发送的用于指示所述打开推流功能及静音功能成功的反馈信息未接收的第一确认信息后,将所述用于指示所述反馈信息未接收的第一确认信息转发给所述语音通话服务端,以便所述语音通话服务端将所述第二虚拟麦克风删除。
本申请的一些实施例中,在将所述麦克风获取请求发送给所述语音通话服务端之后,所述方法还包括:
关闭推流功能,生成推流功能已关闭信息,并将所述推流功能已关闭信息发送给所述实时通信服务端;
接收所述实时通信服务端发送的第二确认信息,并生成推流功能关闭成功的反馈信息,其中,所述第二确认信息为所述实时通信服务端在接收到所述推流功能已关闭信息后生成的;
将所述推流功能关闭成功的反馈信息发送给所述语音通话服务端,以便所述语音通话服务端将为所述第二客户端生成的第二虚拟麦克风删除。
本申请的一些实施例中,进入与所述群聊账号信息关联的语音房间之后,所述方法还包括:
响应第四触发操作,生成语音房间退出指令,将所述语音房间退出指令发送给所述实时通信服务端,以便所述实时通信服务端解除所述第二客户端与所述语音房间之间的关联。
第六方面,本申请实施例还提供一种进行语音通话的装置,应用于语音通话服务端,所述装置包括:
群聊账号创建请求发送模块,用于响应第一客户端发送的语音房间创建请求,向即时通信服务端发送群聊账号创建请求,所述群聊账号创建请求用于指示所述即时通信服务端创建与所述第一客户端关联的群聊账号信息;
群聊账号信息接收模块,用于接收所述即时通信服务端反馈的已创建的群聊账号信息,并生成与所述群聊账号信息关联的语音房间的第一令牌信息;
语音房间创建指令发送模块,用于通过所述第一客户端向实时通信服务端发送语音房间创建指令,所述语音房间创建指令用于指示所述实时通信服务端基于所述第一令牌信息,创建与所述群聊账号信息关联的语音房间,并指示所述实时通信服务端将所述第一客户端与所述语音房间关联;
第一语音房间进入模块,用于接收所述第一客户端发送的反馈信息,当所述反馈信息为所述语音房间与所述第一客户端关联成功时,指示所述第一客户端进入与所述群聊账号信息关联的语音房间。
第七方面,本申请实施例还提供一种进行语音通话的装置,应用于即时通信服务端,所述装置包括:
群聊账号信息生成模块,用于响应语音通话服务端发送的群聊账号创建请求,生成所述群聊账号创建请求对应的群聊账号信息,其中,所述群聊账号创建请求为所述语音通话服务端响应第一客户端发送的语音房间创建请求生成的;
第一关联模块,用于将所述第一客户端与所述群聊账号信息关联,并将所述群聊账号信息发送给所述语音通话服务端;所述群聊账号信息用于所述语音通话服务端生成与所述群聊账号信息关联的语音房间的第一令牌信息,以便所述实时通信服务端基于所述第一令牌信息,创建与所述群聊账号信息关联的语音房间。
第八方面,本申请实施例还提供一种进行语音通话的装置,应用于实时通信服务端,所述装置包括:
语音房间创建指令接收模块,用于接收第一客户端转发的语音房间创建指令;所述语音房间创建指令中携带有与群聊账号信息关联的语音房间的第一令牌信息,其中,所述语音房间创建指令为所述语音通话服务端响应第一客户端发送的语音房间创建请求,从即时通信服务端获取创建的群聊账号信息后生成的;
语音房间创建模块,用于响应所述语音房间创建指令,基于所述第一令牌信息,创建与所述群聊账号信息关联的语音房间,并将所述第一客户端与所述语音房间关联;
反馈信息生成模块,用于生成语音房间关联成功的反馈信息,并将所述语音房间关联成功的反馈信息通过所述第一客户端发送给所述语音通话服务端,以便所述语音通话服务端指示所述第一客户端进入与所述群聊账号信息关联的语音房间,并发布所述群聊账号信息。
第九方面,本申请实施例还提供一种进行语音通话的装置,应用于第一客户端,所述装置包括:
语音房间创建请求生成模块,用于响应第一触发操作,生成语音房间创建请求;
语音房间创建请求发送模块,用于将所述语音房间创建请求发送给所述语音通话服务端,以便所述语音通话服务端指示即时通信服务端创建群聊账号信息并生成与所述群聊账号信息关联的语音房间的第一令牌信息,以便实时通信服务端基于所述第一令牌信息创建与所述群聊账号信息关联的语音房间并将所述第一客户端与所述语音房间关联;
第一语音房间进入指示接收模块,用于接收所述语音通话服务端在所述实时通信服务端发送语音房间关联成功的反馈信息后发送的语音房间进入指示;
第二语音房间进入模块,用于基于所述语音房间进入指示中携带的第一令牌信息,进入与所述群聊账号信息关联的语音房间。
第十方面,本申请实施例还提供一种进行语音通话的装置,应用于第二客户端,所述装置包括:
语音房间加入请求生成模块,用于响应第三触发操作,生成语音房间加入请求;所述语音房间加入请求中携带有群聊账号信息;
语音房间加入请求发送模块,用于将所述语音房间加入请求发送给所述语音通话服务端,以便所述语音通话服务端为所述第二客户端生成与所述群聊账号信息关联的语音房间的第二令牌信息;
第二语音房间进入指示接收模块,用于接收所述语音通话服务端发送的语音房间进入指示;
第三语音房间进入模块,用于根据所述语音房间进入指示中携带的第二令牌信息,进入与所述群聊账号信息关联的语音房间。
第十一方面,本申请实施例还提供一种电子设备,包括:处理器、存储器和总线,所述存储器存储有所述处理器可执行的机器可读指令,当电子设备运行时,所述处理器与所述存储器之间通过总线通信,所述机器可读指令被所述处理器执行时执行上述第一方面,或第一方面的任一种可能的实施方式中所述的进行语音通话的方法的步骤。
第十二方面,本申请实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行上述第一方面,或第一方面的任一种可能的实施方式中所述的进行语音通话的方法的步骤。
通过本申请提出的进行语音通话的方法,能够基于单个客户端的请求,实现语音房间的灵活创建,并使得其他客户端通过群聊账号信息进入该语音房间,从而实现语音房间内多个客户端之间的语音通话,相比只能在已建立群聊的基础上发起语音通话请求的方式,提升了客户端进行语音房间创建及语音通话的灵活性。
为使本申请的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1示出了本申请实施例所提供的一种进行语音通话的方法中,创建语音通话的具体过程的流程图;
图2示出了本申请实施例所提供的一种进行语音通话的方法中,加入语音通话的具体过程的流程图;
图3示出了本申请实施例所提供的一种进行语音通话的方法中,获取虚拟麦克风的具体过程的流程图;
图4示出了本申请实施例所提供的一种进行语音通话的方法中,退出虚拟麦克风的具体过程的流程图;
图5示出了本申请实施例所提供的一种进行语音通话的方法中,退出语音聊天的具体过程的流程图;
图6示出了本申请实施例所提供的一种进行语音通话的装置的结构示意图;
图7示出了本申请实施例所提供的另一种进行语音通话的装置的结构示意图;
图8示出了本申请实施例所提供的另一种进行语音通话的装置的结构示意图;
图9示出了本申请实施例所提供的另一种进行语音通话的装置的结构示意图;
图10示出了本申请实施例所提供的另一种进行语音通话的装置的结构示意图;
图11示出了本申请实施例所提供的一种电子设备的结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
考虑到创建多人语音聊天系统,实现多人语音聊天的功能越来越重要,本申请实施例提供了一种进行语音通话的方法及装置,下面通过实施例进行描述。
为便于对本实施例进行理解,首先对本申请实施例所公开的一种进行语音通话的方法进行详细介绍。
实施例一
本申请实施例提供了一种进行语音通话的方法,该进行语音通话的方法应用于语音通话系统,语音通话系统包括实时通信服务端、客户端、语音通话服务端、即时通信服务端,客户端分别与实时通信服务端、语音通话服务端相连,语音通话服务端与即时通信服务端相连。
本申请实施例提出的一种进行语音通话的方法中包括创建语音通话的具体过程、加入语音通话的具体过程、退出语音通话的具体过程、获取虚拟麦克风的具体过程、退出虚拟麦克风的具体过程。
本申请实施例首先对创建语音通话的具体过程进行描述,具体的,参见图1所示的一种进行语音通话的方法中,创建语音通话的具体过程的流程图,其中,进行语音通话的方法中创建语音通话的具体过程,包括S101-S113:
S101:第一客户端响应第一触发操作,生成语音房间创建请求。
S102:第一客户端将语音房间创建请求发送给语音通话服务端。
S103:语音通话服务端响应第一客户端发送的语音房间创建请求,向即时通信服务端发送群聊账号创建请求。
S104:即时通信服务端响应语音通话服务端发送的群聊账号创建请求,生成群聊账号创建请求对应的群聊账号信息。
S105:即时通信服务端将第一客户端与群聊账号信息关联,并将群聊账号信息发送给语音通话服务端。
S106:语音通话服务端接收即时通信服务端反馈的已创建的群聊账号信息,并生成与群聊账号信息关联的语音房间的第一令牌信息。
S107:语音通话服务端向第一客户端发送语音房间创建指令。
S108:第一客户端向实时通信服务端转发语音房间创建指令。
S109:实时通信服务端响应语音房间创建指令,基于第一令牌信息,创建与群聊账号信息关联的语音房间,并将第一客户端与语音房间关联。
S110:实时通信服务端生成语音房间关联成功的反馈信息,并将语音房间关联成功的反馈信息通过第一客户端。
S111:第一客户端将语音房间关联成功的反馈信息发送给语音通话服务端。
S112:语音通话服务端接收到语音房间关联成功的反馈信息后,向第一客户端发送语音房间进入指示,其中,语音房间进入指示携带有第一令牌信息。
S113:第一客户端基于语音房间进入指示中携带的第一令牌信息,进入与群聊账号信息关联的语音房间。
针对S101和S102,本申请实施例中,第一客户端包括手机、电脑、平板、网络电视等智能设备。第一触发操作可以为客户点击客户端的预设位置处,或者,第一触发操作可以为客户向客户端输入预设的触发数据,触发数据可以为预设的图像数据、音频数据、视频数据等。第一客户端在接收到第一触发操作后,响应该第一触发操作,生成语音房间创建请求,并将语音房间创建请求发送给语音通话服务端。
针对S103,本申请实施例中,语音房间创建请求中携带有第一客户端的标识信息,其中,第一客户端的标识信息为表征第一客户端对应的用户的身份的信息;例如,第一客户端的标识信息可以为第一客户端上存储的注册信息,该注册信息包括客户姓名、客户身份、客户职业等。
一种可选实施例中,语音通话服务端响应第一客户端发送的语音房间创建请求,向即时通信服务端发送群聊账号创建请求,包括:语音通话服务端在基于第一客户端的标识信息确定第一客户端满足预设的创建条件后,向即时通信服务端发送群聊账号创建请求。
本申请实施例中,语音通话服务端在接收到语音房间创建请求之后,基于语音房间创建请求中携带的第一客户端的标识信息,对第一客户端进行判断,判断第一客户端是否满足创建条件,在确定第一客户端满足创建条件后,向即时通信服务端发送群聊账号创建请求。
一种可选实施例中,语音通话服务端基于第一客户端的标识信息确定第一客户端满足预设的创建条件,包括:语音通话服务端检测预先存储的目标标识信息列表中是否包括第一客户端的标识信息;若包括,则确定第一客户端满足预设的创建条件;若不包括,则确定第一客户端不满足预设的创建条件。
本申请实施例中,预先存储的目标标识信息列表可以为基于客户身份存储的目标标识信息列表,例如,在同一公司内,可以将公司内的经理的注册信息、组长的注册信息、领导的注册信息作为目标客户端的标识信息存储在目标标识信息列表中。在同一学校里,可以将学校内老师的注册信息、校长的注册信息、管理员的注册信息等作为目标客户端的标识信息存储在目标标识信息列表中。
针对S104和S105,本申请实施例中,群聊账号信息为即时通信服务端基于群聊账号创建请求生成的。即时通信服务端在生成群聊账号信息之后,将第一客户端与群聊账号信息关联,并将该群聊账号信息发送给语音通话服务端。其中,本申请实施例中的群聊账号信息中携带有语音聊天标志位,该语音聊天标志位表征该群聊账号信息对应一语音房间;若群聊账号信息中没有语音聊天标志位,则该群聊账号信息没有对应语音房间,无法进行语音通话。
一种可选实施例中,群聊账号信息对应有数量信息,数量信息包括第一数量和/或第二数量,第一数量为群聊账号信息允许关联的客户端的最大数量,第二数量为群聊账号信息允许生成的虚拟麦克风的最大数量,在第一数量和第二数量同时存在的情况下,第二数量小于或等于第一数量。
本申请实施例中,数量信息可以为语音通话服务端提前设置好的数量,也可以为客户通过第一客户端在创建语音聊天时,实时生成的数量。由于考虑到与群聊账号信息允许关联的客户端较多,若允许每个客户端对应的客户都可以发送音频数据时,会造成同一时刻发送的音频数据太多,造成客户无法准确接收其他客户端发送的音频数据,使得客户语音通话的效果较差,因此,优选的,本申请设置第二数量小于第一数量,例如,可以将第一数量设置为20,第二数量设置为3。其中,第一数量以及第二数量的值可以根据实际情况进行设置。
具体的,若数量信息为语音通话服务端提前设置好的数量时,语音通话服务端向即时通信服务端发送群聊账号创建请求时,群聊账号创建请求携带有该数量信息,进而使得即时通信服务端生成的群聊账号信息对应有数量信息,例如,语音通话服务端可以设置第一数量为10,第二数量为3,则群聊账号信息允许关联的客户端的最大数量为10,群聊账号信息允许生成的虚拟麦克风的最大数量为3,即第一客户端创建的语音房间允许10个人进行语音通话,允许3个人同时讲话。若数量信息为客户通过第一客户端在创建语音聊天时实时生成的,则第一客户端生成的语音房间创建请求携带有数量信息,使得语音通话服务端生成的群聊账号创建请求携带有数量信息,进而使得即时通信服务端生成的群聊账号信息对应有数量信息。
针对S106和S107,语音通话服务端在接收到群聊账号信息之后,获取语音通话服务端生成的群聊账号信息对应的语音房间账号信息,或者获取外部账号生成服务端生成的群聊账号信息对应的语音房间账号信息,将群聊账号信息与语音房间账号信息关联,并基于第一客户端的标识信息、语音房间账号信息,根据预设的加密算法生成与群聊账号信息关联的语音房间的第一令牌信息,示例性的,第一令牌信息可以为令牌token信息。语音通话服务端基于第一令牌信息,生成语音房间创建指令,并将该语音房间创建指令通过第一客户端发送给实时通信服务端。
针对S109和S110,本申请实施例中,实时通信服务端在接收到语音房间创建指令后,判断实时通信服务端上是否存在与第一令牌信息携带的语音房间标识对应的语音房间,若不存在,则基于第一令牌信息,创建与群聊账号信息关联的语音房间,并将第一客户端与语音房间关联。实时通信服务端在将第一客户端与语音房间关联后,生成语音房间关联成功的反馈信息,并将语音房间关联成功的反馈信息发送给第一客户端,使得第一客户端将语音房间关联成功的反馈信息转发给语音通话服务端。
针对S112,一种可选的实时例中,在接收到第一客户端发送的语音房间关联成功的反馈信息之后,该方法还包括:为第一客户端生成第一虚拟麦克风。
本申请实施例中,为第一客户端生成第一虚拟麦克风,即为生成语音房间创建请求的客户端生成一虚拟麦克风,使得第一客户端能够通过第一虚拟麦克风发送音频数据。具体的,可以在第一客户端进入与群聊账号信息关联的语音房间之前,为第一客户端生成第一虚拟麦克风;也可以在第一客户端进入与群聊账号信息关联的语音房间之后,为第一客户端生成第一虚拟麦克风。
一种可选的实时例中,群聊账号信息携带有属性信息,属性信息包括有效群聊以及无效群聊;S104还包括:即时通信服务端将群聊账号信息的属性信息设置为无效群聊。在语音通话服务端接收到语音房间关联成功的反馈信息后,在向第一客户端发送语音房间进入指示之前,S112还包括:语音通话服务端生成属性修改指令,并将该属性修改指令发送给即时通信服务端,即使通信服务端响应语音通话服务端发送的属性修改指令,将群聊账号信息的属性信息修改为有效群聊。
针对S113,本申请实施例中,第一客户端基于第一令牌信息进入与群聊账号信息关联的语音房间。其中,第一令牌信息中包括客户端标识信息、语音房间账号信息,在第一令牌信息中的客户端标识信息与第一客户端相匹配,以及语音房间账号信息与群聊账号信息对应的语音房间相匹配时,才能进入与群聊账号信息关联的语音房间。
一种可选实施例,在S113之后,该方法还包括:
第一客户端将群聊账号信息发送给其它客户端,以便其它客户端基于该群聊账号信息进入与群聊账号信息关联的语音房间。
本申请实施例中,第一客户端将群聊账号信息发送其他客户端,其他客户端基于该群聊账号信息进行与群聊账号信息关联的语音房间。或者,第一客户端在进入语音房间之后,在其他客户端上生成语音房间对应的接口,其他客户端通过点击该接口进行与群聊账号信息关联的语音房间。
本申请实施例提出的一种进行语音通话的方法,通过第一客户端、实时通信服务端、即时通信服务端、语音通话服务端之间的交互动作,实现了语音房间的创建,使得其他客户端通过群聊账号信息进入该语音房间,实现语音房间内的客户端之间的语音通话,提高了语音通话的效率。
参见图2所示的一种进行语音通话的方法中,加入语音通话的具体过程的流程图,其中,进行语音通话的方法中加入语音通话的具体过程,包括S201-S214:
S201:第二客户端响应第三触发操作,生成语音房间加入请求,语音房间加入请求中携带有群聊账号信息。
S202:第二客户端将语音房间加入请求发送给语音通话服务端。
S203:语音通话服务端响应语音房间加入请求,生成客户端数量查询请求,并将客户端数量查询请求发送给即时通信服务端。
S204:即时通信服务端响应客户端数量查询请求,确定群聊账号信息当前已关联的客户端的数量,并将群聊账号信息当前关联的客户端的数量发送给语音通话服务端。
S205:语音通话服务端在确定群聊账号信息允许关联的客户端的最大数量大于当前关联的客户端的数量时,生成与群聊账号信息关联的语音房间的第二令牌信息。
S206:语音通话服务端生成语音房间加入指令,并将语音房间加入指令发送给第二客户端。
S207:第二客户端向将语音房间加入指令转发给实时通信服务端,其中,语音房间加入指令中携带有与群聊账号信息关联的语音房间的第二令牌信息。
S208:实时通信服务端响应语音房间加入指令,基于第二令牌信息,将第二客户端与语音房间关联。
S209:实时通信服务端生成语音房间关联成功的反馈信息,并将语音房间关联成功的反馈信息发送给第二客户端。
S210:第二客户端将语音房间关联成功的反馈信息转发给语音通话服务端。
S211:语音通话服务端在接收到第二客户端发送的语音房间关联成功的反馈信息后,向即时通信服务端发送群聊关联指令。
S212:即时通信服务端响应接收到的群聊关联指令,将第二客户端与群聊关联指令指示的群聊账号信息关联,并将群聊关联成功的反馈信息发送给语音通话服务端。
S213:语音通话服务端在接收到群聊关联成功的反馈信息后,生成语音房间进入指示,并将语音房间进入指示发送给第二客户端。
S214:第二客户端根据语音房间进入指示中携带的第二令牌信息,进入与群聊账号信息关联的语音房间。
针对S201和S202,本具体实施时,第一客户端与第二客户端对应的客户身份可以不同。例如,在学校场景中,第一客户端能够创建语音聊天,故第一客户端对应的标识信息可以为学校的老师、学校管理员等,第二客户端能够加入语音聊天,则第二客户端对应的标识信息可以为学校的学生、后勤人员等学校内任一成员。第二客户端基于群聊账号信息以及第二客户端标识信息生成语音房间加入请求,并将语音房间加入请求发送给语音通话服务端。
针对S203和S204,本申请实施例中,语音通话服务端生成数量查询请求,并将数量查询请求发送给即时通信服务端,即时通信服务端基于客户端数量查询请求,查询群聊账号信息当前已关联的客户端的数量,并将该数量发送给语音通话服务端。
针对S205、S206和S207,本申请实施例中,语音通话服务端在确定群聊账号信息允许关联的客户端的最大数量等于当前关联的客户端的数量时,则生成群聊账号信息对应的数量已满信息,并将数量已满信息发送给第二客户端,使得第二客户端不能加入到该群聊账号信息对应的语音房间。
本申请实施例中,语音通话服务端基于第二令牌信息生成语音房间加入指令,并将该语音房间加入指令通过第二客户端发送给实时通信服务端。
本申请实施例中,作为一可选实施例,语音房间加入请求中携带有第二客户端的标识信息,其中,第二客户端的标识信息为表征第二客户端对应的用户的身份的信息。具体的,生成与群聊账号信息关联的语音房间的第二令牌信息,包括:
在基于第二客户端的标识信息确定第二客户端满足预设的加入条件后,生成与群聊账号信息关联的语音房间的第二令牌信息。
本申请实施例中,在语音通话服务端响应语音房间加入请求之后,在生成客户端数量查询请求之前,该方法还包括:基于第二客户端的标识信息,判断第二客户端的标识信息是否满足预设的加入条件,例如,群聊账号信息A对应第一学校第一班级,群聊账号信息A为第一学校第一班级的班主任对应的第一客户端生成语音房间创建请求创建生成的,则第二客户端的标识信息可以为第一学校第一班级中的学生或者学生家长,若第二客户端的标识信息为第一学校第一班级的同学A,则该第二客户端满足预设的加入条件;若第二客户端的标识信息为第一学校第二班级的学生B,则第二客户端不满足预设的加入条件,即群聊账号信息A允许第一学校第一班级的学生对应的客户端或者学生家长对应的客户端与该群聊账号信息A关联。示例性的,第二客户端的标识信息还可以为客户通过第二客户端输入的密码,通过判断第二客户端接收到的密码输入是否预先存储的密码相同,若相同,则确定第二客户端满足加入条件。具体的,预设的加入条件以及预设的创建条件可以根据实际情况进行设置,本申请实施例对此不进行具体限定。
针对S208和S209,本申请实施例中,若第二令牌信息与第二客户端以及第二令牌信息与语音房间账号信息均匹配,则将第二客户端与语音房间关联。若第二令牌信息与第二客户端或/和语音房间账号信息不匹配,则不将第二客户端与语音房间关联,并生成第二令牌信息不匹配的反馈信息给第二客户端。实时通信服务端在将第二客户端与语音房间关联后,生成语音房间关联成功的反馈信息,并将语音房间关联成功的反馈信息通过第二客户端发送给语音通话服务端。
针对S211,语音通话服务端在接收到第二客户端发送的语音房间关联成功的反馈信息后,生成群聊关联指令,并将该群聊关联指令发送给即时通信服务端。
针对S212和S213,本申请实施例中,群聊关联指令携带有第二客户端信息以及群聊账号信息,即时通信服务端响应群聊关联指令,将群聊关联指令携带的第二客户端信息以及群聊账号信息关联,并生成群聊关联成功的反馈信息,将群聊关联成功的反馈信息发送给语音通话服务端。
本申请实施例中,语音通话服务端在接收到群聊关联成功的反馈信息后,生成语音房间进入指示,并将语音房间进入指示发送给第二客户端,其中,该语音房间进入指示中携带有第二令牌信息。
针对S214,第二客户端根据语音房间进入指示中携带的第二令牌信息,进入与群聊账号信息关联的语音房间,即当第二令牌信息中携带的客户端标识信息与第二客户端的标识信息匹配,以及第二令牌信息中携带的语音房间账号信息与待进入的语音房间匹配时,第二客户端进入与群聊账号信息关联的语音房间。
本申请实施例提出的进行语音通话的方法,通过S201-S214的交互过程,在创建了语音房间之后,实现了除第一客户端之外的其他满足加入条件的客户端进入该语音房间的功能,使得加入该语音房间的客户端能够进行语音通话,实现了语音通话功能。
参见图3所示的一种进行语音通话的方法中,获取虚拟麦克风的具体过程的流程图,其中,进行语音通话的方法中获取虚拟麦克风的具体过程,包括S301-S315:
S301:第二客户端生成麦克风获取请求,并将麦克风获取请求发送给语音通话服务端,其中,麦克风获取请求中携带有群聊账号信息。
S302:语音通话服务端响应麦克风获取请求,生成关联判断指令。
S303:语音通话服务端将关联判断指令发送给即时通信服务端。
S304:即时通信服务端响应关联判断指令,判断第二客户端与群聊账号信息是否关联,并生成关联判断结果。
S305:即时通信服务端将关联判断结果发送给语音通话服务端。
S306:语音通话服务端在检测到关联判断结果为关联时,为第二客户端生成第二虚拟麦克风;第二虚拟麦克风用于第二客户端向群聊账号信息关联的其它客户端发送音频数据。
S307:语音通话服务端将第二虚拟麦克风的状态设置为预占用。
S308:语音通话服务端向第二客户端发送打开推流静音指令。
S309:第二客户端基于打开推流静音指令,打开推流功能及静音功能。
S310:第二客户端生成打开推流功能及静音功能成功的反馈信息,并将打开推流功能及静音功能成功的反馈信息发送给实时通信服务端。
S311:实时通信服务端在接收到打开推流功能及静音功能成功的反馈信息后,生成用于指示打开推流功能及静音功能成功的反馈信息已接收的第一确认信息,并将用于指示打开推流功能及静音功能成功的反馈信息已接收的第一确认信息发送给第二客户端。
S312:第二客户端在接收到用于指示打开推流功能及静音功能成功的反馈信息已接收的第一确认信息后,生成状态更改指令,并将状态更改指令发送给语音通话服务端。
S313:语音通话服务端响应状态更改指令,将第二虚拟麦克风的状态更改为占用。
S314:语音通话服务端向第二客户端发送取消静音指令。
S315:第二客户端基于取消静音指令,关闭静音功能,并通过第二虚拟麦克风发送音频数据。
针对S301~S303,本申请实施例中,第二客户端生成麦克风获取请求,将麦克风获取请求发送给语音通话服务端,使得语音通话服务端响应麦克风获取请求,生成关联判断指令,语音通话服务端将关联判断指令发送给即时通信服务端,其中,麦克风获取请求中携带有群聊账号信息以及第二客户端的标识信息,关联判断指令中携带有第二客户端的标识信息以及群聊账号信息。
针对S304,本申请实施例中,即时通信服务端在接收到关联判断指令后,判断关联判断指令中携带的第二客户端的标识信息以及群聊账号信息是否关联,并生成关联判断结果,其中,关联判断结果包括第二客户端与群聊账号信息关联,以及第二客户端与群聊账号信息不关联。
针对S306:一种可选实施例中,语音通话服务端在检测到关联判断结果为关联之后,在为第二客户端生成第二虚拟麦克风之前,该方法还包括:
检测第二客户端是否对应有虚拟麦克风,若是,则向第二客户端发送拒绝获取麦克风指令;若否,则获取群聊账号信息对应的当前虚拟麦克风的数量。
一种可选实施例,为第二客户端生成第二虚拟麦克风,包括:
若当前虚拟麦克风的数量小于群聊账号信息允许生成的虚拟麦克风的最大数量,则为第二客户端生成第二虚拟麦克风。其中,第二虚拟麦克风用于第二客户端向群聊账号信息关联的其他客户端发送音频数据。
本申请实施例中,在为第二客户端生成第二虚拟麦克风之前,需要对第二客户端的状态以及当前虚拟麦克风的状态进行检测。在具体实施时,避免虚拟麦克风资源的浪费,设置为一个客户端设置一个虚拟麦克风。对第二客户端的状态进行检测,即为检测第二客户端是否对应有虚拟麦克风,若是,则拒绝第二客户端获取虚拟麦克风,若否,则检测当前麦克风的状态。具体的,由于设置的虚拟麦克风存在第二数量,若检测到当前虚拟麦克风的数量等于群聊账号信息允许生成的虚拟麦克风的最大数量,则表示当前虚拟麦克风的数量已达到上限,不能再生成虚拟麦克风,则向第二客户端发送拒绝获取虚拟麦克风指令;若当前虚拟麦克风的数量小于群聊账号信息允许生成的虚拟麦克风的最大数量,则为第二客户端生成第二虚拟麦克风。在具体实施时,若麦克风获取请求中携带有要获取的虚拟麦克风的标识时,则在确定第二客户端无对应的虚拟麦克风时,基于麦克风获取请求对应的虚拟麦克风的标识,判断该虚拟麦克风的状态,即判断该虚拟麦克风当前是否匹配有客户端,若该虚拟麦克风没有匹配客户端,则为第二客户端生成虚拟麦克风,生成的虚拟麦克风的标识与麦克风获取请求中携带的虚拟麦克风的标识相同。
针对S307~S311,语音通话服务端将第二虚拟麦克风的状态设置为预占用;并向第二客户端发送打开推流静音指令,使得第二客户端基于打开推流静音指令,打开推流功能及静音功能;第二客户端在打开推流功能及静音功能后,生成打开推流功能及静音功能成功的反馈信息,并将该打开推流功能及静音功能成功的反馈信息发送给实时通信服务端。实时通信服务端在接收到打开推流静音功能成功的反馈信息后,生成用于指示打开推流功能及静音功能成功的反馈信息已接收的第一确认信息,并将用于指示打开推流功能及静音功能成功的反馈信息已接收的第一确认信息发送给第二客户端;或者,实时通信服务端在接收到打开推流静音功能成功的反馈信息后,生成用于指示打开推流功能及静音功能成功的反馈信息未接收的第一确认信息,并将用于指示打开推流功能及静音功能成功的反馈信息未接收的第一确认信息发送给第二客户端。其中,第一确认信息为表征实时通信服务端已接收或未接受打开推流功能及静音功能成功的反馈信息的信息。
针对S312:作为一可选实施例,第二客户端在接收到用于指示打开推流功能及静音功能成功的反馈信息已接收的第一确认信息后,将用于指示打开推流功能及静音功能成功的反馈信息已接收的第一确认信息转发给语音通话服务端,使得语音通话服务端在接收到用于指示打开推流功能及静音功能成功的反馈信息已接收的第一确认信息后,将第二虚拟麦克风的状态更改为占用。或者,第二客户端在接收到用于指示打开推流功能及静音功能成功的反馈信息未接收的第一确认信息后,将用于指示打开推流功能及静音功能成功的反馈信息未接收的第一确认信息转发给语音通话服务端,使得语音通话服务端在接收到用于指示打开推流功能及静音功能成功的反馈信息未接收的第一确认信息后,将第二虚拟麦克风删除。
作为一可选实施例,在将打开推流功能及静音功能成功的反馈信息发送给实时通信服务端之后,该方法还包括:在接收到实时通信服务端发送的用于指示打开推流功能及静音功能成功的反馈信息未接收的第一确认信息后,第二客户端生成麦克风释放指令,并将麦克风释放指令发送给语音通话服务端;语音通话服务端响应麦克风释放指令,将第二虚拟麦克风删除。或者,接收第二客户端转发的用于指示打开推流功能及静音功能成功的反馈信息未接收的第一确认信息后,将第二虚拟麦克风删除。
本申请实施例中,若第二客户端接收到的第一确认信息为实时通信服务端发送的打开推流功能及静音功能成功的反馈信息已接收的确认信息时,则第二客户端生成状态更改指令,使得语音通话服务端响应状态更改指令,将第二虚拟麦克风的状态更改为占用;若第二客户端接收到的第一确认信息为实时通信服务端发送的打开推流功能及静音功能成功的反馈信息未接收的确认信息时,则第二客户端生成麦克风释放指令,使得语音通话服务端响应麦克风释放指令,将第二虚拟麦克风删除。或者,第二客户端接收实时通信服务端发送的用于指示打开推流功能及静音功能成功的反馈信息未接收的第一确认信息后,第二客户端将用于指示打开推流功能及静音功能成功的反馈信息未接收的第一确认信息转发给语音通话服务端,语音通话服务端在接收到用于指示打开推流功能及静音功能成功的反馈信息未接收的第一确认信息后,将第二虚拟麦克风删除。
一种可能实施例中,在预设时间内,语音通话服务端未接收到第二客户端发送的状态更改指令和麦克风释放指令,则将第二虚拟麦克风删除;或者,在预设时间内,语音通话服务端未接收到第二客户端转发的第一确认信息,则将第二虚拟麦克风删除。具体的,第二客户端可能出现断网、客户端未响应等各种状况,当出现上述状况时,则会造成在一定的时间段内,第二客户端无法发送指令或者确认信息,使的语音通话服务端无法接收到第二客户端发送的指令或者确认信息,使得为第二客户端匹配的第二虚拟麦克风将一直处于预占用状态,进而造成其他客户端无法使用第二虚拟麦克风,因此,为了避免上述状况的发生,本申请实施例中,在预设时间内,语音通话服务端未接收到任何指令或确认信息时,则将第二虚拟麦克风删除,避免造成虚拟麦克风资源的浪费。
针对S313~S315,本申请实施例中,语音通话服务端响应状态更改指令,将第二虚拟麦克风的状态更改为占用,或者,语音通话服务端在接收到用于指示打开推流功能及静音功能成功的反馈信息已接收的第一确认信息后,将第二虚拟麦克风的状态更改为占用。在将第二虚拟麦克风的状态更改为占用后,语音通话服务端生成取消静音指令,将该取消静音指令发送给第二客户端,使得第二客户端基于取消静音指令,关闭静音功能,并通过第二虚拟麦克风发送音频数据,其中,第二客户端在关闭静音功能后,向实时通信服务端发送静音已取消信息,使得实时通信服务端接收该静音已取消信息。
本申请实施例提出的进行语音通话的方法,通过S301~S315,实现了为第二客户端生成第二虚拟麦克风的功能,使得第二客户端可以通过第二虚拟麦克风发送音频数据给语音房间的其他客户端,实现了音频数据的传输,即实现了多人语音通话的功能。进一步的,本申请实施例提出的为第二客户端生成第二虚拟麦克风的功能是基于两阶段提交生成的,即在为第二客户端生成第二虚拟麦克风后,语音通话服务端将第二虚拟麦克风的状态设置为预占用,在语音通话服务端接收到状态更改指令或者接收到用于指示打开推流功能及静音功能成功的反馈信息已接收的第一确认信息后,将第二虚拟麦克风的状态更改为占用,避免了将一个虚拟麦克风分配给两个客户端的情况出现,提高了音频数据传输的准确性,并且本申请设置了在预设时间内,语音通话服务端未接收到第二客户端发送的状态更改指令和麦克风释放指令,则将第二虚拟麦克风删除的操作,避免在第二客户端无法发送指令时,造成虚拟麦克风资源的浪费,提高了虚拟麦克风的使用效率。
参见图4所示的一种进行语音通话的方法中,退出虚拟麦克风的具体过程的流程图,其中,进行语音通话的方法中退出虚拟麦克风的具体过程,包括S401~S405:
S401:第二客户端关闭推流功能,生成推流功能已关闭信息,并将推流功能已关闭信息发送给实时通信服务端。
S402:实时通信服务端基于推流功能已关闭信息,生成第二确认信息,并将第二确认信息发送给第二客户端。
S403:第二客户端在接收到第二确认信息后,生成推流功能关闭成功的反馈信息,并将推流功能关闭成功的反馈信息发送给语音通话服务端。
S404:语音通话服务端在接收到推流功能关闭成功的反馈信息之后,将第二客户端对应的第二虚拟麦克风删除。
S405:语音通话服务端向第二客户端发送第二虚拟麦克风删除成功的反馈消息,指示第二客户端禁止发送音频数据。
针对S401~S403,本申请实施例中,若第二客户端要退出虚拟麦克风,则第二客户端可以关闭推流功能,在关闭推流功能后,第二客户端会生成推流功能已关闭信息,并将推流功能已关闭信息发送给实时通信服务端。实时通信服务端基于推流功能已关闭信息,生成第二确认信息,并将第二确认信息发送给第二客户端。第二客户端在接收到第二确认信息后,生成推流功能关闭成功的反馈信息,并将推流关闭成功的反馈信息发送给语音通话服务端。
针对S404~S405,本申请实施例中,语音通话服务端在接收到推流关闭成功的反馈信息之后,将第二客户端对应的第二虚拟麦克风删除,并生成第二虚拟麦克风删除成功的反馈消息,语音通话服务端将第二虚拟麦克风删除成功的反馈消息发送给第二客户端,使得第二客户端禁止发送音频数据。
在具体实施时,可以将第一客户端退出虚拟麦克风的过程与第二客户端的退出过程设置为相同过程,此时,第一客户端退出虚拟麦克风的过程可参考上述S401~S405的第二客户端的退出过程。
在具体实施时,也可以为第一客户端设置虚拟麦克风限制条件,即可以将第一客户端退出虚拟麦克风的过程与第二客户端的退出过程设置为不同过程,例如,可以限制第一客户端必须存在虚拟麦克风,若第一客户端退出虚拟麦克风时,默认第一客户端解散语音房间,则第一客户端退出虚拟麦克风的过程为:第一客户端可以关闭推流功能,在关闭推流功能后,第一客户端会生成推流功能已关闭信息,并将推流功能已关闭信息发送给实时通信服务端。实时通信服务端基于推流功能已关闭信息,生成第二确认信息,并将第二确认信息发送给第一客户端。第一客户端在接收到第二确认信息后,生成推流功能关闭成功的反馈信息,并将推流功能关闭成功的反馈信息发送给语音通话服务端。语音通话服务端在接收到推流功能关闭成功的反馈信息之后,将第一客户端对应的语音房间删除,并将生成的语音房间已删除的反馈消息发送给进入该语音房间的其他客户端,使得其他客户端直接退出该语音房间。
本申请实施例提出的进行语音通话的方法,通过S401~S405,实现了第二客户端退出第二虚拟麦克风的功能,使得第二客户端在不需要发送音频数据时,退出虚拟麦克风,为语音房间内的其他客户端生成虚拟麦克风,使得其他客户端对应的用户也可以通过生成的虚拟麦克风发送音频数据,实现了多人语音通话的功能。
参见图5所示的一种进行语音通话的方法中,退出语音聊天的具体过程的流程图,其中,进行语音通话的方法中退出语音聊天的具体过程,包括S501~S508:
S501:第二客户端响应第四触发操作,生成语音房间退出指令,将语音房间退出指令发送给实时通信服务端。
S502:实时通信服务端响应语音房间退出指令,解除第二客户端与语音房间之间的关联。
S503:实时通信服务端在第二客户端与语音房间之间的关联解除成功后,生成关联已解除信息,将关联已解除信息发送给第二客户端。
S504:第二客户端在接收到关联已解除信息后,生成语音房间退出成功的反馈信息,并将语音房间退出成功的反馈信息发送给语音通话服务端。
S505:语音通话服务端在接收到第二客户端发送的语音房间退出成功的反馈信息后,判断第二客户端是否占用有第二虚拟麦克风,若是,则将第二客户端占用的第二虚拟麦克风删除,并向即时通信服务端发送群聊退出指令。
S506:即时通信服务端响应语音通话服务端发送的群聊退出指令,解除第二客户端与群聊账号信息之间的关联。
S507:即时通信服务端生成群聊退出成功的反馈信息,并将群聊退出成功的反馈信息发送给语音通话服务端。
S508:语音通话服务端在接收到即时通信服务端发送的群聊退出成功的反馈信息后,指示第二客户端退出与群聊账号信息关联的语音房间。
针对S501~S504,本申请实施例中,在第二客户端要退出语音房间时,则第二客户端响应第四触发操作,生成语音房间退出指令,并将语音房间退出指令发送给实时通信服务端。实时通信服务端响应语音房间退出指令,解除第二客户端与语音房间之间的关联,在第二客户端与语音房间之间的关联解除成功后,实时通信服务端生成关联已解除信息,并将关联已解除信息发送给第二客户端。第二客户端在接收到关联已解除信息后,生成语音房间退出成功的反馈信息,并将语音房间退出成功的反馈信息发送给语音通话服务端,使得即使通信服务端能够解除第二客户端与群聊账号信息的关联。
针对S505~S508,本申请实施例中,语音通话服务端在接收到第二客户端发送的语音房间退出成功的反馈信息后,即语音通话服务端在接收到第二客户端发送的与语音房间解绑的反馈信息后,判断第二客户端是否占用有第二虚拟麦克风,若是,则将第二客户端占用的第二虚拟麦克风删除,并向即时通信服务端发送群聊退出指令;若否,则直接向即时通信服务端发送群聊退出指令。即时通信服务端响应语音通话服务端发送的群聊退出指令,解除第二客户端与群聊账号信息之间的关联。即时通信服务端生成群聊退出成功的反馈信息,并将群聊退出成功的反馈信息发送给语音通话服务端。语音通话服务端在接收到即时通信服务端发送的群聊退出成功的反馈信息后,指示第二客户端退出与群聊账号信息关联的语音房间。
在具体实施时,可以将第一客户端退出语音房间的过程与第二客户端的退出过程设置为相同过程,此时,第一客户端退出语音房间的过程可参考上述S501~S508的第二客户端的退出过程。
在具体实施时,也可以为第一客户端设置语音房间退出限制条件,即可以将第一客户端退出语音房间的过程与第二客户端的退出过程设置为不同过程,例如,可以限制第一客户端必须进入语音房间,若第一客户端退出语音房间时,默认第一客户端解散语音房间,则第一客户端退出语音房间的过程为:第一客户端响应第二触发操作,生成语音房间退出指令,并将语音房间退出请求发送给实时通信服务端,实时通信服务端响应语音房间退出指令,解除第一客户端与语音房间之间的关联,在第一客户端与语音房间之间的关联解除成功后,实时通信服务端生成关联已解除信息,并将关联已解除信息发送给第一客户端。第一客户端在接收到关联已解除信息后,生成语音房间退出成功的反馈信息,并将语音房间退出成功的反馈信息发送给语音通话服务端,使得即使通信服务端能够解除第一客户端与群聊账号信息的关联。语音通话服务端在接收到第一客户端发送的语音房间退出成功的反馈信息后,即语音通话服务端在接收到第一客户端发送的与语音房间解绑的反馈信息后,将第一客户端占用的第一虚拟麦克风删除,并向即时通信服务端发送群聊退出指令。即时通信服务端响应语音通话服务端发送的群聊退出指令,解除第一客户端与群聊账号信息之间的关联。即时通信服务端生成群聊退出成功的反馈信息,并将群聊退出成功的反馈信息发送给语音通话服务端。语音通话服务端在接收到即时通信服务端发送的群聊退出成功的反馈信息后,将第一客户端对应的语音房间删除,并将生成的语音房间已删除的反馈消息发送给进入该语音房间的其他客户端,使得其他客户端直接退出该语音房间。
在具体实施时,可以设置第一时间值以及第二时间值,若第二客户端在超过第一时间值之后,与实时通信服务端没有心跳连接,则认为第二客户端退出语音房间,若第二客户端在超过第二时间值之后,与即时通信服务端没有心跳连接,则认为第二客户端退出群聊账号,优选的,第二时间大于第一时间值。示例性的,第一时间值可以为15秒,第二时间值可以为3分钟,即若第二客户端在超过15秒,小于3分钟内,未与实时通信服务端和即时通信服务端有心跳连接,则第二客户端退出语音房间且未退出群聊账号,若第二客户端在大于等于3分钟内未与实时通信服务端和即时通信服务端有心跳连接,则认为第二客户端退出群聊账号且退出语音房间。
本申请实施例提出的进行语音通话的方法,通过S501~S508,实现了第二客户端退出语音房间的功能,使得第二客户端在不需要语音通话时,退出语音房间,提高了多人语音通话的灵活性。
通过本申请提出的进行语音通话的方法,能够基于单个客户端的请求,实现语音房间的灵活创建,并使得其他客户端通过群聊账号信息进入该语音房间,从而实现语音房间内多个客户端之间的语音通话,相比只能在已建立群聊的基础上发起语音通话请求的方式,提升了客户端进行语音房间创建及语音通话的灵活性。
本申请实施例中,客户端与各个服务端上生成一条通信协议websocket长连接,通过websocket长连接实现将与各个服务端相连的任一客户端的状态变化发送给语音房间或/和群聊账号内的所有客户端。例如,语音房间关联有10个客户端,当客户端A退出群聊时,通过websocket长连接可以将客户端A退出群聊的状态发送给语音房间的其他9个客户端,实现聊天账号或/和语音房间内的所有客户端的信息共享。
基于同一发明构思,本申请实施例中还提供了与进行语音通话的方法对应的进行语音通话的装置,由于本申请实施例中的装置解决问题的原理与本申请实施例上述进行语音通话的方法相似,因此装置的实施可以参见方法的实施,重复之处不再赘述。
实施例二
本申请实施例提供了一种进行语音通话的装置,参见图6所示的一种进行语音通话的装置的结构示意图,该装置包括:
群聊账号创建请求发送模块601,用于响应第一客户端发送的语音房间创建请求,向即时通信服务端发送群聊账号创建请求,所述群聊账号创建请求用于指示所述即时通信服务端创建与所述第一客户端关联的群聊账号信息;
群聊账号信息接收模块602,用于接收所述即时通信服务端反馈的所述群聊账号信息,并生成与所述群聊账号信息关联的语音房间的第一令牌信息;
语音房间创建指令发送模块603,用于通过所述第一客户端向实时通信服务端发送语音房间创建指令,所述语音房间创建指令用于指示所述实时通信服务端基于所述第一令牌信息,创建与所述群聊账号信息关联的语音房间,并指示所述实时通信服务端将所述第一客户端与所述语音房间关联;
第一语音房间进入模块604,用于接收所述第一客户端发送的反馈信息,当所述反馈信息为所述语音房间与所述第一客户端关联成功时,指示所述第一客户端进入与所述群聊账号信息关联的语音房间。
作为一可选实施例,接收到所述第一客户端发送的语音房间关联成功的反馈信息后之后,所述装置还包括:
指示模块,用于指示所述第一客户端将所述群聊账号信息发送给其它客户端,以便其它客户端基于该群聊账号信息进入与所述群聊账号信息关联的语音房间。
作为一可选实施例,所述语音房间创建请求中携带有所述第一客户端的标识信息,其中,所述第一客户端的标识信息为表征所述第一客户端对应的用户的身份的信息;
群聊账号创建请求发送模块,利用下述步骤确定向所述即时通信服务端发送群聊账号创建请求的条件:
在基于所述第一客户端的标识信息确定所述第一客户端满足预设的创建条件后,向所述即时通信服务端发送群聊账号创建请求。
作为一可选实施例,群聊账号创建请求发送模块,利用下述步骤确定向所述即时通信服务端发送群聊账号创建请求的条件:
检测预先存储的目标标识信息列表中是否包括所述第一客户端的标识信息;
若包括,则确定所述第一客户端满足预设的创建条件;
若不包括,则确定所述第一客户端不满足预设的创建条件。
作为一可选实施例,所述群聊账号信息对应有数量信息,所述数量信息包括第一数量和/或第二数量,所述第一数量为所述群聊账号信息允许关联的客户端的最大数量,所述第二数量为所述群聊账号信息允许生成的虚拟麦克风的最大数量,在所述第一数量和第二数量同时存在的情况下,所述第二数量小于或等于所述第一数量。
作为一可选实施例,所述装置还包括:
第一虚拟麦克风生成模块,用于为所述第一客户端生成第一虚拟麦克风。
作为一可选实施例,所述群聊账号信息中携带有属性信息,所述属性信息初始被置为无效群聊;
所述装置还包括:
属性修改模块,用于向所述即时通信服务端发送属性修改指令,所述属性修改指令用于指示所述即时通信服务端将所述群聊账号信息的属性信息从无效群聊修改为有效群聊。
作为一可选实施例,所述装置还包括:
请求接收模块,用于接收第二客户端发送的所述语音房间加入请求;其中,所述语音房间加入请求中携带有所述群聊账号信息;
令牌信息生成模块,用于生成与所述群聊账号信息关联的所述语音房间的第二令牌信息;
指令发送模块,用于通过所述第二客户端向所述实时通信服务端发送语音房间加入指令,所述语音房间加入指令用于指示所述实时通信服务端基于所述第二令牌信息,将所述第二客户端与所述语音房间关联;
群聊关联指令发送模块,用于接收到所述第二客户端发送的语音房间关联成功的反馈信息后,向所述即时通信服务端发送群聊关联指令,所述群聊关联指令用于指示所述即时通信服务端将所述第二客户端与所述群聊账号信息关联;
指示模块,用于接收到所述即时通信服务端发送的群聊关联成功的反馈信息后,指示所述第二客户端进入与所述群聊账号信息关联的所述语音房间。
作为一可选实施例,接收第二客户端发送的语音房间加入请求之后,生成与所述群聊账号信息关联的所述语音房间的第二令牌信息之前,所述装置还包括:
客户端数量查询请求发送模块,用于向所述即时通信服务端发送客户端数量查询请求,所述客户端数量查询请求用于查询所述群聊账号信息当前已关联的客户端的数量;
数量接收模块,用于接收所述即时通信服务端发送的所述群聊账号信息当前已关联的客户端的数量;
令牌信息生成模块,利用下述步骤生成第二令牌信息:
在确定所述群聊账号信息允许关联的客户端的最大数量大于所述当前已关联的客户端的数量时,生成与所述群聊账号信息关联的所述语音房间的第二令牌信息。
作为一可选实施例,所述语音房间加入请求中携带有所述第二客户端的标识信息,其中,所述第二客户端的标识信息为表征所述第二客户端对应的用户的身份的信息;
令牌信息生成模块,利用下述步骤生成第二令牌信息:
在基于所述第二客户端的标识信息确定所述第二客户端满足预设的加入条件后,生成与所述群聊账号信息关联的所述语音房间的第二令牌信息。
作为一可选实施例,所述装置还包括:
麦克风生成模块,用于响应所述第二客户端发送的麦克风获取请求,为所述第二客户端生成第二虚拟麦克风;所述第二虚拟麦克风用于所述第二客户端向所述群聊账号信息关联的其它客户端发送音频数据。
作为一可选实施例,所述装置还包括:
状态设置模块,用于将所述第二虚拟麦克风的状态设置为预占用;
状态更改模块,用于在所述第二客户端打开推流功能及静音功能后,将所述第二虚拟麦克风的状态更改为占用;
静音指示模块,用于指示所述第二客户端关闭静音功能,并通过所述第二虚拟麦克风发送音频数据。
作为一可选实施例,状态更改模块,利用下述步骤更改第二虚拟麦克风的状态:
向所述第二客户端发送打开推流静音指令,所述打开推流静音指令用于指示所述第二客户端打开推流功能及静音功能;
接收所述第二客户端发送的状态更改指令,响应所述状态更改指令,将所述第二虚拟麦克风的状态更改为占用;其中所述状态更改指令为所述第二客户端打开推流功能及静音功能成功后生成的。
作为一可选实施例,状态更改模块,利用下述步骤更改第二虚拟麦克风的状态:
向所述第二客户端发送打开推流静音指令,所述打开推流静音指令用于指示所述第二客户端打开推流功能及静音功能;
指示所述第二客户端向所述实时通信服务端发送打开推流功能及静音功能成功的反馈信息;
接收所述第二客户端发送的状态更改指令,响应所述状态更改指令,将所述第二虚拟麦克风的状态更改为占用,其中,所述状态更改指令为所述第二客户端在接收到所述实时通信服务端发送、用于指示所述打开推流功能及静音功能成功的反馈信息已接收的第一确认信息后生成的;或者,接收到所述第二客户端转发的所述第一确认信息后,将所述第二虚拟麦克风的状态更改为占用。
作为一可选实施例,所述装置还包括:
检测模块,用于在检测到所述第二客户端是否对应有虚拟麦克风时,获取所述群聊账号信息对应的当前虚拟麦克风的数量;
麦克风生成模块,利用下述步骤生成第二虚拟麦克风:
若所述当前虚拟麦克风的数量小于所述群聊账号信息允许生成的虚拟麦克风的最大数量,则为所述第二客户端生成所述第二虚拟麦克风。
作为一可选实施例,所述装置还包括:
第二虚拟麦克风删除模块,用于接收所述第二客户端发送的麦克风释放指令,响应所述麦克风释放指令,将所述第二虚拟麦克风删除;或者,用于接收所述第二客户端转发的用于指示所述反馈信息未接收的第一确认信息后,将所述第二虚拟麦克风删除;
或者,麦克风删除模块,用于在预设时间内,未接收到所述第二客户端发送的所述状态更改指令或者所述麦克风释放指令,则将所述第二虚拟麦克风删除;或者,用于在预设时间内,未接收到所述第二客户端转发的第一确认信息,则将所述第二虚拟麦克风删除。
作为一可选实施例,所述装置还包括:
推流关闭反馈信息接收模块,用于在接收到所述第二客户端发送的推流功能关闭成功的反馈信息之后,将所述第二客户端对应的所述第二虚拟麦克风删除,其中,在所述第二客户端关闭推流功能,并向所述实时通信服务端发送推流功能已关闭信息后,所述第二客户端在接收到所述实时通信服务端发送的第二确认信息后,生成推流功能关闭成功的反馈信息;
推流关闭反馈信息发送模块,向所述第二客户端发送第二虚拟麦克风删除成功的反馈消息,指示所述第二客户端禁止发送音频数据。
作为一可选实施例,所述装置还包括:
语音房间退出反馈信息接收模块,用于接收所述第二客户端发送的与语音房间解绑的反馈信息;
麦克风判断模块,用于判断所述第二客户端是否占用有第二虚拟麦克风,若是,则将所述第二客户端占用的第二虚拟麦克风删除,并向所述即时通信服务端发送群聊退出指令,所述群聊退出指令用于指示所述即时通信服务端解除所述第二客户端与所述群聊账号信息之间的关联;
群聊退出反馈消息接收模块,用于接收到所述即时通信服务端发送的群聊退出成功的反馈信息后,指示所述第二客户端退出与所述群聊账号信息关联的语音房间。
实施例三
本申请实施例提供了一种进行语音通话的装置,参见图7所示的一种进行语音通话的装置的结构示意图,该装置包括:
群聊账号信息生成模块701,用于响应语音通话服务端发送的群聊账号创建请求,生成所述群聊账号创建请求对应的群聊账号信息,其中,所述群聊账号创建请求为所述语音通话服务端响应第一客户端发送的语音房间创建请求生成的;
第一关联模块702,用于将所述第一客户端与所述群聊账号信息关联,并将所述群聊账号信息发送给所述语音通话服务端;所述群聊账号信息用于所述语音通话服务端生成与所述群聊账号信息关联的语音房间的第一令牌信息,以便所述实时通信服务端基于所述第一令牌信息,创建与所述群聊账号信息关联的语音房间。
作为一可选实施例,所述群聊账号信息携带有属性信息,所述属性信息包括有效群聊以及无效群聊;所述装置还包括:
属性设置模块,用于将所述群聊账号信息的属性信息设置为无效群聊;
所述装置还包括:
第二属性修改模块,用于响应所述语音通话服务端发送的属性修改指令,将所述群聊账号信息的属性信息修改为有效群聊。
作为一可选实施例,所述装置还包括:
群聊关联指令响应模块,用于响应所述语音通话服务端发送的针对第二客户端的群聊关联指令,将所述第二客户端与所述群聊关联指令指示的所述群聊账号信息关联,并将群聊关联成功的反馈信息发送给所述语音通话服务端。
作为一可选实施例,所述装置还包括:
客户端数量查询请求响应模块,用于响应所述语音通话服务端发送的客户端数量查询请求,确定所述群聊账号信息当前已关联的客户端的数量,其中,所述客户端数量查询请求为所述语音通话服务端响应第二客户端发送的语音房间加入请求生成的,所述语音房间加入请求携带有所述群聊账号信息;
关联客户端数量确定模块,用于将所述群聊账号信息当前关联的客户端的数量发送给所述语音通话服务端,以便所述语音通话服务端在确定所述群聊账号信息允许关联的客户端的最大数量大于所述当前关联的客户端的数量时,生成与所述群聊账号信息关联的语音房间的第二令牌信息;所述第二令牌信息用于指示所述实时通信服务端将所述第二客户端与所述语音房间关联,并反馈群聊关联指令。
作为一可选实施例,所述装置还包括:
关联判断指令相应模块,用于响应所述语音通话服务端发送的关联判断指令,判断所述第二客户端与所述群聊账号信息是否关联,并生成关联判断结果,其中,所述关联判断指令为所述语音通话服务端响应所述第二客户端发送的麦克风获取请求生成的;
第二麦克风生成模块,用于将所述关联判断结果发送给所述语音通话服务端,所述关联判断结果用于所述语音通话服务端在检测到所述关联判断结果为关联时,为所述第二客户端生成第二虚拟麦克风。
作为一可选实施例,所述装置还包括:
群聊退出指令响应模块,用于响应所述语音通话服务端发送的群聊退出指令,解除所述第二客户端与所述群聊账号信息之间的关联,其中,所述群聊退出指令为所述语音通话服务端在接收到所述实时通信服务端发送的语音房间退出成功的反馈信息,以及将所述第二客户端对应的第二虚拟麦克风删除之后生成的;
群聊退出反馈信息生成模块,用于生成群聊退出成功的反馈信息,并将所述群聊退出成功的反馈信息发送给所述语音通话服务端。
实施例四
本申请实施例提供了一种进行语音通话的装置,参见图8所示的一种进行语音通话的装置的结构示意图,该装置包括:
语音房间创建指令接收模块801,用于接收第一客户端转发的语音房间创建指令;所述语音房间创建指令中携带有与群聊账号信息关联的语音房间的第一令牌信息,其中,所述语音房间创建指令为所述语音通话服务端响应第一客户端发送的语音房间创建请求,从即时通信服务端获取创建的群聊账号信息后生成的;
语音房间创建模块802,用于响应所述语音房间创建指令,基于所述第一令牌信息,创建与所述群聊账号信息关联的语音房间,并将所述第一客户端与所述语音房间关联;
反馈信息生成模块803,用于生成语音房间关联成功的反馈信息,并将所述语音房间关联成功的反馈信息通过所述第一客户端发送给所述语音通话服务端,以便所述语音通话服务端指示所述第一客户端进入与所述群聊账号信息关联的语音房间,并发布所述群聊账号信息。
作为一可选实施例,所述装置还包括:
加入指令接收模块,用于接收第二客户端发送的语音房间加入指令;所述语音房间加入指令中携带有与群聊账号信息关联的语音房间的第二令牌信息;
语音房间关联模块,用于响应所述语音房间加入指令,基于所述第二令牌信息,将所述第二客户端与所述语音房间关联;
关联反馈信息生成模块,用于生成语音房间关联成功的反馈信息,并将所述语音房间关联成功的反馈信息通过所述第二客户端发送给所述语音通话服务端。
作为一可选实施例,所述装置还包括:
反馈信息接收模块,用于接收所述第二客户端发送的打开推流功能及静音功能成功的反馈信息,其中,所述打开推流功能及静音功能成功的反馈信息为所述第二客户端响应打开推流静音指令,打开推流功能及静音功能后生成的;
第一确认信息生成模块,用于在接收到所述打开推流功能及静音功能成功的反馈信息后,生成用于指示所述打开推流功能及静音功能成功的反馈信息已接收的第一确认信息,并将所述第一确认信息发送给所述第二客户端,以便所述第二客户端在接收到第一确认信息后,生成状态更改指令,并将所述状态更改指令发送给所述语音通话服务端;或者,在接收到所述打开推流功能及静音功能成功的反馈信息后,生成用于指示所述反馈信息已接收的第一确认信息,并将所述第一确认信息发送给所述第二客户端,以便所述第二客户端将接收到的第一确认信息转发给所述语音通话服务端。
作为一可选实施例,所述装置还包括:
推流已关闭信息接收模块,用于接收所述第二客户端发送的推流功能已关闭信息,其中,所述推流功能已关闭信息为所述第二客户端在关闭推流功能后生成的;
第二确认信息生成模块,用于基于所述推流功能已关闭信息,生成第二确认信息,并将所述第二确认信息发送给所述第二客户端,以便所述第二客户端在接收到所述第二确认信息后,生成推流功能关闭成功的反馈信息。
作为一可选实施例,所述装置还包括:
关联解除模块,用于响应所述第二客户端发送的语音房间退出指令,解除所述第二客户端与所述语音房间之间的关联;
解除信息生成模块,用于在所述第二客户端与所述语音房间之间的关联解除成功后,生成关联已解除信息,将所述关联已解除信息发送给所述第二客户端。
实施例五
本申请实施例提供了一种进行语音通话的装置,参见图9所示的一种进行语音通话的装置的结构示意图,该装置包括:
语音房间创建请求生成模块901,用于响应第一触发操作,生成语音房间创建请求;
语音房间创建请求发送模块902,用于将所述语音房间创建请求发送给所述语音通话服务端,以便所述语音通话服务端指示即时通信服务端创建群聊账号信息并生成与所述群聊账号信息关联的语音房间的第一令牌信息,以便实时通信服务端基于所述第一令牌信息创建与所述群聊账号信息关联的语音房间并将所述第一客户端与所述语音房间关联;
第一语音房间进入指示接收模块903,用于接收所述语音通话服务端在所述实时通信服务端发送语音房间关联成功的反馈信息后发送的语音房间进入指示;
第二语音房间进入模块904,用于基于所述语音房间进入指示中携带的第一令牌信息,进入与所述群聊账号信息关联的语音房间。
作为一可选实施例,还包括:
账号信息发送模块,用于将所述群聊账号信息发送给其它客户端,以便其它客户端基于该群聊账号信息进入与所述群聊账号信息关联的语音房间。
作为一可选实施例,将所述语音房间创建请求发送给所述语音通话服务端之后,接收所述语音房间进入指示之前,还包括:
创建指令接收模块,用于接收所述语音通话服务端发送的携带有所述群聊账号信息和所述第一令牌信息的语音房间创建指令;
指令转发模块,用于将所述语音房间创建指令转发给所述实时通信服务端,以便所述实时通信服务端在接收到所述语音房间创建指令后,基于所述第一令牌信息,创建与所述群聊账号信息关联的语音房间,并将所述第一客户端与所述语音房间关联;
反馈信息转发模块,用于接收所述实时通信服务端发送的所述语音房间关联成功的反馈信息,并将所述语音房间关联成功的反馈信息转发给所述语音通话服务端。
作为一可选实施例,所述装置还包括:
第一功能关闭模块,用于关闭推流功能,生成推流已关闭信息,并将所述推流已关闭信息发送给所述实时通信服务端,以便所述语音通话服务端将为所述第一客户端生成的第一虚拟麦克风删除。
作为一可选实施例,进入与所述群聊账号信息关联的语音房间之后,所述装置还包括:
退出指令生成模块,用于响应第二触发操作,生成语音房间退出指令,将所述语音房间退出指令发送给所述实时通信服务端,以便所述实时通信服务端解除所述第一客户端与所述语音房间之间的关联。
实施例六
本申请实施例提供了一种进行语音通话的装置,参见图10所示的一种进行语音通话的装置的结构示意图,该装置包括:
语音房间加入请求生成模块1001,用于响应第三触发操作,生成语音房间加入请求;所述语音房间加入请求中携带有群聊账号信息;
语音房间加入请求发送模块1002,用于将所述语音房间加入请求发送给所述语音通话服务端,以便所述语音通话服务端为所述第二客户端生成与所述群聊账号信息关联的语音房间的第二令牌信息;
第二语音房间进入指示接收模块1003,用于接收所述语音通话服务端发送的语音房间进入指示;
第三语音房间进入模块1004,用于根据所述语音房间进入指示中携带的第二令牌信息,进入与所述群聊账号信息关联的语音房间。
本申请实施例提供的进行语音通话的装置,与上述实施例一提供的进行语音通话的方法具有相同的技术特征,所以也能解决相同的技术问题,达到相同的技术效果。
作为一可选实施例,还包括:
房间加入指令接收模块,用于接收所述语音通话服务端发送的携带有所述群聊账号信息和所述第二令牌信息的语音房间加入指令;
加入指令转发模块,用于将所述语音房间加入指令转发给所述实时通信服务端,以便所述实时通信服务端在接收到所述语音房间加入指令后,基于所述第二令牌信息,将所述第二客户端与所述语音房间关联;
信息转发模块,用于接收所述实时通信服务端发送的所述语音房间关联成功的反馈信息,并将所述语音房间关联成功的反馈信息转发给所述语音通话服务端。
作为一可选实施例,所述装置还包括:
麦克风获取请求生成模块,用于生成麦克风获取请求,并将所述麦克风获取请求发送给所述语音通话服务端,其中,所述麦克风获取请求中携带有群聊账号信息;用于所述语音通话服务端为所述第二客户端生成第二虚拟麦克风;所述第二虚拟麦克风用于所述第二客户端向所述群聊账号信息关联的其它客户端发送音频数据。
作为一可选实施例,所述装置还包括:
功能打开指令接收模块,用于接收所述语音通话服务端发送的打开推流静音指令;
功能开启模块,用于基于所述打开推流静音指令,打开推流功能及静音功能;
功能成功开启反馈信息生成模块,用于生成打开推流功能及静音功能成功的反馈信息,并将所述打开推流功能及静音功能成功的反馈信息发送给所述实时通信服务端;
第二状态更改指令接收模块,用于在接收到所述实时通信服务端发送的用于指示所述打开推流功能及静音功能成功的反馈信息已接收的第一确认信息后,生成状态更改指令,并将所述状态更改指令发送给所述语音通话服务端,以便所述语音通话服务端响应所述状态更改指令,将所述第二虚拟麦克风的状态更改为占用;或者,在接收到所述实时通信服务端发送的用于指示所述打开推流功能及静音功能成功的反馈信息已接收的第一确认信息后,将所述用于指示所述打开推流功能及静音功能成功的反馈信息已接收的第一确认信息转发给所述语音通话服务端,以便所述语音通话服务端将所述第二虚拟麦克风的状态更改为占用;
取消静音指令接收模块,用于接收所述语音通话服务端发送的取消静音指令,基于所述取消静音指令,关闭静音功能,并通过所述第二虚拟麦克风发送音频数据。
作为一可选实施例,所述装置还包括:
第二麦克风删除模块,用于在接收到所述实时通信服务端发送的用于指示所述打开推流功能及静音功能成功的反馈信息未接收的第一确认信息后,生成麦克风释放指令,并将所述麦克风释放指令发送给所述语音通话服务端,以便所述语音通话服务端响应所述麦克风释放指令,将所述第二虚拟麦克风删除;或者,在接收到所述实时通信服务端发送的用于指示所述打开推流功能及静音功能成功的反馈信息未接收的第一确认信息后,将所述用于指示所述打开推流功能及静音功能成功的反馈信息未接收的第一确认信息转发给所述语音通话服务端,以便所述语音通话服务端将所述第二虚拟麦克风删除。
作为一可选实施例,所述装置还包括:
第二功能关闭模块,用于关闭推流功能,生成推流功能已关闭信息,并将所述推流功能已关闭信息发送给所述实时通信服务端;
第二确认信息接收模块,用于接收所述实时通信服务端发送的第二确认信息,并生成推流功能关闭成功的反馈信息,其中,所述第二确认信息为所述实时通信服务端在接收到所述推流功能已关闭信息后生成的;
推流关闭成功反馈信息发送模块,用于将所述推流功能关闭成功的反馈信息发送给所述语音通话服务端,以便所述语音通话服务端将为所述第二客户端生成的第二虚拟麦克风删除。
作为一可选实施例,所述装置还包括:
第二退出指令生成模块,用于响应第四触发操作,生成语音房间退出指令,将所述语音房间退出指令发送给所述实时通信服务端,以便所述实时通信服务端解除所述第二客户端与所述语音房间之间的关联。
实施例七
基于同一技术构思,本申请实施例还提供了一种电子设备。参照图11所示,为本申请实施例提供的电子设备1100的结构示意图,包括处理器1101、存储器1102、和总线1103。其中,存储器1102用于存储执行指令,包括内存11021和外部存储器11022;这里的内存11021也称内存储器,用于暂时存放处理器1101中的运算数据,以及与硬盘等外部存储器11022交换的数据,处理器1101通过内存11021与外部存储器11022进行数据交换,当电子设备1100运行时,处理器1101与存储器1102之间通过总线1103通信,使得处理器1101在执行以下指令:
响应第一客户端发送的语音房间创建请求,向即时通信服务端发送群聊账号创建请求,所述群聊账号创建请求用于指示所述即时通信服务端创建与所述第一客户端关联的群聊账号信息;
接收所述即时通信服务端反馈的所述群聊账号信息,并生成与所述群聊账号信息关联的语音房间的第一令牌信息;
通过所述第一客户端向实时通信服务端发送语音房间创建指令,所述语音房间创建指令用于指示所述实时通信服务端基于所述第一令牌信息,创建与所述群聊账号信息关联的语音房间,并指示所述实时通信服务端将所述第一客户端与所述语音房间关联;
接收所述第一客户端发送的反馈信息,当所述反馈信息为所述语音房间与所述第一客户端关联成功时,指示所述第一客户端进入与所述群聊账号信息关联的语音房间。
实施例八
本申请实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行上述任一实施例中所述的进行语音通话的方法的步骤。
具体地,该存储介质能够为通用的存储介质,如移动磁盘、硬盘等,该存储介质上的计算机程序被运行时,能够执行上述进行语音通话的方法的步骤,从而实现多人语音通话功能。
本申请实施例所提供的进行进行语音通话的方法的计算机程序产品,包括存储了处理器可执行的非易失的程序代码的计算机可读存储介质,所述程序代码包括的指令可用于执行前面方法实施例中所述的方法,具体实现可参见方法实施例,在此不再赘述。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个处理器可执行的非易失的计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务端,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-OnlyMemory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上所述实施例,仅为本申请的具体实施方式,用以说明本申请的技术方案,而非对其限制,本申请的保护范围并不局限于此,尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本申请实施例技术方案的精神和范围,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。