一种连麦窗口展示方法及装置与流程

文档序号:16202153发布日期:2018-12-08 06:43阅读:594来源:国知局
一种连麦窗口展示方法及装置与流程

本发明涉及计算机技术领域,更具体地,涉及一种连麦窗口展示方法及装置。

背景技术

目前,随着手机移动端的快速发展,连麦在直播过程中作为一个非常有趣的功能非常受用户喜爱和欢迎。

连麦系统是一个比较复杂的过程,涉及主播端、连麦端和用户端,其中用户端可能有成千上万过,连麦端一般只有有限个。主播端需要看到自己的视频画面,同时还可以看到连麦者的画面;连麦端可以看到自己的画面还可以看到主播的画面;用户端可以看到主播的画面和连麦者的画面。

目前如何在连麦端、用户端和主播端合理的显示视频画面及相关的窗口信息,还没有较好的技术方案。目前有一些方案中,直播窗口的显示完全依赖视频流,结果导致延时比较严重,窗口昵称显示存在问题等。



技术实现要素:

本发明提供一种克服上述问题或者至少部分地解决上述问题的连麦窗口展示方法及装置。

根据本发明的第一实施例,提供一种连麦窗口展示方法,包括:

s1,获取直播房间的用户连麦请求,进行连麦;

s2,确认连麦成功后,通过socket请求获取数据服务器的连麦信息模型,以显示连麦窗口信息。

进一步,所述s1进一步包括:

s1.1,在所述直播房间页面监听到用户连麦请求;

s1.2,基于所述用户连麦请求,利用所述直播房间的视频播放组件触发连麦通知。

进一步,所述s2进一步包括:

s2.1,解析所述连麦通知的字典信息,根据所述字典信息的特定字段判断连麦成功;

s2.2,通过socket请求获取数据服务器的连麦信息模型;

s2.3,基于所述连麦信息模型,进行连麦小窗展示以显示连麦窗口信息。

进一步,所述s1.1进一步包括:

s1.1.1,在所述直播房间页面的加载方法中,获取直播app的通知中心单例类的单例,并设置所述直播房间页面为所述单例的观察者;

s1.1.2,所述单例收到一个用户连麦请求时,触发所述直播房间页面的方法选择器的回调方法,从而监听到所述用户连麦请求。

具体的,s2.2所述连麦信息模型为所述直播房间的连麦窗口信息,包括:

连麦窗口的坐标(x,y)及宽高(w,h)、连麦权限、连麦窗口当前的身份信息、连麦者昵称和连麦者等级。

进一步,所述s2.3进一步包括:

s2.3.1,通过视频服务器获取所述户连麦请求对应的连麦端视频流;

s2.3.2,将所述连麦信息模型发送到所述用户连麦请求对应的控制器;

s2.3.3,根据所述连麦信息模型中的连麦窗口的坐标(x,y)及宽高(w,h)创建连麦小窗,在所述连麦小窗显中示连麦端视频流以及所述连麦信息模型中的其他信息。

进一步,所述s2.3.3还包括:

在主播端、连麦端和用户端显示所述直播房间的主播画面和连麦者画面;

根据所述连麦信息模型中的连麦窗口当前的身份信息确定所述连麦小窗当前显示主播画面或连麦者画面。

根据本发明的第二实施例,提供一种连麦窗口展示装置,包括连麦模块和显示模块;

所述连麦模块,用于获取直播房间的用户连麦请求,进行连麦。

所述显示模块,用于确认连麦成功后,通过socket请求获取数据服务器的连麦信息模型,以显示连麦窗口信息。

根据本发明的第三实施例,提供一种连麦窗口展示设备,包括:

至少一个处理器;以及

与所述处理器通信连接的至少一个存储器,其中:

所述存储器存储有可被所述处理器执行的程序指令,所述处理器调用所述程序指令能够执行本发明第一实施例或所述第一实施例的各种实现方式所述的方法。

根据本发明的第四实施例,提供一种非暂态计算机可读存储介质,其特征在于,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行本发明第一实施例或所述第一实施例的各种实现方式所述的方法。

本发明提出一种连麦窗口展示方法及置,在获取用户连麦请求并连麦成功后,通过socket请求获取数据服务器的连麦信息模型,通过直播视频流配合socket消息,二者结合来显示连麦窗口及相关信息;解决了直播窗口的显示完全依赖视频流,导致延时严重及不能较好的显示连麦相关信息的问题。通过socket消息与视频流结合,同步性和实时性非常好,可以完美的进行连麦窗口的显示。

附图说明

图1为本发明实施例一种连麦窗口展示方法流程图;

图2为本发明实施例一种连麦窗口展示设备框架示意图。

具体实施方式

下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。以下实施例用于说明本发明,但不用来限制本发明的范围。

