CN111580988B - 开放平台的实现方法、装置、存储介质和计算机设备 - Google Patents

开放平台的实现方法、装置、存储介质和计算机设备 Download PDF

Info

Publication number
CN111580988B
CN111580988B CN202010358477.2A CN202010358477A CN111580988B CN 111580988 B CN111580988 B CN 111580988B CN 202010358477 A CN202010358477 A CN 202010358477A CN 111580988 B CN111580988 B CN 111580988B
Authority
CN
China
Prior art keywords
open platform
independent process
data
client
end page
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202010358477.2A
Other languages
English (en)
Other versions
CN111580988A (zh
Inventor
杨剑飞
周浩
梁伟鑫
廖卓杰
麦志英
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Guangzhou Huya Technology Co Ltd
Original Assignee
Guangzhou Huya Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Guangzhou Huya Technology Co Ltd filed Critical Guangzhou Huya Technology Co Ltd
Priority to CN202010358477.2A priority Critical patent/CN111580988B/zh
Publication of CN111580988A publication Critical patent/CN111580988A/zh
Application granted granted Critical
Publication of CN111580988B publication Critical patent/CN111580988B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/544Buffers; Shared memory; Pipes
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D30/00Reducing energy consumption in communication networks
    • Y02D30/70Reducing energy consumption in communication networks in wireless communication networks

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

本申请涉及数据库安全技术领域,尤其涉及一种开放平台的实现方法、装置、存储介质和计算机设备,分别基于开放平台的相应开放接口连接独立进程和客户端;通过所述独立进程加载进程间通信SDK,并利用所述进程间通信SDK建立所述开放平台与所述独立进程之间的信息传输通道;通过所述信息传输通道获取所述独立进程的参数信息,并获取所述客户端的待传输数据;将所述参数信息添加到所述待传输数据中,并发送至所述开放平台的前端页面中进行展示;本方案中,当开放平台中的客户端需要与独立进程进行数据交互时,可通过开放平台将独立进程的参数信息与客户端中的待传输数据之间进行结合,扩展前端页面的展示内容,同时扩展了开放平台的核心能力。

Description

开放平台的实现方法、装置、存储介质和计算机设备
技术领域
本申请涉及开放平台搭建技术领域,尤其涉及一种开放平台的实现方法、装置、存储介质和计算机设备。
背景技术
开放平台(Open API)是服务型网站常见的一种应用,网站的服务商将自己的网站服务封装成一系列API(Application Programming Interface,应用编程接口)开放出去,供第三方开发者使用,这种行为就叫做开放网站的API,所开放的API就被称作Open API(开放平台)。
目前,在开放平台的搭建过程中,通常会以开放前端页面的方式让开发者参与进来,但该种开放方式会导致开发者能发挥的空间有限,特别是主播端在进行相关操作时,需要依赖独立进程的方式实现,如AI识别、3D游戏等。因此,现有的前端页面的开放形式单一,用户体验较差。
发明内容
本申请的目的旨在至少能解决上述的技术缺陷之一,特别是现有技术中在开放平台的搭建过程中,前端页面的开放形式单一,用户体验较差的技术缺陷。
本申请提供一种开放平台的实现方法,包括如下步骤:
分别基于开放平台的相应开放接口连接独立进程和客户端;
通过所述独立进程加载进程间通信SDK,并利用所述进程间通信SDK建立所述开放平台与所述独立进程之间的信息传输通道;
通过所述信息传输通道获取所述独立进程的参数信息,并获取所述客户端的待传输数据;
将所述参数信息添加到所述待传输数据中,并发送至所述开放平台的前端页面中进行展示。
在一个实施例中,所述分别基于开放平台的相应开放接口连接独立进程和客户端的步骤之前,还包括:
通过开放平台的前端页面调用接口下载预设的独立进程包;
将下载后的独立进程包解压到特定目录,并调用所述特定目录对应的接口启动独立进程。
在一个实施例中,通过所述信息传输通道获取所述独立进程的参数信息的步骤,包括:
通过所述信息传输通道将待获取数据发送至所述独立进程;
接收所述独立进程返回的与所述待获取数据对应的参数信息,其中,所述独立进程收到所述待获取数据时回调接口,并通过所述接口返回对应的参数信息。
在一个实施例中,所述参数信息包括所述独立进程的投屏参数;
将所述参数信息添加到所述视频流数据中,并发送至所述开放平台的前端页面中进行展示的步骤,包括:
通过所述前端页面添加投屏接口;
选择所述开放平台上提供的共享纹理指针的投屏方式,根据所述投屏参数将所述独立进程的画面通过所述投屏接口投送到所述客户端的待传输数据中,并发送至所述前端页面中进行展示。
在一个实施例中,将所述参数信息添加到所述视频流数据中,并发送至所述开放平台的前端页面中进行展示的步骤,还包括:
选择所述开放平台上提供的发送图像帧数据的投屏方式,根据所述投屏参数将所述独立进程的画面通过所述投屏接口投送到所述客户端的待传输数据中,并发送至所述前端页面中进行展示。
在一个实施例中,根据所述投屏参数将所述独立进程的画面通过所述投屏接口投送到所述客户端的待传输数据中的步骤之后,还包括:
当所述投屏参数发生变动时,通过所述独立进程发送通知至所述前端页面,使得所述前端页面根据所述独立进程发送的通知重新添加所述独立进程对应的投屏接口。
在一个实施例中,所述开放平台的实现方法,还包括:
分别基于所述开放平台的相应开放接口连接小程序和客户端,获取所述小程序的参数信息,并获取所述客户端的待传输数据;
将所述参数信息添加到所述待传输数据中,并发送至所述开放平台的前端页面中进行展示。
本申请还提供了一种开放平台的实现装置,包括:
进程准备模块,用于分别基于开放平台的相应开放接口连接独立进程和客户端;
通信连接模块,用于通过所述独立进程加载进程间通信SDK,并利用所述进程间通信SDK建立所述开放平台与所述独立进程之间的信息传输通道;
信息获取模块,用于通过所述信息传输通道获取所述独立进程的参数信息,并获取所述客户端的待传输数据;
投屏显示模块,用于将所述参数信息添加到所述待传输数据中,并发送至所述开放平台的前端页面中进行展示。
本申请还提供了一种存储介质,所述存储介质中存储有计算机可读指令,所述计算机可读指令被一个或多个处理器执行时,使得一个或多个处理器执行如上述实施例中任一项所述的开放平台的实现方法的步骤。
本申请还提供了一种计算机设备,所述计算机设备中存储有计算机可读指令,所述计算机可读指令被一个或多个处理器执行时,使得一个或多个处理器执行如上述实施例中任一项所述的开放平台的实现方法的步骤。
上述开放平台的实现方法、装置、存储介质和计算机设备,分别基于开放平台的相应开放接口连接独立进程和客户端;通过所述独立进程加载进程间通信SDK,并利用所述进程间通信SDK建立所述开放平台与所述独立进程之间的信息传输通道;通过所述信息传输通道获取所述独立进程的参数信息,并获取所述客户端的待传输数据;将所述参数信息添加到所述待传输数据中,并发送至所述开放平台的前端页面中进行展示。
本方案中,以前端页面加独立进程的方式扩展开放平台,独立进程通过进程间通信SDK建立与开放平台的CEF进程之间之间的数据信息传输,当开放平台中的客户端需要与独立进程进行数据交互时,可通过开放平台中的CEF进程获取独立进程中的参数信息,并将该参数信息与客户端中的待传输数据之间进行结合,扩展前端页面的展示内容,使得前端页面的开放形式不再单一,提升用户体验。
本申请附加的方面和优点将在下面的描述中部分给出,这些将从下面的描述中变得明显,或通过本申请的实践了解到。
附图说明
本申请上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:
图1是本申请实施例的开放平台的实现方法的应用环境示意图;
图2为一个实施例的开放平台的实现方法流程示意图;
图3为一个实施例的独立进程画面演示示意图;
图4为一个实施例的小程序画面演示示意图;
图5是一个实施例的开放平台的实现装置结构示意图;
图6为一个实施例的计算机设备的内部结构示意图。
具体实施方式
下面详细描述本申请的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本申请,而不能解释为对本申请的限制。
本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本申请的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组合。
本技术领域技术人员可以理解,除非另外定义,这里使用的所有术语(包括技术术语和科学术语),具有与本申请所属领域中的普通技术人员的一般理解相同的意义。还应该理解的是,诸如通用字典中定义的那些术语,应该被理解为具有与现有技术的上下文中的意义一致的意义,并且除非像本申请实施例中一样被特定定义,否则不会用理想化或过于正式的含义来解释。
开放平台(Open API)是服务型网站常见的一种应用,网站的服务商将自己的网站服务封装成一系列API(Application Programming Interface,应用编程接口)开放出去,供第三方开发者使用,这种行为就叫做开放网站的API,所开放的API就被称作Open API(开放平台)。
目前,在开放平台的搭建过程中,通常会以开放前端页面的方式让开发者参与进来,但该种开放方式会导致开发者能发挥的空间有限,特别是主播端在进行相关操作时,需要依赖独立进程的方式实现,如AI识别、3D游戏等。因此,现有的前端页面的开放形式单一,用户体验较差。
因此,本申请提出下述实施方式,以解决在开放平台的搭建过程中,前端页面的开放形式单一,用户体验较差的技术缺陷。
参考图1所示,图1是本申请实施例的开放平台的实现方法的应用环境示意图;本实施例中,本申请的技术方案可以通过进程间通信SDK与开放平台中的CEF进程建立通信连接实现,如图1中,Web页和SDK可看成一个整体,即前端页面,CEF进程呈现前端页面,并通过JS调用实现前端页面与CEF进程的双向通信;独立进程通过进程间通信SDK与CEF进程建立通信连接,由CEF进程双向透传数据实现前端页面与独立进程交互的功能,其中,进程间通信SDK可以是IPC SDK,该IPC SDK能够提供两种通信方式,一是使用管道传递字符串数据,二是使用共享内存传递图像帧数据。
在一个实施例中,如图2所示,图2为一个实施例的开放平台的实现方法流程示意图,本实施例中提供了一种开放平台的实现方法,可以包括如下步骤:
S110:分别基于开放平台的相应开放接口连接独立进程和客户端。
目前,在开放平台中,开发者对于前端页面的扩展形式更多地局限于利用CEF进程实现网页扩展,如在开放平台中添加小程序等,该小程序依赖于开放平台,不能独立运行,其在开放平台中的开放形式也比较单一,比如,用户在开放平台中的某一客户端使用小程序的过程中,只能调用该小程序实现相关网页的浏览操作,若用户需要通过开放平台中的CEF进程调用第三方独立EXE的相关信息时,无法直接进行调用。
因此,本申请中,开发者为了扩展开放平台中前端页面的开放形式,能够让更多独立进程与开放平台之间建立通信,实现开放平台中的前端页面能够显示更多扩展内容,首先需要CEF进程基于开放平台的相应开放接口连接独立进程和客户端,以便于进一步构建开放平台中的CEF进程与独立进程之间的通信,实现客户端与独立进程之间的信息交互。
需要说明的是,在开放平台中,CEF进程采用多进程架构呈现前端页面,并通过JS调用实现前端页面与CEF进程的双向通信;独立进程通过进程间通信SDK与CEF进程之间建立通信连接,由CEF进程双向透传数据实现前端页面与独立进程之间的交互功能。
可以理解的是,这里的开放平台指的是把网站的服务封装成一系列计算机易识别的数据接口开放出去,供第三方开发者使用,这种行为就叫做Open API,提供开放API的平台本身就被称为开放平台,本申请中的开放平台包括但不限定于视频平台中的直播平台,如虎牙直播等;这里的独立进程指的是能够独立运行的程序,如AI识别、3D游戏、音视频制作等。
这里的小程序是一种不需要下载安装即可使用的应用,用户扫一扫或搜一下即可打开应用,且只能够在某些开放平台上使用的APP或网站。其与H5网页之间运行环境以及用户体验等方面存在区别,例如,微信小程序,其运行环境独立,尽管同样使用用HTML+CSS+JS开发,但配合微信的解析器最终渲染出来的是原生组件的效果。另外,不同平台之间的小程序可以通过封装和程序进行转换,从而实现一套逻辑代码运行在两个平台。
S120:通过所述独立进程加载进程间通信SDK,并利用所述进程间通信SDK建立所述开放平台与所述独立进程之间的信息传输通道。
本步骤中,当通过步骤S110中CEF进程基于开放平台的相应开放接口连接独立进程和客户端后,可通过该独立进程加载进程间通信SDK,并利用该进程间通信SDK建立与开放平台之间的信息传输通道。
可以理解的是,这里利用该进程间通信SDK建立与开放平台之间的信息传输通道,主要是通过开放平台中的CEF进程实现,开放平台的前端页面的呈现需要通过CEF进行渲染,并通过JS调用实现前端页面与CEF进程的双向通信,而CEF进程无法直接与第三方独立EXE之间进行通信,需要通过进程间通信SDK实现独立进程与CEF进程之间的信息传输。
因此,当独立进程需要与客户端实现信息交互时,首先需要加载独立进程的进程间通信SDK,利用该进程间通信SDK建立与CEF进程之间的通信连接,进而由CEF进程双向传透数据实现前端页面与进程间通信SDK交互的功能。
举例来说,当利用3D游戏中加载的通信SDK建立与直播平台的CEF进程之间的通信后,主播通过客户端进入该直播平台的某一直播间并调用该3D游戏时,即可通过该直播间对应的前端页面与CEF进程以及CEF进程与进程间通信SDK之间的通信连接实现双向数据传输。
当前端页面能够与独立进程之间建立通信时,能够极大地扩展前端页面的开放形式以及开放空间,能够结合更多的内容进行展示、操作。
需要说明的是,这里的进程间通信SDK指的是能够提供两种通信方式的独立SDK,一种是使用管道传递字符串数据,另一种是使用共享内存传递图像帧数据,包括但不限定于IPC SDK,其中,IPC(Inter-Process Communication)指的是进程间通信。
S130:通过所述信息传输通道获取所述独立进程的参数信息,并获取所述客户端的待传输数据。
本步骤中,当通过步骤S120中利用进程间通信SDK建立与开放平台的CEF进程之间的通信连接后,可通过信息传输通道获取独立进程的相关参数信息,另外,还可通过CEF进程获取客户端的待传输数据,实现独立进程与前端页面之间的数据传输。
举例来说,当客户端为直播端时,CEF进程获取到的客户端的待传输数据可以是视频流数据,如主播在直播过程中产生的相关视频数据等。
可以理解的是,这里获取的独立进程的参数信息包括但不限定于独立进程中运行的日志数据、图像数据等。
S140:将所述参数信息添加到所述待传输数据中,并发送至所述开放平台的前端页面中进行展示。
本步骤中,通过上述步骤S130可通过CEF进程与独立进程之间的信息传输通道获取独立进程的参数信息,并且,CEF进程还可获取客户端的待传输数据,将独立进程的参数信息添加到待传输数据中,即可实现CEF进程与独立进程之间的双向数据传透,并由CEF进程将添加参数信息后的待传输数据渲染到前端页面中进行显示。
具体地,当开放平台为直播平台时,CEF进程需要将独立进程中的参数信息添加到客户端的视频流数据中,此时可调用投屏接口,将独立进程的参数信息通过该投屏接口添加至视频流数据中,以便在客户端的显示页面中同时显示视频流数据和独立进程的相关信息。
在一个示例中,当开放平台为视频平台时,其中,该视频平台为直播平台,由于开发者已通过进程间通信SDK实现CEF进程与独立进程之间的双向传透数据,因此,当主播通过直播平台中的客户端进行直播时,可调用该独立进程的画面至当前直播间内,以增加前端页面的表现形式,提高主播视频的观看率。
上述开放平台的实现方法,分别基于开放平台的相应开放接口连接独立进程和客户端;通过所述独立进程加载进程间通信SDK,并利用所述进程间通信SDK建立所述开放平台与所述独立进程之间的信息传输通道;通过所述信息传输通道获取所述独立进程的参数信息,并获取所述客户端的待传输数据;将所述参数信息添加到所述待传输数据中,并发送至所述开放平台的前端页面中进行展示。
本方案中,以前端页面加独立进程的方式扩展开放平台,独立进程通过进程间通信SDK建立与开放平台之间的数据信息传输,当开放平台中的客户端需要与独立进程进行数据交互时,可通过开放平台获取独立进程中的参数信息,并将该参数信息与客户端中的待传输数据之间进行结合,扩展前端页面的展示内容;如开放平台为视频平台时,其中,该视频平台为直播平台,当直播平台中下载有预设的独立进程,例如,AI识别、3D游戏等,主播在直播客户端在该直播平台的某直播间进行直播时,可通过前端页面调用该独立进程,以使该独立进程的画面投送到当前直播的视频流中,即显示在当前直播间内,增加主播与用户之间的互动性,提升用户体验。
在一个实施例中,步骤S110中分别基于开放平台的相应开放接口连接独立进程和客户端的步骤之前,还可以包括:
S101:通过开放平台的前端页面调用接口下载预设的独立进程包;
S102:将下载后的独立进程包解压到特定目录,并调用所述特定目录对应的接口启动独立进程。
本实施例中,在CEF进程调取独立进程中的相关参数信息之前,可通过前端页面调用接口下载独立进程包,开放平台负责将独立进程包解压到特定目录下,该特定目录可以是虎牙PC客户端中的某一指定目录,例如:(%appdata%\HuyaPc\presenter\business\yygamelive\appletRes)。
其中,前端页面调用接口下载独立进程包的过程,可通过URL传值,根据独立进程包的下载地址以及md5值查找相应的独立进程包,并在查找到对应的独立进程包后查看下载资源任务是否成功,若失败,可检查独立进程包的下载地址以及md5值是否正确,重新添加下载资源任务。
当开放平台将独立进程包解压至特定目录下后,前端页面可调用相应接口启动独立进程,如上述下载独立进程包时获取的md5值,可根据该md5值启动相应的独立进程;若失败,可检查该md5值是否正确,重新进行拉起操作。
当独立进程启动后,即可通过加载进程间通信SDK,实现与前端页面的通信。
在一个实施例中,步骤S130中通过所述信息传输通道获取所述独立进程的参数信息的步骤,可以包括:
S131:通过所述信息传输通道将待获取数据发送至所述独立进程;
S132:接收所述独立进程返回的与所述待获取数据对应的参数信息,其中,所述独立进程收到所述待获取数据时回调接口,并通过所述接口返回对应的参数信息。
本实施例中,当建立CEF进程与独立进程之间的信息传输通道后,可通过信息传输通道将客户端接口结构体发送至独立进程,使得独立进程在接收到接口结构体后,回调接口结构体,并创建客户端实例,以连接服务器,并在断开连接后,释放客户端实例。
在连接到服务器后,独立进程向服务器异步发送字符串数据接口以及图像帧数据;并通过服务器下发至开放平台。
当前端页面接收到独立进程发送的字符串数据接口以及图像帧数据后,可调用该字符串数据接口,并指示需要获取的数据,独立进程侧收到数据时回调接口,以将对应的数据传输至前端页面。
在一个实施例中,所述参数信息可以包括所述独立进程的投屏参数;步骤S140中将所述参数信息添加到所述待传输数据中,并发送至所述开放平台的前端页面中进行展示的步骤,可以包括:
S141:通过所述前端页面添加投屏接口;
S142:选择所述开放平台上提供的共享纹理指针的投屏方式,根据所述投屏参数将所述独立进程的画面通过所述投屏接口投送到所述客户端的待传输数据中,并发送至所述前端页面中进行展示。
本实施例中,当开放平台为视频平台中的直播平台时,可通过前端页面添加投屏接口,客户端中会出现背景透明的白板,此时可将独立进程的投屏参数通过该投屏接口投送到客户端的待传输数据,如视频流数据中,即可在客户端当前的显示画面中通过白板显示相应的独立进程的画面。
可以理解的是,这里的背景透明的白板在调用前可设置相应的显示比例等,以便在客户端中按比例呈现相应的大小,另外,还可设置该白板在客户端中显示的具体位置,当不需要在客户端中显示独立进程的画面时,可撤销投屏,删除支持背景透明的白板操作。
进一步地,该独立进程的投屏参数包括但不限定于纹理的位置、宽度、高度、共享纹理句柄等,通过该投屏参数,即可将独立进程的画面对应到白板中,如获取到独立进程的画面的高度和宽度后,即可在白板中显示相应缩放比例的独立进程的画面。
需要说明的是,这里的投屏指的是一种将进程的画面添加到视频流中的能力,开放平台内部实现投屏的方式有两种,一种是使用共享纹理指针,一种是发送图像帧数据。
当使用共享纹理指针的方式将独立进程的画面投送到视频流中时,即表示使用共享内存的方式传递图像帧数据,前端页面通过共享纹理指针对共享内存中的数据进行渲染,即可将共享内存中的图像帧数据由投屏接口投送至视频流数据中。
如图3所示,图3为一个实施例的独立进程画面演示示意图;图3中,当在前端页面上添加3D游戏对应的投屏接口后,可利用该投屏接口将该3D游戏的画面投屏至前端页面中,如将3D游戏的画面投屏到直播平台的某一直播间在直播过程中产生的视频流时,即可得到图3所示界面。
具体地,当开放平台为视频平台中的直播平台时,可通过该直播平台的前端页面下载3D游戏,该3D游戏解压至特定目录,如显卡中,当前端页面需要调用该独立进程时,可根据共享纹理指针查找该3D游戏对应的显卡位置,并从该显卡中渲染出该3D游戏运行时的数据,即可在直播过程中将该3D游戏运行时的数据投送到视频流中,以便客户端进行观看。
在一个实施例中,步骤S140中将所述参数信息添加到所述视频流数据中,并发送至所述开放平台的前端页面中进行展示的步骤,还可以包括:
S143:选择所述开放平台上提供的发送图像帧数据的投屏方式,根据所述投屏参数将所述独立进程的画面通过所述投屏接口投送到所述客户端的待传输数据中,并发送至所述前端页面中进行展示。
本实施例中,当开放平台为视频平台中的直播平台时,将独立进程画面投送至直播端的视频流中的方式可以包括发送图像帧数据的方式,前端页面与独立进程通信时,拿到独立进程的画面的投屏参数后,该投屏参数可以包括纹理的位置、宽度、高度,其中,共享纹理的参数置空,前端页面调用投屏接口添加背景透明的白板后,可将独立进程的投屏参数通过发送图像帧数据的方式由该投屏接口投送到客户端的待传输数据,如视频流数据中,这样,便可在客户端当前的显示画面中通过白板显示相应的独立进程的画面。
其中,发送图像帧数据的方式指的是CEF进程通过进程间通信SDK直接获取的由独立进程侧发送的图像帧数据,当确定独立进程的投屏参数以及添加白板后,可通过投屏接口将独立进程侧发送的图像帧数据一帧帧的投送到客户端的视频流数据中。
在一个实施例中,步骤S142或步骤S143中根据所述投屏参数将所述独立进程的画面通过所述投屏接口投送到所述客户端的待传输数据中的步骤之后,还可以包括:
S144:当所述投屏参数发生变动时,通过所述独立进程发送通知至所述前端页面,使得所述前端页面根据所述独立进程发送的通知重新添加所述独立进程对应的投屏接口。
本实施例中,当独立进程的投屏参数,如纹理的位置、高度、宽度、共享纹理句柄发生变动时,独立进程可主动发送通知给前端页面,前端页面接收到该变动通知后,重新添加投屏接口,该投屏接口与前端页面在调用投屏前端接口前添加的投屏接口一致。
需要说明的是,开放平台会自动检测添加投屏接口的调用,如果是第一次调用就会添加白板,如果重复调用的话,会修改原投屏接口中白板参数。
进一步地,当接收到开放平台上检测到的利用共享纹理指针的投屏方式失败时,原因可能是该独立进程对应的显卡与前端页面进行渲染操作时对应的显卡不一致。
此时,可将该投屏失败的通知发送至前端页面,当前端页面接收到该通知后,可显示相关页面进行投屏方式切换确认,并在确认切换后,将该切换通知发送至独立进程,以便独立进程回调接口并通过服务器发送图像帧数据至前端页面。
在一个实施例中,如图4所示,图4为一个实施例的小程序画面演示示意图;所述开放平台的实现方法,还可以包括:
S150:分别基于所述开放平台的相应开放接口连接小程序和客户端,获取所述小程序的参数信息,并获取所述客户端的视频流数据;
S151:将所述参数信息添加到所述视频流数据中,并发送至所述开放平台的前端页面中进行展示。
本申请中,不仅可以将独立进程的画面投屏到前端页面,还可将开放平台中的小程序的页面投屏到前端页面中。
首先需要在该开放平台,如直播平台中添加小程序,通过某一直播间调用接口启动该小程序,并在前端页面中添加该小程序对应的投屏接口。
当主播在直播平台的客户端进行直播时,需要使用该小程序,可调用该投屏接口,在当前直播间中添加背影透明的白板,并获取小程序的参数信息,如投屏参数等,通过该投屏接口将小程序的投屏参数投送到客户端的视频流中,即可在该直播间中显示图4所示小程序的画面。
在一个实施例中,如图5所示,图5为一个实施例的开放平台的实现装置结构示意图,本实施例中提供了一种开放平台的实现装置,其包括:进程准备模块210、通信连接模块220、信息获取模块230、投屏显示模块240,其中:
进程准备模块210:用于分别基于开放平台的相应开放接口连接独立进程和客户端。
目前,在开放平台中,开发者对于前端页面的扩展形式更多地局限于利用CEF进程实现网页扩展,如在开放平台中添加小程序等,该小程序依赖于开放平台,不能独立运行,其在开放平台中的开放形式也比较单一,比如,用户在开放平台中的某一客户端使用小程序的过程中,只能调用该小程序实现相关网页的浏览操作,若用户需要通过开放平台中的CEF进程调用第三方独立EXE的相关信息时,无法直接进行调用。
因此,本申请中,开发者为了扩展开放平台中前端页面的开放形式,能够让更多独立进程与开放平台之间建立通信,实现开放平台中的前端页面能够显示更多扩展内容,首先需要CEF进程基于开放平台的相应开放接口连接独立进程和客户端,以便于进一步构建开放平台中的CEF进程与独立进程之间的通信,实现客户端与独立进程之间的信息交互。
需要说明的是,在开放平台中,CEF进程采用多进程架构呈现前端页面,并通过JS调用实现前端页面与CEF进程的双向通信;独立进程通过进程间通信SDK与CEF进程之间建立通信连接,由CEF进程双向透传数据实现前端页面与独立进程之间的交互功能。
可以理解的是,这里的开放平台指的是把网站的服务封装成一系列计算机易识别的数据接口开放出去,供第三方开发者使用,这种行为就叫做Open API,提供开放API的平台本身就被称为开放平台,本申请中的开放平台包括但不限定于视频平台中的直播平台,如虎牙直播等;这里的独立进程指的是能够独立运行的程序,如AI识别、3D游戏、音视频制作等。
这里的小程序是一种不需要下载安装即可使用的应用,用户扫一扫或搜一下即可打开应用,且只能够在某些开放平台上使用的APP或网站。其与H5网页之间运行环境以及用户体验等方面存在区别,例如,微信小程序,其运行环境独立,尽管同样使用用HTML+CSS+JS开发,但配合微信的解析器最终渲染出来的是原生组件的效果。另外,不同平台之间的小程序可以通过封装和程序进行转换,从而实现一套逻辑代码运行在两个平台。
通信连接模块220:用于通过所述独立进程加载进程间通信SDK,并利用所述进程间通信SDK建立所述开放平台与所述独立进程之间的信息传输通道。
本模块中,当通过进程准备模块210中CEF进程基于开放平台的相应开放接口连接独立进程和客户端后,可通过该独立进程加载进程间通信SDK,并利用该进程间通信SDK建立与开放平台之间的信息传输通道。
可以理解的是,这里利用该进程间通信SDK建立与开放平台之间的信息传输通道,主要是通过开放平台中的CEF进程实现,开放平台的前端页面的呈现需要通过CEF进行渲染,并通过JS调用实现前端页面与CEF进程的双向通信,而CEF进程无法直接与第三方独立EXE之间进行通信,需要通过进程间通信SDK实现独立进程与CEF进程之间的信息传输。
因此,当独立进程需要与客户端实现信息交互时,首先需要加载独立进程的进程间通信SDK,利用该进程间通信SDK建立与CEF进程之间的通信连接,进而由CEF进程双向传透数据实现前端页面与进程间通信SDK交互的功能。
举例来说,当利用3D游戏中加载的通信SDK建立与直播平台的CEF进程之间的通信后,主播通过客户端进入该直播平台的某一直播间并调用该3D游戏时,即可通过该直播间对应的前端页面与CEF进程以及CEF进程与进程间通信SDK之间的通信连接实现双向数据传输。
当前端页面能够与独立进程之间建立通信时,能够极大地扩展前端页面的开放形式以及开放空间,能够结合更多的内容进行展示、操作。
需要说明的是,这里的进程间通信SDK指的是能够提供两种通信方式的独立SDK,一种是使用管道传递字符串数据,另一种是使用共享内存传递图像帧数据,包括但不限定于IPC SDK,其中,IPC(Inter-Process Communication)指的是进程间通信。
信息获取模块230:用于通过所述信息传输通道获取所述独立进程的参数信息,并获取所述客户端的待传输数据。
本模块中,当通过通信连接模块220中利用进程间通信SDK建立与开放平台的CEF进程之间的通信连接后,可通过信息传输通道获取独立进程的相关参数信息,另外,还可通过CEF进程获取客户端的待传输数据,实现独立进程与前端页面之间的数据传输。
举例来说,当客户端为直播端时,CEF进程获取到的客户端的待传输数据可以是视频流数据,如主播在直播过程中产生的相关视频数据等。
可以理解的是,这里获取的独立进程的参数信息包括但不限定于独立进程中运行的日志数据、图像数据等。
投屏显示模块240:用于将所述参数信息添加到所述待传输数据中,并发送至所述开放平台的前端页面中进行展示。
本模块中,通过上述信息获取模块230可通过CEF进程与独立进程之间的信息传输通道获取独立进程的参数信息,并且,CEF进程还可获取客户端的待传输数据,将独立进程的参数信息添加到待传输数据中,即可实现CEF进程与独立进程之间的双向数据传透,并由CEF进程将添加参数信息后的待传输数据渲染到前端页面中进行显示。
具体地,开放平台为直播平台时,CEF进程需要将独立进程中的参数信息添加到客户端的视频流数据中,此时可调用投屏接口,将独立进程的参数信息通过该投屏接口添加至视频流数据中,以便在客户端的显示页面中同时显示视频流数据和独立进程的相关信息。
在一个示例中,当开放平台为视频平台时,其中,该视频平台为直播平台,由于开发者已通过进程间通信SDK实现CEF进程与独立进程之间的双向传透数据,因此,当主播通过直播平台中的客户端进行直播时,可调用该独立进程的画面至当前直播间内,以增加前端页面的表现形式,提高主播视频的观看率。
上述开放平台的实现装置,分别基于开放平台的相应开放接口连接独立进程和客户端;通过所述独立进程加载进程间通信SDK,并利用所述进程间通信SDK建立所述开放平台与所述独立进程之间的信息传输通道;通过所述信息传输通道获取所述独立进程的参数信息,并获取所述客户端的待传输数据;将所述参数信息添加到所述待传输数据中,并发送至所述开放平台的前端页面中进行展示。
本方案中,以前端页面加独立进程的方式扩展开放平台,独立进程通过进程间通信SDK建立与开放平台之间的数据信息传输,当开放平台中的客户端需要与独立进程进行数据交互时,可通过开放平台获取独立进程中的参数信息,并将该参数信息与客户端中的待传输数据之间进行结合,扩展前端页面的展示内容;如开放平台为视频平台时,其中,该视频平台为直播平台,当直播平台中下载有预设的独立进程,例如,AI识别、3D游戏等,主播在直播客户端在该直播平台的某直播间进行直播时,可通过前端页面调用该独立进程,以使该独立进程的画面投送到当前直播的视频流中,即显示在当前直播间内,增加主播与用户之间的互动性,提升用户体验。
关于开放平台的实现装置的具体限定可以参见上文中对于开放平台的实现方法的限定,在此不再赘述。上述开放平台的实现装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于终端设备中的处理器中,也可以以软件形式存储于终端设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种存储介质,所述存储介质中存储有计算机可读指令,所述计算机可读指令被一个或多个处理器执行时,使得一个或多个处理器执行如上述实施例中任一项所述的开放平台的实现方法的步骤。
在一个实施例中,提供了一种计算机设备,所述计算机设备中存储有计算机可读指令,所述计算机可读指令被一个或多个处理器执行时,使得一个或多个处理器执行如上述实施例中任一项所述的开放平台的实现方法的步骤。
图6是一种计算机设备的内部结构示意图,该计算机设备300可以被提供为一服务器。参照图6,计算机设备300包括处理组件302,其进一步包括一个或多个处理器,以及由存储器301所代表的存储器资源,用于存储可由处理组件302的执行的指令,例如应用程序。存储器301中存储的应用程序可以包括一个或一个以上的每一个对应于一组指令的模块。此外,处理组件302被配置为执行指令,以执行上述任意实施例的数据库连接方法。
计算机设备300还可以包括一个电源组件303被配置为执行计算机设备300的电源管理,一个有线或无线网络接口304被配置为将计算机设备300连接到网络,和一个输入输出(I/O)接口305。计算机设备300可以操作基于存储在存储器301的操作系统,例如WindowsServer TM、Mac OS XTM、Unix TM、Linux TM、Free BSDTM或类似。
本领域技术人员可以理解,图6中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
应该理解的是,虽然附图的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,其可以以其他的顺序执行。而且,附图的流程图中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,其执行顺序也不必然是依次进行,而是可以与其他步骤或者其他步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
以上所述仅是本申请的部分实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本申请的保护范围。

Claims (9)

1.一种开放平台的实现方法,其特征在于,包括如下步骤:
分别基于开放平台的相应开放接口连接独立进程和客户端;
通过所述独立进程加载进程间通信SDK,并利用所述进程间通信SDK建立所述开放平台与所述独立进程之间的信息传输通道;
通过所述信息传输通道获取所述独立进程的参数信息,并获取所述客户端的待传输数据;所述参数信息包括所述独立进程的投屏参数;
将所述参数信息添加到所述待传输数据中,并发送至所述开放平台的前端页面中进行展示,包括:通过所述前端页面添加投屏接口;选择所述开放平台上提供的共享纹理指针的投屏方式,根据所述投屏参数将所述独立进程的画面通过所述投屏接口投送到所述客户端的待传输数据中,并发送至所述前端页面中进行展示。
2.根据权利要求1所述的开放平台的实现方法,其特征在于,所述分别基于开放平台的相应开放接口连接独立进程和客户端的步骤之前,还包括:
通过开放平台的前端页面调用接口下载预设的独立进程包;
将下载后的独立进程包解压到特定目录,并调用所述特定目录对应的接口启动独立进程。
3.根据权利要求1所述的开放平台的实现方法,其特征在于,通过所述信息传输通道获取所述独立进程的参数信息的步骤,包括:
通过所述信息传输通道将待获取数据发送至所述独立进程;
接收所述独立进程返回的与所述待获取数据对应的参数信息,其中,所述独立进程收到所述待获取数据时回调接口,并通过所述接口返回对应的参数信息。
4.根据权利要求1所述的开放平台的实现方法,其特征在于,将所述参数信息添加到所述待传输数据中,并发送至所述开放平台的前端页面中进行展示的步骤,还包括:
选择所述开放平台上提供的发送图像帧数据的投屏方式,根据所述投屏参数将所述独立进程的画面通过所述投屏接口投送到所述客户端的待传输数据中,并发送至所述前端页面中进行展示。
5.根据权利要求1所述的开放平台的实现方法,其特征在于,根据所述投屏参数将所述独立进程的画面通过所述投屏接口投送到所述客户端的待传输数据中的步骤之后,还包括:
当所述投屏参数发生变动时,通过所述独立进程发送通知至所述前端页面,使得所述前端页面根据所述独立进程发送的通知重新添加所述独立进程对应的投屏接口。
6.根据权利要求1所述的开放平台的实现方法,其特征在于,还包括:
分别基于所述开放平台的相应开放接口连接小程序和客户端,获取所述小程序的参数信息,并获取所述客户端的待传输数据;
将所述参数信息添加到所述待传输数据中,并发送至所述开放平台的前端页面中进行展示。
7.一种开放平台的实现装置,其特征在于,包括:
进程准备模块,用于分别基于开放平台的相应开放接口连接独立进程和客户端;
通信连接模块,用于通过所述独立进程加载进程间通信SDK,并利用所述进程间通信SDK建立所述开放平台与所述独立进程之间的信息传输通道;
信息获取模块,用于通过所述信息传输通道获取所述独立进程的参数信息,并获取所述客户端的待传输数据;所述参数信息包括所述独立进程的投屏参数;
投屏显示模块,用于将所述参数信息添加到所述待传输数据中,并发送至所述开放平台的前端页面中进行展示,包括:通过所述前端页面添加投屏接口;选择所述开放平台上提供的共享纹理指针的投屏方式,根据所述投屏参数将所述独立进程的画面通过所述投屏接口投送到所述客户端的待传输数据中,并发送至所述前端页面中进行展示。
8.一种存储介质,其特征在于:所述存储介质中存储有计算机可读指令,所述计算机可读指令被一个或多个处理器执行时,使得一个或多个处理器执行如权利要求1至6中任一项所述的开放平台的实现方法的步骤。
9.一种计算机设备,其特征在于:所述计算机设备中存储有计算机可读指令,所述计算机可读指令被一个或多个处理器执行时,使得一个或多个处理器执行如权利要求1至6中任一项所述的开放平台的实现方法的步骤。
CN202010358477.2A 2020-04-29 2020-04-29 开放平台的实现方法、装置、存储介质和计算机设备 Active CN111580988B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010358477.2A CN111580988B (zh) 2020-04-29 2020-04-29 开放平台的实现方法、装置、存储介质和计算机设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010358477.2A CN111580988B (zh) 2020-04-29 2020-04-29 开放平台的实现方法、装置、存储介质和计算机设备

Publications (2)

Publication Number Publication Date
CN111580988A CN111580988A (zh) 2020-08-25
CN111580988B true CN111580988B (zh) 2023-09-05

Family

ID=72126226

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010358477.2A Active CN111580988B (zh) 2020-04-29 2020-04-29 开放平台的实现方法、装置、存储介质和计算机设备

Country Status (1)

Country Link
CN (1) CN111580988B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112929682B (zh) * 2021-01-21 2023-03-24 广州虎牙科技有限公司 对图像背景进行透明处理的方法、装置、系统及电子设备
CN112948824B (zh) * 2021-03-31 2022-04-26 支付宝(杭州)信息技术有限公司 一种基于隐私保护的程序通信方法、装置及设备
CN114338151A (zh) * 2021-12-28 2022-04-12 中国建设银行股份有限公司 基于开放平台移动端sdk与原生应用的安全通信方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103546358A (zh) * 2012-07-09 2014-01-29 腾讯科技(深圳)有限公司 面向第三方应用的即时通讯方法及系统
CN103729224A (zh) * 2013-12-30 2014-04-16 广州华多网络科技有限公司 基于开放平台的应用加载方法及装置
CN104735030A (zh) * 2013-12-23 2015-06-24 广州华多网络科技有限公司 应用开启方法、装置和系统
WO2017052060A1 (ko) * 2015-09-21 2017-03-30 주식회사 레인보우 계층적 아키텍처를 갖는 실시간 디바이스 제어 시스템 및 이를 이용한 실시간 로봇 제어 시스템

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103546358A (zh) * 2012-07-09 2014-01-29 腾讯科技(深圳)有限公司 面向第三方应用的即时通讯方法及系统
CN104735030A (zh) * 2013-12-23 2015-06-24 广州华多网络科技有限公司 应用开启方法、装置和系统
CN103729224A (zh) * 2013-12-30 2014-04-16 广州华多网络科技有限公司 基于开放平台的应用加载方法及装置
WO2017052060A1 (ko) * 2015-09-21 2017-03-30 주식회사 레인보우 계층적 아키텍처를 갖는 실시간 디바이스 제어 시스템 및 이를 이용한 실시간 로봇 제어 시스템

Also Published As

Publication number Publication date
CN111580988A (zh) 2020-08-25

Similar Documents

Publication Publication Date Title
CN111580988B (zh) 开放平台的实现方法、装置、存储介质和计算机设备
CN111882626A (zh) 图像处理方法、装置、服务器及介质
CN113542757B (zh) 云应用的图像传输方法、装置、服务器及存储介质
US20230215076A1 (en) Image frame display method, apparatus, device, storage medium, and program product
CN112181677B (zh) 业务的处理方法和装置、存储介质、电子装置
EP4210053A1 (en) Application program control method and apparatus, electronic device, and storage medium
CN113784049B (zh) 安卓系统虚拟机的摄像头调用方法、电子设备和存储介质
CN105404455A (zh) 利用终端对移动终端实现截屏的方法及装置
CN115065684B (zh) 数据处理方法、装置、设备以及介质
CN112486620A (zh) 跨进程离屏渲染方法、装置、电子设备及存储介质
CN111338829B (zh) 远程过程调用服务的调用方法及装置
CN115292020A (zh) 一种数据处理方法、装置、设备以及介质
CN108933947B (zh) 弹幕显示方法及装置
CN114302176B (zh) 视频播放方法及装置
US9374413B2 (en) Client terminal, server, and distributed processing method
CN111767271B (zh) 数据处理方法及装置
CN112882849A (zh) 云应用中的信息推荐方法、装置、系统、设备及存储介质
CN111766992B (zh) 信息显示方法、装置、电子设备及存储介质
WO2009102522A1 (en) Efficient compression of applications
CN110990109B (zh) 一种拼接屏回显方法、终端、系统及存储介质
CN115686641A (zh) 开机控制方法及装置、电子设备、计算机可读存储介质
CN1188790C (zh) 调制解调器的控制方法及设备
EP2477380A1 (en) Apparatus and method for providing and executing content
CN103457937A (zh) 共享文件的图片浏览方法及系统
CN115516431A (zh) 一种智能摄像头的测试方法及装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant