一种多人连麦直播方法及装置与流程

文档序号:30618852发布日期:2022-07-02 01:50阅读:224来源:国知局
一种多人连麦直播方法及装置与流程

1.本发明涉及多人连麦直播技术领域,特别涉及一种多人连麦直播方法及装置。


背景技术:

2.直播应用的场景有很多,包括培训直播、教育直播、秀场直播和电商直播,每个场景都对直播平台提出相应的需求,例如在电商直播中要求直播平台在直播界面提供购物链接,在秀场直播中要求提供主播与其他主播之间连麦pk的功能等。具体到相同应用场景下,不同行业之间的直播需求也存在差异,例如在多人连麦直播编程教学时,某些观众不仅希望能够通过直播平台的界面观看主播讲解知识点并实时敲打键盘输入代码的画面,而且还希望能够亲自输入代码后并当场编译代码,通过代码编译的结果验证自己是否真正掌握该知识点,即希望在直播编程教学中提供主播与观众实时编辑代码进行互动的功能。
3.经检索,现有技术中存在如下相关技术:授权公告号为cn110009967b的中国专利公开了一对多在线协作式编程教学方法及系统,其披露了将直播环境和编程环境集成在一起的方案,能够让老师通过教学端、学生通过学员端分别对相同的代码进行编辑、编译以及运行,实现了老师与学生之间的互动;但是该方案中实际是将同一段代码同步到各学员端进行编辑、编译以及运行,这就要求每个学员端均配置有ide,即集成开发环境(例如,visual studio2013),这显然只能够适用于学校或者培训班,无法适用于主播与观众为陌生人关系的直播场景。
4.公开号为cn110009951a的中国专利公开了一种在线直播编程教学的教学方法及教学系统,其披露了将教师人像视频和教师教学音频实时传输至学员终端进行直播编程教学的方案,实现了老师与学生之间的互动;但是该方案中也是将同一段代码同步到各学员端进行编辑、编译以及运行,仍无法适用于主播与观众为陌生人关系的直播场景。
5.为了解决上述方案中需要每个学员终端均配置ide带来的不方便问题,可以想到的办法是参照游戏直播中采用的方案,在需要观众参与时,将主播端的控制权转移至被选中的观众。但是与游戏直播不同,在编程直播中,由于对ide的操作会涉及对主播端操作系统层面的影响,观众输入的错误代码或者恶意代码可能导致主播端关机或者重启,或者观众的误操作将代码编辑界面上的代码全部删除等,这显然会给编程主播端带来风险。但是若是由观众将需要编译运行的代码输入到评论区,再由主播复制粘贴到代码编辑界面上进行编译运行,显然给主播带来不便。


技术实现要素:

6.本发明的目的在于至少解决现有技术中存在的技术问题之一,提供一种多人连麦直播方法及装置,能够将观众输入的代码在代码接收区域展示给主播,并在主播确认后自动将代码输入到ide的代码编辑界面中,能够在主播确定代码的安全性后便捷地将代码输入到代码编辑界面中编译运行。
7.第一方面,本发明提供了一种多人连麦直播方法,应用于包括主播端和多个观众
端的网络中,所述方法包括:在主播端的显示界面上的编程区域显示ide的代码编辑界面并将所述编程区域的画面形成的视频数据与主播端采集的音频数据推流至服务器,以便所述服务器对所述视频数据与音频数据进行合流得到直播音视频数据流,并通过cdn将所述直播音视频数据流分发至各观众端;在主播端的显示界面的第一区域显示有分别与多个观众端关联的多个第一图标;响应于主播对任一个第一图标的触发操作,主播端向所述任一个第一图标关联的被选中观众端发送交互指令并在主播端的显示界面的第二区域显示代码接收区域;所述交互指令用于触发所述被选中观众端的显示界面显示代码互动区域,所述代码互动区域用于将观众输入其中的代码实时同步至主播端的显示界面上的代码接收区域;所述代码接收区域用于将主播输入其中的代码实时同步至被选中观众端的显示界面上的代码互动区域;响应于主播对主播端的确认操作,主播端将位于代码接收区域中的代码输入至主播端上的ide的代码编辑界面中。
8.第二方面,本发明提供一种电子设备,包括:存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如本发明第一方面实施例中任一项所述的多人连麦直播方法。
9.第三方面,本发明提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机可执行指令,所述计算机可执行指令用于使计算机执行如本发明第一方面实施例中任一项所述的多人连麦直播方法。
10.第四方面,本发明提供一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现权如本发明第一方面实施例中任一项所述的多人连麦直播方法。
11.相较于现有技术,本发明提供的多人连麦直播方法及装置至少具备如下的有益效果:1.本技术能够将被选中观众输入的代码在代码接收区域展示给主播,并在主播确认后自动将代码输入到ide的代码编辑界面中,能够在主播确定代码的安全性后便捷地将代码输入到代码编辑界面中编译运行。
12.2.相较于现有技术中,用户编辑完一整段的代码再发送给主播端进行审核造成的修改不便问题,本技术能够将被选中观众输入的代码实时同步至主播端,便于主播随时指导该观众对输入的代码进行修改,提高教授编程知识的效率。
13.3.考虑到被选中的观众编程水平有限,若是主播仅仅通过语音进行修改代码的指导,会给观众带来困难,因此,为代码接收区域提供反向实时同步代码的功能,使得主播能够深度参与到观众代码修改中。
14.本发明的附加方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
15.下面结合附图和实施例对本发明进一步地说明;图1为一个实施例中多人连麦直播方法的应用环境图。
16.图2为一个实施例中主播端的显示界面示意图。
17.图3为一个实施例中被选中观众端的显示界面示意图。
18.图4为又一个实施例中被选中观众端的显示界面示意图。
19.图5为一个实施例中多人连麦直播方法的流程示意图。
20.图6为一个实施例中多人连麦直播方法的流程示意图。
21.图7为一个实施例中多人连麦直播方法的流程示意图。
22.图8为一个实施例中多人连麦直播方法的流程示意图。
23.图9为一个实施例中多人连麦直播方法的流程示意图。
24.图10为一个实施例中计算机设备的结构框图。
25.附图标记:100、主播端;110、编程区域;120、第一区域;121、第一图标;130、第四区域;131、第二图标;140、第二区域;141、代码接收区域;150、代码编辑区域;200、观众端;210、代码互动区域;221、画布;222、第三区域。
具体实施方式
26.本部分将详细描述本发明的具体实施例,本发明之较佳实施例在附图中示出,附图的作用在于用图形补充说明书文字部分的描述,使人能够直观地、形象地理解本发明的每个技术特征和整体技术方案,但其不能理解为对本发明保护范围的限制。
27.图1为一个实施例中多人连麦直播方法的应用环境图。本发明提供的方法可以应用于该环境中,具体的,主播端100、服务器、cdn(content delivery network,即cdn服务器)和多个观众端200通过网络进行数据通信,在主播开播之后,多个观众可以通过相应的观众端200进入到直播间参与直播学习编程知识。本实施例中,主播端100为了安装ide(integrated development environment,即集成开发环境,其是用于提供程序开发环境的应用程序,一般包括代码编辑器、编译器、调试器和图形用户界面等工具),可以选用pc或mac等计算机设备实现。而考虑到参加直播的观众的多样性,观众端200不受到具体的限制,既可以是pc或mac等安装有windows或macos的大型终端,也可以是安装有android或ios的移动终端。
28.在直播教授编程知识的过程中,主播一般会在讲解知识点同时利用自己熟悉的代码编辑器来编辑代码进行实操,加深观众对知识点的理解。作为一种互动性更强、趣味性更高的方式,主播或者观众希望在观众能够参与到某些代码语句的编辑中,例如在学习java如何读取文件时,主播高速观众可以调用某个库函数并将文件地址写入代码即可读取文件,为了检验观众是否听明白,主播需要让被选中的观众参与到代码编辑中。而若是直接将主播端100的控制权转移给该观众,可能对主播的隐私或安全造成威胁。面对上述矛盾,本发明提供如下实施方式来解决。
29.如图5所示,在一个实施例中,提供了一种多人连麦直播方法,应用于包括主播端100和多个观众端200的网络中,所述方法包括:步骤s202,在主播端100的显示界面上的编程区域110显示ide的代码编辑界面并将所述编程区域110的画面形成的视频数据与主播端100采集的音频数据推流至服务器,以便所述服务器对所述视频数据与音频数据进行合流得到直播音视频数据流,并通过cdn将所述直播音视频数据流分发至各观众端200。
30.步骤s204,在主播端100的显示界面的第一区域120显示有分别与多个观众端200关联的多个第一图标121。
31.步骤s206,响应于主播对任一个第一图标121的触发操作,主播端100向所述任一个第一图标121关联的被选中观众端200发送交互指令并在主播端100的显示界面的第二区域140显示代码接收区域141;所述交互指令用于触发所述被选中观众端200的显示界面显示代码互动区域210,所述代码互动区域210用于将观众输入其中的代码实时同步至主播端100的显示界面上的代码接收区域141;所述代码接收区域141用于将主播输入其中的代码实时同步至被选中观众端200的显示界面上的代码互动区域210。
32.步骤s208,响应于主播对主播端100的确认操作,主播端100将位于代码接收区域141中的代码输入至主播端100上的ide的代码编辑界面中。
33.在步骤s202中,直播平台软件运行后,会将主播端100的显示界面划分为图1所示的多个区域,直播过程中只会将编程区域110的画面分享给观众,主播在直播时可以将需要展示的窗口拖动至编程区域110中。在步骤s204中第一区域120中的第一图标121显示的是在直播间中的观众自己设置的账户头像。在步骤s206中,当主播想要让某个观众参与编写代码的互动时,可以对其对应的第一图标121进行触发操作时,例如双击,则在主播端100显示界面的第二区域140会生成代码接收区域141,本示例中,代码接收区域141为文本输入框。如图3所示,在被选中观众端200的显示界面也生成代码互动区域210,可选的,代码互动区域210也可以采用文本输入框实现。需要说明的是,代码互动区域210和代码接收区域141中的内容是同步的,即主播和被选中的观众均可在上面进行文本的编辑。在步骤s208中,主播可以通过代码接收区域141随时查看被选中观众编写代码的具体情况,被选中观众也可以与主播进行连麦进行语音通话,当被选中观众告诉主播做完之后,主播通过代码接收区域141查看并确定代码安全时,主播用鼠标单击代码编辑区域150中需要输入代码的位置,让代码编辑器获得鼠标的焦点,然后主播同时按下“ctrl键”和“s键”实现确认操作(可以理解的是,确认操作还可以通过其他符合直播习惯的按键组合来实现),直播平台软件会读取代码接收区域141中的代码并将这些代码输入到代码编辑区域150中。
34.相较于现有技术,本发明提供的多人连麦直播方法及装置至少具备如下的有益效果:1.本技术能够将被选中观众输入的代码在代码接收区域141展示给主播,并在主播确认后自动将代码输入到ide的代码编辑界面中,能够在主播确定代码的安全性后便捷地将代码输入到代码编辑界面中编译运行。
35.2.相较于现有技术中,用户编辑完一整段的代码再发送给主播端100进行审核造成的修改不便问题,本技术能够将被选中观众输入的代码实时同步至主播端100,便于主播随时指导该观众对输入的代码进行修改,提高教授编程知识的效率。
36.3.考虑到被选中的观众编程水平有限,若是主播仅仅通过语音进行修改代码的指导,会给观众带来困难,因此,为代码接收区域141提供反向实时同步代码的功能,使得主播能够深度参与到观众代码修改中。
37.如图6所示,在一个实施例中,所述方法还包括:步骤s302,响应于主播对任一个第一图标121的触发操作,主播端100获取当前编程区域110画面的第一截图;
步骤s304,主播端100将所述第一截图作为画布221并将所述代码接收区域141的实时画面填充至所述画布221上的第三区域222形成实时的视频数据;所述第三区域222为主播端100响应于主播的选择操作确定的区域。
38.如图4所示,在观众端200接收到的视频画面中,第一截图作为画布221其内容是固定不变的,在画布221的第三区域222填充的是代码接收区域141的实时画面,即被选中观众编写代码过程的代码变化情况的画面。
39.本实施例中,考虑到被选中观众在输入代码时,其他的观众无法知道其进度,造成观众等待过程的困惑,因此根据代码接收区域141的实时画面生成视频数据发送给各观众端200,以便各观众及时了解被选中观众输入的代码情况。同时,将当前编程区域110画面的第一截图作为画布221,该画布221的内容为ide的代码编辑界面,被选中观众输入的代码内容与ide的代码编辑界面中其他代码在同一个区域展示,从视觉上让被选中观众认为其是直接在ide的代码编辑界面中输入代码,符合实际代码编写习惯,体验更好。另外,由于主播端100上编程区域110不再作为视频数据的内容,所以直播可以在被选中观众输入代码过程中,自己也可以对ide的代码编辑界面进行操作,可以提前验证自己的代码是否正确,并且主播操作的过程并不会将答案公布给其他观众,对于主播的教学操作具有更大的灵活度。
40.在一个实施例中,主播端100响应于主播上的选择操作确定第三区域222的具体过程为:a,主播端100检测鼠标在第一截图上发生单击事件的坐标并将所述坐标作为第三区域222左上角端点的坐标;b,主播端100根据所述坐标以及预设宽度、预设高度确定所述第三区域222在所述画布221上的位置。
41.如图3和图4所示,第三区域222为一宽高比大于1的矩形区域,本实施例中,主播可以在生成第一截图之后,通过鼠标简单交互即可确定第三区域222的位置,一般来说,第三区域222的位置应当紧跟最后一行代码的下方,使得其他观众在查看主播端100发送的直播音视频数据时看到的是符合在ide代码编辑界面正常输入代码的画面,为用户提供更真实的体验。
42.在一个实施例中,如图7所示,所述方法还包括:步骤s402,响应于主播对任一个第一图标121的触发操作,主播端100获取当前编程区域110画面的第一截图;步骤s404,主播端100将所述第一截图作为画布221并将基于代码接收区域141输入的代码实时获取的对象填充至所述画布221上的第三区域222形成实时的视频数据;所述第三区域222为主播端100响应于主播的选择操作确定的区域;其中,基于代码接收区域141输入的代码实时获取所述对象的具体过程包括:主播端100实时获取所述代码接收区域141画面的第二截图;主播端100将对所述第二截图进行虚化处理后得到的图片作为所述对象。
43.本实施例中,考虑到若是直接将被选中观众输入的代码直接展示给其他观众,可能会影响其他观众自己编写代码,但是还得让其他观众知道被选中观众编写代码的进度,否则可能会导致其他观众不知道还要等到多久。因此,本实施例中利用虚化处理后的图片表示被选中观众输入代码的具体内容,并且实时动态地更新该图片,由于该图片是代码接
收区域141画面的第二截图,所以经过虚化处理后无法看到具体内容,但是能够看到行数,便于其他用户了解被选中用户的进度。
44.在一个实施例中,所述方法还包括:步骤1,响应于主播对任一个第一图标121的触发操作,主播端100获取当前编程区域110画面的第一截图;步骤2,主播端100将所述第一截图作为画布221并将基于代码接收区域141输入的代码实时获取的对象填充至所述画布221上的第三区域222形成实时的视频数据;所述第三区域222为主播端100响应于主播的选择操作确定的区域;其中,基于代码接收区域141输入的代码实时获取所述对象的具体过程包括:主播端100实时监控同步至所述代码接收区域141中的代码,根据检测到的代码中分行标识符的数量,确定与所述数量匹配的行数;主播端100获取所述对象,所述对象为包含与所述行数对应的色块的图片。
45.本实施例中,考虑到若是直接将被选中观众输入的代码直接展示给其他观众,可能会影响其他观众自己编写代码,但是还得让其他观众知道被选中观众编写代码的进度,否则可能会导致其他观众不知道还要等到多久。因此,本实施例中利用图片遮挡被选中观众输入代码的具体内容,并且实时动态地更新该图片,使得图片上的色块与被选中用户输入的代码的行数匹配,便于其他用户了解被选中用户的进度。例如,当主持人宣布本次交互需要观众输入的实现某个功能的代码片段为十行,则为了不干扰其他用户自己的答案,不能泄露被选中观众代码的具体内容,所以实时动态地从主播端100本地预先存储的图片中选择与行数匹配的图片来填充到画布221上的第三区域222。如图3所示,示意性展示了行数为3行图片。另外的,考虑到被选中观众的编程基础很差,其在代码互动区域210输入代码时并未按照规范进行分行处理,如图3所示,对于java而言,其以分号来判断是否结束一条语句,按照规范在分号之后(即写完一条语句)一般需要进行分行,便于阅读。但是对于新人而言,其可能不分行,所以可能一行写了多条语句,若是根据代码接收区域141的第二截图作为对象,则其他观众无法正确判断被选中观众的进度。因此,本实施例中将语句结束的标志作为分行标识符(例如java中的语句结束标志位分行),通过分行标识符的数量来匹配对应行数的图片,能够让其他用户更清楚了解被选中用户编写代码的精度。
46.如图4和图8所示,在一个实施例中,所述方法还包括:步骤s502,主播端100的显示界面的第四区域130显示有分别与多个交互观众端200关联的第二图标131;所述交互观众端200为多个观众端200中向主播端100发送了交互请求的观众端200。
47.步骤s504,响应于主播对键盘的选中操作,主播端100向与所述选中操作匹配的交互观众端200发送交互指令并在主播端100的显示界面的第二区域140显示代码接收区域141。
48.步骤s506,响应于主播对键盘的选中操作,主播端100获取当前编程区域110画面的第一截图。
49.步骤s508,主播端100将所述第一截图作为画布221并将所述代码接收区域141的实时画面填充至所述画布221上的第三区域222形成实时的视频数据;所述第三区域222为主播端100响应于主播的选择操作确定的区域。
50.主播端100响应于主播上的选择操作确定第三区域222的具体过程为:主播端100检测鼠标当前停留在第一截图上的坐标并将所述坐标作为第三区域222左上角端点的坐标;主播端100根据所述坐标以及预设宽度、预设高度确定所述第三区域222在所述画布221上的位置。
51.本实施例中,观众可以通过观众端200向主播端100发送交互请求来主动请求参与编写代码的交互,主播端100可以通过键盘上的按键选中对应的观众来进行编写代码的交互。可以理解的是,主播编写完当前阶段的代码并希望接下来的代码由观众来编写以便实现交互,因此,此时鼠标的焦点被ide的代码编辑界面获取,同时鼠标位于代码编辑界面中等待观众输入代码的位置。本实施例中,基于上述场景,可以不需要用户主动操作鼠标确定第三区域222左上角端点,降低了主播的操作的难度。
52.如图3和图9所示,在一个实施例中,所述方法还包括:步骤s602,主播端100的显示界面的第四区域130显示有分别与多个交互观众端200关联的第二图标131;所述交互观众端200为多个观众端200中向主播端100发送了交互请求的观众端200;步骤s604,响应于主播对键盘的选中操作,主播端100向与所述选中操作匹配的交互观众端200发送交互指令并在主播端100的显示界面的第二区域140显示代码接收区域141;步骤s606,响应于主播对键盘的选中操作,主播端100获取当前编程区域110画面的第一截图;步骤s608,主播端100将所述第一截图作为画布221并将基于代码接收区域141输入的代码实时获取的对象填充至所述画布221上的第三区域222形成实时的视频数据;所述第三区域222为主播端100响应于主播的选择操作确定的区域;主播端100响应于主播上的选择操作确定第三区域222的具体过程为:主播端100检测鼠标当前停留在第一截图上的坐标并将所述坐标作为第三区域222左上角端点的坐标;主播端100根据所述坐标以及预设宽度、预设高度确定所述第三区域222在所述画布221上的位置;其中,基于代码接收区域141输入的代码实时获取所述对象的具体过程包括:主播端100实时监控同步至所述代码接收区域141中的代码,根据检测到的代码中分行标识符的数量,确定与所述数量匹配的行数;主播端100获取所述对象,所述对象为包含与所述行数对应的色块的图片。
53.本实施例中,观众可以通过观众端200向主播端100发送交互请求来主动请求参与编写代码的交互,主播端100可以通过键盘上的按键选中对应的观众来进行编写代码的交互。可以理解的是,主播编写完当前阶段的代码并希望接下来的代码由观众来编写以便实现交互,因此,此时鼠标的焦点被ide的代码编辑界面获取,同时鼠标位于代码编辑界面中等待观众输入代码的位置。本实施例中,基于上述场景,可以不需要用户主动操作鼠标确定第三区域222左上角端点,降低了主播的操作的难度。
54.图10示出了一个实施例中计算机设备的内部结构图。该计算机设备具体可以是图
1中的服务器(或观众端200、主播端100)。如图10所示,该计算机设备包括通过系统总线连接的处理器、存储器、网络接口、输入装置和显示屏。其中,存储器包括非易失性存储介质和内存储器。该计算机设备的非易失性存储介质存储有操作系统,还可存储有计算机程序,该计算机程序被处理器执行时,可使得处理器实现多人连麦直播会议的视频数据生成方法。该内存储器中也可储存有计算机程序,该计算机程序被处理器执行时,可使得处理器执行多人连麦直播会议的视频数据生成方法。本领域技术人员可以理解,图10中示出的结构,仅仅是与本发明方案相关的部分结构的框图,并不构成对本发明方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
55.在一个实施例中,提供了一种电子设备,包括:存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时执行上述多人连麦直播会议的视频数据生成方法的步骤。此处多人连麦直播会议的视频数据生成方法的步骤可以是上述各个实施例的多人连麦直播会议的视频数据生成方法中的步骤。
56.在一个实施例中,提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机可执行指令,所述计算机可执行指令用于使计算机执行上述多人连麦直播会议的视频数据生成方法的步骤。此处多人连麦直播会议的视频数据生成方法的步骤可以是上述各个实施例的多人连麦直播会议的视频数据生成方法中的步骤。
57.在一个实施例中,提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现权如上述各实施例中的多人连麦直播方法。
58.本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一非易失性计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,本技术所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(rom)、可编程rom(prom)、电可编程rom(eprom)、电可擦除可编程rom(eeprom)或闪存。易失性存储器可包括随机存取存储器(ram)或者外部高速缓冲存储器。作为说明而非局限,ram以多种形式可得,诸如静态ram(sram)、动态ram(dram)、同步dram(sdram)、双数据率sdram(ddrsdram)、增强型sdram(esdram)、同步链路(synchlink)dram(sldra)、存储器总线(rambus)直接ram(rdra)、直接存储器总线动态ram(drdram)、以及存储器总线动态ram(rdram)等。
59.以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1