本发明所有实施例的技术方案通过计算机软件实现,可以在任意程序语言开发环境中或者结合多种程序语言而实现,并不限于某一种具体的开发环境。各个实施例中对应的描述只是示例的,并不用于限制本发明所有实施例的技术方案的实现方式。

有的技术方案可以显示连麦及主播画面信息,但是不能方便的进行窗口切换。

如图1所示,本发明第一实施例提供一种连麦窗口展示方法,包括:

s1,获取直播房间的用户连麦请求,进行连麦。

s2,确认连麦成功后,通过socket请求获取数据服务器的连麦信息模型,以显示连麦窗口信息。

本实施例在获取用户连麦请求并连麦成功后,通过socket请求获取数据服务器的连麦信息模型,通过直播视频流配合socket消息,二者结合来显示连麦窗口及相关信息;解决了直播窗口的显示完全依赖视频流,导致延时严重及不能较好的显示连麦相关信息的问题。通过socket消息与视频流结合,同步性和实时性非常好,可以完美的进行连麦窗口的显示。

本实施例及后续的实施例中,所述数据服务器可以是c++服务器,所述c++服务器是指利用c++程序语言实现的服务器,此后不再赘述。

在所述第一实施例的一个实施例中,所述s1进一步包括:

s1.1,在所述直播房间页面监听到用户连麦请求;

s1.2,基于所述用户连麦请求,利用所述直播房间的视频播放组件触发连麦通知。

一般来说,每个应用程序有很多页面组成,在直播app中,一个直播房间就是一个页面。所述直播app是用于进行视频直播的一种应用程序,进一步,所述直播app用于实现本文档的所有实施例的技术方案。

本实施例通过所述直播房间页面监听与所述直播房间相关的用户连麦请求。当监听到用户连麦请求后,利用所述直播房间的视频播放组件触发连麦通知进行连麦。

本实施例使用视频播放组件触发通知的形式,是一个比较好的通知直播房间页面进行窗口显示的方案,相对于其他方式更易于解耦。

在所述第一实施例的另一个实施例中,所述s2进一步包括:

s2.1,解析所述连麦通知的字典信息,根据所述字典信息的特定字段判断连麦成功;

s2.2,通过socket请求获取数据服务器的连麦信息模型;

s2.3,基于所述连麦信息模型,进行连麦小窗展示以显示连麦窗口信息。

本实施例中,所述连麦通知为所述直播房间的视频播放组件触发的连麦通知,在具体实施例时,所述连麦通知的数据类型可以为字典类型,例如在ios系统中,所述连麦通知的数据类型可以为nsdictionary。可以在nsdictionary中设置一个用于表示连麦是否成功的字段,比如isconnected,那么就可以通过判断isconnected的值来判断连麦是否成功。在具体实施时,当连麦成功时可设置isconnected=1,不成功时设置isconnected=0,则在所述s2.1中可以判断isconnected是否等于1来确认连麦是否成功。

本实施例所述s2.2中通过socket请求获取数据服务器的连麦信息模型,还包括获取直播间的关注数等。本文档所有实施例中,直播app既有http的服务器,http的服务器一般是视频服务器,还有socket服务器,一般指数据服务器。每次用户进直播间先向视频服务器发送网络请求获取房间的基本信息,基本信息包括主播名字、主播唯一id和主播头像等几十项主播信息;视频服务器登录成功之后使用数据服务器的登录方法logincserver登录数据服务器,logincserver登录成功之后,只要网络正常数据服务器就可以通过socket推送用户相关的信息。

所述s2.2中,通过scoket拿到连麦信息,没有使用http的网络请求,是因为socket交互很轻量,服务器的承受负载性能更好。

并且,由于视频播放组件不便拿到用户信息,因为视频播放组件拿到过多的用户信息,则破坏程序代码的接口和封装性,而数据服务器比较适合查询用户信息和信息交互,而且交互查询逻辑运算的速度高。在连麦过程中,利用视频播放组件和数据服务器向结合的优势,从架构层面是一种很优化的方案。

本实施例中,通过socket请求获取数据服务器获取的用户信息为字符串类型,可以使用字符串解析的方法,将所述用户信息解析为一个连麦信息模型。

拿到连麦信息模型后,所述s2.3就可以根据连麦信息模型中的用户信息进行连麦小窗展示了。将连麦的用户信息以模型传输到页面,因为模型可以比较方便进行数据传递,模型数据传递不容易出错,方便展示和解析使用;任何页面需要这个连麦信息,直接拿到解析后的模型,无需再对弹幕信息进行解析。

所述连麦小窗,是指在直播app中,用于展示连麦者端的视频信息及连麦者用户信息的视频小窗口,相对于原主播端的视频直播窗口而言具有较小的尺寸,因而称为连麦小窗。

