具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为了更好理解本发明实施例公开的一种频道切换的方法、装置及系统,下面先对本发明实施例适用的直播网络构架进行描述。请参阅图1,图1是本发明实施例公开的一种直播网络构架示意图。如图1所示,该直播网络构架可以包括服务设备以及多个客户端,其中,服务设备也被称后台服务器、组件服务器等,服务设备可以通过互联网与多个客户端进行通信连接。
在图1所示的直播网络构架中,多个客户端中的部分客户端可以作为主播客户端,而其余客户端可以作为观众客户端。本发明实施例中,频道简单来讲就是服务设备创建的一种虚拟空间(或虚拟房间),位于该虚拟空间内的观众客户端可以不仅观看主播客户端的直播内容,还可以和主播客户端进行语音或文字的交互。主播客户端对接入其频道内的其余观众客户端不仅具有接入、踢出控制权,还具有直播主动权。本发明实施例中,主播客户端、观众客户端可以实现包括集合群聊、视频直播、频道K歌、在线游戏、在线影视等多种功能。在图1所示的直播网络构架中,主播客户端、观众客户端可以运行在包括但不限于移动电话、移动电脑、平板电脑、个人数字助理(Personal Digital Assistant,PDA)、媒体播放器、智能电视、智能手表、智能眼镜、智能手环等用户设备上。
参见图2,为本发明第一实施例提供的一种频道切换的方法的流程示意图,在本发明实施例中,执行主体为服务器,所述方法包括:
S101、当检测到观众客户端进入主播客户端所在的直播频道时,查询与所述直播频道关联的至少一个关联频道。
具体的,服务器上创建有直播频道,设置直播频道内的主播客户端,观众客户端登录服务器后,进入主播客户端所在的直播频道,服务器查询直播频道是否存在关联频道,若为是,确定于直播频道关联的至少一个关联频道。
S102、将所述直播频道对应的媒体流推送至所述观众客户端,并将所述直播频道对应的频道标签和所述至少一个关联频道各自对应的频道标签推送至观众客户端。
具体的,服务器获取直播频道对应的媒体流,将媒体流广播至直播频道内的观众客户端,频道标签为频道的访问入口,用户可以通过频道标签进入对应的频道,服务器将直播频道和关联的至少一个关联频道的频道标签推送至观众客户端,由观众客户端显示在指定区域。
S103、当接收到所述观众客户端发送的针对目标频道标签的切换指令时,控制所述观众客户端加入目标频道;其中,所述目标频道为所述至少一个关联频道中的任意一个关联频道。
具体的,用户触发目标频道标签后,观众客户端生成切换指令并向服务器发送切换指令,目标频道标签对应目标频道的访问入口,服务器接收到针对目标频道标签的切换指令后,控制观众客户端退出直播频道,并将观众客户端加入目标频道,直播频道内的主播客户端和其他观众客户端仍然位于直播频道内,不会进行切换。
S104、获取所述目标频道对应的媒体流,并将所述目标频道对应的媒体流推送至所述观众客户端。
实施本发明的实施例,检测到观众客户端进入直播频道时,服务器查询与直播频道关联的至少一个关联频道,将直播频道的媒体流推送至观众客户端,并将主播客户端以及至少一个关联频道的各自对应的频道标签推送至观众客户端,观众客户端通过触发频道标签直接进入需要切换到的目标频道,操作简单,能实现频道的快速切换。(这里,对应的主播进行切换了吗?需要对此进行说明。。。)
参见图3,为本发明第二实施例提供的一种频道切换的方法的流程示意图,在本发明实施例中,所述方法包括:
S201、将所述直播频道和所述至少一个关联频道进行关联,并将关联关系保存至数据库中,为所述直播频道分配频道标签和为所述至少一个关联频道中每个关联频道各自分配一个频道标签,将所述直播频道和所述至少一个关联频道中对应的主播客户端划分为至少两个组,并为每个组各自分配一个组标识。
具体的,服务器多个频道进行关联,其中,直播频道为多个具有关联关系的频道中的任意一个频道,关联频道为多个具有关联关系的多个频道中除直播频道之外的频道,服务器将直播频道和至少一个关联频道进行关联的方法可以是:1、服务器获取直播频道和至少一个关联频道的频道号,将直播频道的频道号和至少一个关联频道的频道号进行绑定,将绑定后的多个频道的频道号保存至数据库中。2、服务器将直播频道的用户列表和至少一个关联频道的用户列表进行合并,合并后生成直播频道和至少一个关联频道的总用户列表,总用户列表中的观众客户端发送消息且该消息不是私密消息时,总用户列表中的其他观众客户端均可以接收并显示该消息。
进一步的,服务器为多个具有关联关系的频道各自分配一个频道标签,频道标签为频道的访问入口,用户可通过频道标签进入对应的频道。进一步的,服务器将多个具有关联关系的频道内的主播客户端进行分组,并为每个组分配一个组标识,组标识用于唯一确定主播客户端所在的组,组标识包括但不限于文字、颜色或图片。需要说明的是,服务器可以根据主播客户端发送的分组请求对主播客户端进行分组,并将主播客户端所在的组的组标识分配给主播客户端。
示例性的,服务器创建有频道1,并设置主播客户端1为频道1的主播客户端;服务器创建有频道2,并设置主播客户端2为频道2内的主播客户端2;服务器创建有频道3,并设置主播客户端3为频道3内的主播客户端;服务器创建有频道4,并设置主播客户端4为频道4内的主播客户端,服务器将频道1、频道2、频道3和频道4进行关联,频道1至频道4具有关联关系,对于频道1而言,频道2至3为频道1的关联频道,服务器具有关联关系的将频道1至频道4的频道号保存至服务器的数据库中。服务器为频道1分配频道标签1,频道标签1对应频道1的访问入口;服务器为频道2分配频道标签2,频道标签2对应频道2的访问入口;服务器为频道2分配频道标签3,频道标签3对应频道3的访问入口;服务器为频道4分配频道标签4,频道标签4对应频道4的访问入口。进一步的,服务器可根据预设的分配策略将具有关联关系的4个主播客户端划分为2个组,其中,将主播客户端1和主播客户端2作为组1,将主播客户端3和主播客户端4作为组2,服务器为组1内的主播客户端1和主播客户端2分配相同的组标识,如主播客户端对应的昵称均为红色,服务器为组2内的主播客户端3和主播客户端4分配相同的组标识,如对应的昵称均为蓝色,不同组之间的组标识不相同。可选的,服务器根据主播客户端1发送的用于进入组1的分组请求,服务器将主播客户端1加入组1;服务器根据主播客户端2发送的进入组2的分组请求,将主播客户端2加入组2;服务器根据主播客户端3发送的进入组3的分组请求,将主播客户端3加入组2;服务器根据主播客户端4发送的进入组2的分组请求,将主播客户端4加入组2中。
S202、当检测到观众客户端进入主播客户端所在的直播频道时,查询与所述直播频道关联的至少一个关联频道。
具体的,观众客户端通过账号登录服务器后,向服务器发送进入主播客户端的直播频道的进入请求,服务器接收到进入请求可确定观众客户端进入直播频道,服务器根据数据库中保存的关联关系查询直播频道关联的多个关联频道。
示例性的,观众客户端进入主播客户端1的频道1,频道1为直播频道,服务器检测到观众客户端进入频道1时,在数据库中查询与频道1关联的至少一个关联频道,查询结果为:与频道1关联的关联频道有3个频道,分别为频道2、频道3和频道4。
S203、将所述直播频道对应的媒体流推送至所述观众客户端,并将所述直播频道对应的频道标签和所述至少一个关联频道各自对应的频道标签推送至所述观众客户端,推送所述直播频道和所述至少一个关联频道对应的主播客户端所属的组标识至所述观众客户端。
具体的,服务器获取直播频道的媒体流,将直播频道的媒体流推送至观众客户端,观众客户端对直播频道的媒体流进行解析,并将解析结果进行输出。其中,直播频道的媒体流的来源可以是主播客户端实时上传的媒体流,或者,服务器预先存储的媒体流,本发明不作限制,媒体流包括音频流和/或视频流。观众客户端上指定区域上显示直播频道的频道标签和与直播频道关联的关联频道的频道标签,观众客户端接收直播频道的媒体流时,直播频道的频道标签与至少一个关联频道的频道标签的显示效果不相同,例如,直播频道的频道标签为高亮显示或凸出显示。进一步的,服务器向观众客户端确定直播频道和至少一个关联频道对应的主播客户端所属的组,根据所属的组从数据库中查询对应的组标识,并将直播频道和关联的至少一个关联频道所属的组的组标识推送至观众客户端,观众客户端上可显示主播客户端对应的携带组标识的昵称。
示例性的,频道1为直播频道,频道1对应视频流1,频道2对应视频流2,频道3对应视频流3,频道4对应视频流4,服务器将视频流1推送至进入频道1中的所有观众客户端,进一步的,服务器还向观众客户端推送频道1的频道标签1,频道2的频道标签2、频道3的频道标签3和频道4的频道标签4,观众客户端在用户界面的指定区域显示频道标签1-4。进一步的,服务器还向观众客户端推送主播客户端1和主播客户端2所属的组的组标识1、主播客户端3和主播客户端4所属的组的组标识2。观众客户端在用户界面上显示视频流1,同时在用户界面的指定区域显示频道标签1至频道标签4,在用户界面的指定区域显示组标识1和组标识2。
S204、当接收到所述观众客户端发送的针对目标频道标签的切换指令时,控制所述观众客户端加入目标频道;其中,所述目标频道为所述至少一个关联频道中的任意一个关联频道。
具体的,观众客户端可通过触发(如双击触发或单击触发或按键触发等)不同于直播频道的目标频道标签来生成切换指令,服务器接收到切换指令时,控制观众客户端加入目标频道,目标频道标签为目标频道的访问入口,目标频道标签为与直播频道关联的至少一个关联频道对应的频道标签中的任意一个,目标频道为与直播频道关联的至少一个关联频道中的任意一个关联频道。
示例性的,观众客户端当前所在的频道为频道1,用户通过观众客户端点击的目标频道标签为频道标签2,频道标签2为频道2的访问入口,服务器接收到观众客户端发送的用于切换到频道2的切换指令,将观众客户端加入频道2中。
S205、获取所述直播频道对应的媒体流的媒体播放参数,并将所述媒体播放参数应用于所述目标频道对应的媒体流,获取所述目标频道对应的媒体流,并将所述目标频道对应的媒体流推送至所述观众客户端。
具体的,媒体播放参数用于表示媒体流的质量信息,例如:媒体播放参数包括码率、帧率或分辨率,服务器获取直播频道对应媒体流的媒体播放参数,根据直播频道的媒体播放参数向观众客户端推送目标频道对应的媒体流。
示例性的,频道1对应的视频流的码率为1200bps、帧率为20帧/s,分辨率为800*600,服务器根据频道1的视频流的媒体播放参数向观众客户端推送频道2对应的视频流2,观众客户端对视频流2进行解析和显示,同时频道2的频道标签2的显示效果不同于频道标签1、频道标签3和频道标签4。
S206、当接收到所述观众客户端发送的消息时,确定所述观众客户端所在的当前频道,以及获取所述当前频道的频道标签;其中,所述当前频道为所述直播频道和所述至少一个关联频道中的任意一个频道。
具体的,当观众客户端在频道内发送聊天消息时,服务器接收到观众客户端发送的消息,服务器确定观众客户端所在的当前频道,以及查询当前频道的频道标识,当前频道为直播频道和至少一个关联频道中的任意一个频道。需要说明的是,本发明实施例中的消息包括用户通过观众客户端输入的聊天消息,或者预设的且通过观众客户端的触发按钮直接发送的固定短语。
示例性的,观众客户端所在的当前频道为频道2,观众客户端1在频道2内发送聊天消息,服务器接收到观众客户端1发送的聊天消息,获取频道2的频道标识,频道2的频道标识表征为频道内的消息发送者的昵称的颜色为红色。
S207、根据所述当前频道的频道标签对所述消息进行封装处理。
具体的,服务器根据观众客户端所在的当前频道的频道标识对聊天消息进行封装处理,封装处理用于根据频道标识的指示将聊天消息封装成为符合格式要求的消息。
示例性的,频道2的频道标识表征为频道内的消息发送者的昵称的颜色为红色,服务器对聊天消息的封装过程为:服务器为聊天消息附加发送者的昵称、发送时间和将发送者的昵称的颜色调整为红色。又例如,频道2的频道标识为频道号,服务器对聊天消息的封装过程为:服务器为聊天消息附加发送者的昵称、发送时间和频道号。
S208、判断是否满足当前频道的频道权限条件。
具体的,所述频道权限条件包括聊天消息发送的权限条件或虚拟物品赠送的权限条件,频道权限条件为当前频道设置的判断聊天消息是否可以在频道内发送的条件,频道权限条件可以由主播客户端设置,也可以有服务器进行设置,例如频道权限条件包括消息发送间隔的限制或发送者的限制等。服务器判断观众客户端发送聊天消息的操作是否满足当前频道的频道权限条件,若为是,执行S209、若为否,执行S210。
示例性的,频道2的频道权限条件为聊天消息的发送间隔不小于50ms,服务器计算观众客户端上传发送聊天消息的时刻和当前时刻的时间间隔,若时间间隔大于50ms,则允许本次聊天消息的发送,若不大于50ms,则不允许本次聊天消息的发送。需要说明的是,本发明实施例所述的频道权限条件不限于时间间隔,可以根据需要任意进行设置组合。
S209、向所述当前频道和与所述当前频道关联的频道内广播所述封装处理后的消息。
具体的,服务器将封装处理后的聊天消息向具有关联关系的频道内的所有观众客户端进行广播,也包括像具有关联关系的频道内的主播客户端进行广播。
具体的,频道2关联的频道为频道1、频道3和频道4,服务器将封装处理后的聊天消息发送频道1、频道2、频道3和频道4内中所有的观众客户端和所有的主播客户端,这样将多个频道进行融合,实现了跨频道的信息交互。
S210、不发送聊天消息。
实施本发明的实施例,检测到观众客户端进入直播频道时,服务器查询与直播频道关联的至少一个关联频道,将直播频道的媒体流推送至观众客户端,并将主播客户端以及至少一个关联频道的各自对应的频道标签推送至观众客户端,观众客户端通过触发频道标签直接进入需要切换到的目标频道,操作简单,能实现频道的快速切换。
参见图4,为本发明第三实施例提供的一种频道切换的方法的流程示意图,在本发明实施例中,所述方法包括:
S1、进入主播客户端的直播频道。
具体的,观众客户端登录服务器后,向服务器发送进入主播客户端的进入请求,服务器将观众客户端加入主播客户端的直播频道。
S2、查询与直播频道关联的至少一个关联频道。
具体的,服务器查询是否存在与直播频道存在关联关系的关联频道,若为是,确定与直播频道关联的关联频道。
S3、获取直播频道对应的媒体流,以及获取直播频道的频道标签、至少一个关联频道的频道标签。
S4、推送直播频道对应的媒体流,并推送直播频道对应的频道标签和至少一个关联频道各自对应的频道标签。
S5、显示直播频道对应的媒体流,并显示直播频道对应的频道标签和至少一个关联频道各自对应的频道标签。
S6、检测到目标频道标签上发生的触发操作时,生成切换指令。
S7、发生切换指令。
S8、将观众客户端加入目标频道中。、
S9、获取目标频道对应的媒体流。
S10、推送目标频道的媒体流。
参见图5,为本发明实施例提供的一种观众客户端的用户界面示意图,下面结合图5对本发明实施例的频道切换的方法的过程进行说明。
观众客户端的用户界面上方显示有具有关联关系的6个频道各自对应的6个频道标签,设6个频道分别为频道1、频道2、频道3、频道4、频道5和频道6,6个频道标签按照从左往右的顺序与6个频道依次对应,观众客户端位于频道1内,观众客户端的媒体流显示区域正在播放频道1对应的媒体流,频道1对应的频道标签的显示效果为突出显示,与其他5个频道标签的显示效果不相同,媒体流显示区域的下方为6个频道各自对应的主播客户端的主播标识,频道1对应主播客户端1、频道2内对应主播客户端2,频道3对应主播客户端3、频道4对应主播客户端4、频道5对应主播客户端5,频道6对应主播客户端6,当前播放频道1的媒体流,主播客户端1的主播标识显示显示为高亮状态。
用户点击第2个频道标签时,服务器获取频道2对应的媒体流,向观众客户端推送频道2对应的媒体流,观众客户端的媒体流显示区域显示频道2对应的媒体流,同时服务器并将观众客户端加入频道2中,频道2对应的频道标识(第2个频道标识的显示效果为突出显示),同时频道2对应的主播客户端的主播标识显示为高亮状态。
用户在聊天消息输入框输入聊天消息时,服务器获取频道2的频道标识,将频道2的频道标识和用户输入的聊天消息进行封装处理,向频道1至频道6内广播封装后的聊天消息,具有关联关系的频道内的主播客户端和观众客户端均能接收到封装后的聊天消息。
参见图6,为本发明实施例提供的另一种观众客户端的用户界面的示意图,下面结合图6对本发明实施例的频道切换的方法的过程进行说明。
图6的观众客户端的用户界面和图5的区别在于,将频道标签和主播客户端的主播标识进行整合,同时对主播客户端进行分组。假设主播客户端1-3划分为一组(图中白色填充块),主播客户端4-6划分为另一组(图中黑色填充块)。观众客户端位于频道1中,主播客户端1对应的主播标识(第1个)显示为高亮状态,用户点击主播客户端2对应的主播标识(第2个)时,服务器接收到切换指令,将观众客户端加入到频道2内,向观众客户端推送频道2对应的媒体流,观众客户端在媒体流显示区域播放频道2对应的媒体流,观众客户端将主播客户端2对应的主播标识显示为高亮状态。
参见图7,为本发明第一实施例提供的一种频道切换的装置的结构示意图,在本发明实施例中,所述装置包括:查询模块10、推送模块11、加入模块12和切换模块13。
查询模块10,用于当检测到观众客户端进入主播客户端所在的直播频道时,查询与所述直播频道关联的至少一个关联频道。
推送模块11,用于将所述直播频道对应的媒体流推送至所述观众客户端,并将所述直播频道对应的频道标签和所述至少一个关联频道各自对应的频道标签推送至所述观众客户端。
加入模块12,用于当接收到所述观众客户端发送的针对目标频道标签的切换指令时,控制所述观众客户端加入目标频道;其中,所述目标频道为所述至少一个关联频道中的任意一个关联频道。
切换模块13,用于获取所述目标频道对应的媒体流,并将所述目标频道对应的媒体流推送至所述观众客户端。
本发明实施例提供的装置,检测到观众客户端进入直播频道时,查询与直播频道关联的至少一个关联频道,将直播频道的媒体流推送至观众客户端,并将主播客户端以及至少一个关联频道的各自对应的频道标签推送至观众客户端,观众客户端通过触发频道标签直接进入需要切换到的目标频道,操作简单,能实现频道的快速切换。
需要说明的是,上述实施例提供的频道切换的装置在处理频道切换时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将服务器的内部结构划分成不同的功能模块,以完成描述的全部或部分功能。另外,上述实施例提供的频道切换的装置方法实施例一属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
参见图8,为本发明第二实施例提供的一种频道切换的装置的结构示意图,在本发明实施例中,所述装置除包括查询模块10、推送模块11、加入模块12和切换模块13之外,进一步的,所述装置还包括:
设置模块10,用于将所述直播频道和所述至少一个关联频道进行关联,并将关联关系保存至数据库中。
进一步的,所述设置模块10还用于为所述直播频道分配频道标签和为所述至少一个关联频道中每个关联频道各自分配一个频道标签;
所述装置还包括获取模块14、封装模块15和广播模块16。
获取模块14,用于当接收到所述观众客户端发送的消息时,确定所述观众客户端所在的当前频道,以及获取所述当前频道的频道标签;其中,所述当前频道为所述直播频道和所述至少一个关联频道中的任意一个频道;
封装模块15,用于根据所述当前频道的频道标签对所述消息进行封装处理;
广播模块16,用于向所述当前频道和与所述当前频道关联的频道内广播所述封装处理后的消息。
进一步的,所述设置模块10还用于将所述直播频道和所述至少一个关联频道中对应的主播客户端划分为至少两个组,并为每个组各自分配一个组标识;
所述推送模块11还用于推送所述直播频道和所述至少一个关联频道对应的主播客户端所属的组标识至所述观众客户端。
进一步的,所述切换模块13还用于获取所述直播频道对应的媒体流的媒体播放参数,并将所述媒体播放参数应用于所述目标频道对应的媒体流。
本发明实施例提供的装置,检测到观众客户端进入直播频道时,查询与直播频道关联的至少一个关联频道,将直播频道的媒体流推送至观众客户端,并将主播客户端以及至少一个关联频道的各自对应的频道标签推送至观众客户端,观众客户端通过触发频道标签直接进入需要切换到的目标频道,操作简单,能实现频道的快速切换。
需要说明的是,上述实施例提供的频道切换的装置方法实施例二属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random Access Memory,RAM)等。
以上所揭露的仅为本发明一种较佳实施例而已,当然不能以此来限定本发明之权利范围,本领域普通技术人员可以理解实现上述实施例的全部或部分流程,并依本发明权利要求所作的等同变化,仍属于发明所涵盖的范围。