本发明所有实施例中,连麦小窗与主播窗口可以互相切换,即在一种条件下,主播端视频通过小窗显示,连麦端视频通过大窗显示;在另一种条件下,连麦端视频通过小窗显示,主播端视频通过大窗显示。

在所述第一实施例的另一个实施例中,所述s1.1进一步包括:

s1.1.1,在所述直播房间页面的加载方法中,获取直播app的通知中心单例类的单例,并设置所述直播房间页面为所述单例的观察者;

s1.1.2,所述单例收到一个用户连麦请求时,触发所述直播房间页面的方法选择器的回调方法,从而监听到所述用户连麦请求。

本实施例进一步描述了如何通过所述直播房间页面来监听用户连麦请求。

本实施例中,每个直播app都有一个通知中心,是一个单例类;所述通知中心用于监听所述直播app的所有通知消息。在程序语言中,单例是一个静态的、全局唯一的对象。

每个页面即每个直播房间都有一个页面已经启动和初始化的加载方法,所述加载方法用于加载一个页面,使得一个页面已经加载完毕但是还没有显示出来。一般情况下,可以在所述加载方法中添加一些初始化init的方法,或者监听通知等。

本实施例所述直播房间页面的加载方法中里面添加一个监听,用于监听连麦通知。所述s1.1.1中,首先在获取直播app的通知中心单例类的单例;本实施例所述单例有一个方法用于设置当前监听的观察者,因此在获取所述单例后设置所述直播房间页面为所述单例的观察者。

所述s1.1.2中,通过所述单例监听到一个户连麦请求。在本实施例所述直播房间页面中还实现一个方法选择器。

通常来讲,方法选择器可以简单理解为方法的调用。和普通方法调用不同的是,选择器的特点是可以跨类传参。你可以在a类中声明某方法,然后在b类中控制该方法的调用。这样的机制大大的增加了我们的程序的灵活性,我们可以通过给一个方法传递sel参数,让这个方法动态的执行某一个方法;我们也可以通过配置文件指定需要执行的方法,程序读取配置文件之后把方法的字符串翻译成为sel变量然后给相应的对象发送这个消息。

以ios系统为例,方法选择器@selector()就是取类方法的编号,它的行为基本可以等同c语言的中函数指针,只不过c语言中,可以把函数名直接赋给一个函数指针,而object-c的类不能直接应用函数指针,这样只能做一个@selector语法来取。

所述s1.1.2中,所述直播房间页面实现一个方法选择器,当所述单例监听到一个户连麦请求后,触发所述直播房间页面的方法选择器的一个回调方法,从而监听到所述用户连麦请求。

在所述第一实施例的另一个实施例中,s2.2所述连麦信息模型为所述直播房间的连麦窗口信息,包括:

连麦窗口的坐标(x,y)及宽高(w,h)、连麦权限、连麦窗口当前的身份信息、连麦者昵称和连麦者等级。

所述连麦信息模型包括很多字段,至少包括本实施例所列举的字段。所述连麦窗口当前的身份信息表示当前在连麦小窗的是主播还是连麦者。

在所述第一实施例的另一个实施例中,所述s2.3进一步包括:

s2.3.1,通过视频服务器获取所述户连麦请求对应的连麦端视频流;

s2.3.2,将所述连麦信息模型发送到所述用户连麦请求对应的控制器;

s2.3.3,根据所述连麦信息模型中的连麦窗口的坐标(x,y)及宽高(w,h)创建连麦小窗,在所述连麦小窗中显示连麦端视频流以及所述连麦信息模型中的其他信息。

本实施例对如何基于所述连麦信息模型进行连麦小窗展示以显示连麦窗口信息进一步描述。

本实施例通过视频服务器获取所述户连麦请求对应的连麦端视频流;将所述连麦信息模型发送到所述用户连麦请求对应的控制器,通过所述对应的控制器来控制连麦小窗的展示,首先需要创建连麦小窗,通过视频播放组件来在所述连麦小窗中播放连麦端视频流。

本发明实施例所述视频播放组件用于播放视频流,主要是完成从本发明各实施例的视频流服务器即视频服务器拉取视频流,同时可以将用户端或连麦端的视频流信息推送到视频流服务器即视频服务器。视频流的拉取和推送过程中,会触发一些状态消息,例如视频推送完毕、推送失败、主播未开播和正在直播等,这些状态消息用于为一些接口或者通知告知指标app视频流状态发生变化。

本实施例通过视频服务器获取所述户连麦请求对应的连麦端视频流,结合前述实施例通过socket请求获取数据服务器的连麦信息模型,通过直播视频流配合socket消息,二者结合来显示连麦窗口及相关信息。socket先拿到所述连麦请求的用户信息,视频流连接之后,触发通知显示socket所拿到的用户信息。由于socket比较轻量,消息传输快,这样可以达到比较好的同步性,即视频流加载完毕,立刻可以展示连麦小窗的基本信息,同步性和实时性非常好。

在所述第一实施例的另一个实施例中,所述s2.3.3还包括:

在主播端、连麦端和用户端显示所述直播房间的主播画面和连麦者画面;

根据所述连麦信息模型中的连麦窗口当前的身份信息确定所述连麦小窗当前显示主播画面或连麦者画面。

本实施例描述了连麦之后的各种显示,主播端、连麦端和用户端显都需要显示所述直播房间的主播画面和连麦者画面,那么对于不同的用户,连麦小窗中显示主播画面或连麦者画面都不一定相同,并且可以在主播画面和连麦者画面间随时进行切换,因此需要一种快速的方法。本实施例通过所述连麦信息模型中的连麦窗口当前的身份信息确定所述连麦小窗当前显示主播画面或连麦者画面,由于视频流和连麦信息二者数据来源是分离的,分别通过视频服务器和数据服务器获取,因此在切换时视频流可以作为一个整体处理,连麦信息部分通过数据服务器获取消耗的流量资源比较少,可以实现快速的切换。

本发明所有实施例中,所述视频服务器可以是php服务器,所述php服务器是指利用php语言实现的服务器。

本发明第二实施例提供一种连麦窗口展示装置,包括连麦模块和显示模块;

所述连麦模块,用于获取直播房间的用户连麦请求,进行连麦。

所述显示模块,用于确认连麦成功后,通过socket请求获取数据服务器的连麦信息模型,以显示连麦窗口信息。

本实施例及后续实施例与所述第一实施例相对应,具体描述请参考所述第一实施的相关描述,此处不再赘述。

在所述第二实施例的一个实施例中,所述连麦模块进一步包括:

监听单元,用于在所述直播房间页面监听到用户连麦请求;

触发通知单元,用于基于所述用户连麦请求,利用所述直播房间的视频播放组件触发连麦通知。

在所述第二实施例的另一个实施例中,所述显示模块进一步包括:

连麦单元,用于解析所述连麦通知的字典信息,根据所述字典信息的特定字段判断连麦成功;

信息获取单元,用于通过socket请求获取数据服务器的连麦信息模型;

展示单元,基于所述连麦信息模型,进行连麦小窗展示以显示连麦窗口信息。

在所述第二实施例的另一个实施例中,所述监听单元进一步包括:

用于在所述直播房间页面的加载方法中,获取直播app的通知中心单例类的单例,并设置所述直播房间页面为所述单例的观察者;

用于所述单例收到一个用户连麦请求,触发所述直播房间页面的方法选择器的一个回调方法,从而监听到所述用户连麦请求。

在所述第二实施例的另一个实施例中,所述信息获取单元的连麦信息模型为所述直播房间的连麦窗口信息,包括:

连麦窗口的坐标(x,y)及宽高(w,h)、连麦权限、连麦窗口当前的身份信息、连麦者昵称和连麦者等级。

在所述第二实施例的另一个实施例中,所述展示单元进一步包括:

用于通过视频服务器获取所述户连麦请求对应的连麦端视频流;

用于将所述连麦信息模型发送到所述用户连麦请求对应的控制器;

用于根据所述连麦信息模型中的连麦窗口的坐标(x,y)及宽高(w,h)创建连麦小窗,在所述连麦小窗中显示连麦端视频流以及所述连麦信息模型中的其他信息。

在所述第二实施例的另一个实施例中,所述展示单元还包括:

用于在主播端、连麦端和用户端显示所述直播房间的主播画面和连麦者画面;根据所述连麦信息模型中的连麦窗口当前的身份信息确定所述连麦小窗当前显示主播画面或连麦者画面。

图2示出了本发明第三实施例一种连麦窗口展示设备的结构框图。

参照图2,所述设备,包括:处理器(processor)601、存储器(memory)602和总线603;

其中,

所述处理器601和存储器602通过所述总线603完成相互间的通信;

所述处理器601用于调用所述存储器602中的程序指令,以执行上述各方法实施例所提供的方法,例如包括:获取直播房间的用户连麦请求,进行连麦;确认连麦成功后,通过socket请求获取数据服务器的连麦信息模型,以显示连麦窗口信息。

本发明另一实施例公开一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行上述各方法实施例所提供的方法,例如包括:获取直播房间的用户连麦请求,进行连麦;确认连麦成功后,通过socket请求获取数据服务器的连麦信息模型,以显示连麦窗口信息。

本发明第四实施例提供一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行上述各方法实施例所提供的方法,例如包括:获取直播房间的用户连麦请求,进行连麦;确认连麦成功后,通过socket请求获取数据服务器的连麦信息模型,以显示连麦窗口信息。

本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:rom、ram、磁碟或者光盘等各种可以存储程序代码的介质。

以上所描述的一种连麦窗口展示设备等实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。

最后,本申请的方法仅为较佳的实施方案,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

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