CN114268759A - 一种数据处理方法、装置、计算机设备及存储介质 - Google Patents
一种数据处理方法、装置、计算机设备及存储介质 Download PDFInfo
- Publication number
- CN114268759A CN114268759A CN202010966840.9A CN202010966840A CN114268759A CN 114268759 A CN114268759 A CN 114268759A CN 202010966840 A CN202010966840 A CN 202010966840A CN 114268759 A CN114268759 A CN 114268759A
- Authority
- CN
- China
- Prior art keywords
- data
- sub
- main process
- user
- communication
- 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.)
- Pending
Links
Images
Landscapes
- Information Transfer Between Computers (AREA)
Abstract
本申请实施例公开了一种数据处理方法、装置、计算机设备及存储介质,该方法包括:响应针对适配客户端的触发操作,启动适配客户端中的主进程以及主进程对应的第一子进程;主进程具备适配客户端的第一开发框架的功能;第一子进程具备适配客户端的第二开发框架的功能;第一开发框架不同于第二开发框架;基于主进程与第一子进程之间的通信策略,建立第一子进程与主进程之间的第一数据传输通道;通过第一数据传输通道接收第一子进程所采集到的第一多媒体数据,通过主进程对第一多媒体数据进行数据处理,将数据处理后的第一多媒体数据上传至适配客户端对应的服务器。采用本申请实施例,可以提高多媒体数据采集的实时性。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及一种数据处理方法、装置、计算机设备及存储介质。
背景技术
目前,计算机设备可以通过一种移植技术(例如,Mac Catalyet技术)将原平台(例如,第一平台,该第一平台可以为ios平台)下的应用开发框架(例如,UIKit框架)移植到另一平台(例如,第二平台,该第二平台可以为Mac平台),使得原ios平台上基于UIKit框架开发的应用客户端经过适配之后,也可以在Mac平台上运行。
然而,由于现有Mac Catalyet技术体系的不完备性,使得移植后的应用客户端在采集多媒体数据中的视频数据时,无法使用原ios平台上的UIKit框架进行视频数据的采集,因此需要用户手动开启用户终端系统中的拍摄组件,以进行视频数据的采集,这意味着用户每需要采集一段视频数据,则必然需要重新手动开启该用户终端系统中的拍摄组件。由此可见,在通过现有的Mac平台可以间歇性地采集到不同的视频数据,所以,在对这些视频数据进行采集过程中,难以实时地获取到这些视频数据,进而降低了视频数据采集的实时性。
发明内容
本申请实施例提供一种数据处理方法、装置、计算机设备及存储介质,可以提高多媒体数据采集的实时性。
本申请实施例一方面提供一种数据处理方法,包括:
响应针对适配客户端的触发操作,启动适配客户端中的主进程以及主进程对应的第一子进程;主进程具备适配客户端的第一开发框架的功能;第一子进程具备适配客户端的第二开发框架的功能;第一开发框架不同于第二开发框架;
基于主进程与第一子进程之间的通信策略,建立第一子进程与主进程之间的第一数据传输通道;
通过第一数据传输通道接收第一子进程所采集到的第一多媒体数据,通过主进程对第一多媒体数据进行数据处理,将数据处理后的第一多媒体数据上传至适配客户端对应的服务器。
本申请实施例一方面提供一种数据处理装置,包括:
第一子进程启动模块,用于响应针对适配客户端的触发操作,启动适配客户端中的主进程以及主进程对应的第一子进程;主进程具备适配客户端的第一开发框架的功能;第一子进程具备适配客户端的第二开发框架的功能;第一开发框架不同于第二开发框架;
第一通道建立模块,用于基于主进程与第一子进程之间的通信策略,建立第一子进程与主进程之间的第一数据传输通道;
第一数据处理模块,用于通过第一数据传输通道接收第一子进程所采集到的第一多媒体数据,通过主进程对第一多媒体数据进行数据处理,将数据处理后的第一多媒体数据上传至适配客户端对应的服务器。
其中,该第一子进程启动模块包括:
应用界面获取单元,用于响应针对适配客户端的启动操作,启动适配客户端中的主进程,获取适配客户端对应的应用显示界面;应用显示界面中存在与第一用户具有关联关系的N个待通讯用户;N为正整数;
第一会话界面输出单元,用于响应针对N个待通讯用户中的目标待通讯用户的触发操作,将目标待通讯用户作为第二用户,且输出包括第一用户和第二用户的第一会话显示界面;
第一激活单元,用于响应针对第一会话显示界面中的第一业务控件的触发操作,激活主进程对应的第一子进程;第一子进程为在主进程对应的进程映射关系表中所查找到的与第一业务控件相关联的子进程。
其中,应用显示界面中存在与第一用户具有关联关系的M个待通讯群组;M为正整数;
该第一子进程启动模块还包括:
第二会话界面输出单元,用于响应针对M个待通讯群组中的目标待通讯群组的触发操作,将目标待通讯群组中除第一用户之外的用户作为第三用户,且输出包括第一用户和第三用户的第二会话显示界面;
第二激活单元,用于响应针对第二会话显示界面中的第二业务控件的触发操作,激活主进程对应的第一子进程;第一子进程为在主进程对应的进程映射关系表中所查找到的与第二业务控件相关联的子进程。
其中,该第一子进程启动模块还包括:
待通讯界面输出单元,用于在启动适配客户端中的主进程时,接收第二用户发送的业务通讯请求,基于业务通讯请求控制适配客户端输出待通讯界面;待通讯界面包括用于指示第一用户与第二用户之间进行业务通讯的通讯启动控件;
第三激活单元,用于响应针对通讯启动控件的触发操作,激活主进程对应的第一子进程;第一子进程为在主进程对应的进程映射关系表中所查找到的与业务通讯请求相关联的子进程。
其中,该第一通道建立模块包括:
通信策略获取单元,用于获取主进程与第一子进程之间的通信策略;
传输方式确定单元,用于基于通信策略确定主进程与第一子进程之间的第一数据传输方式,基于第一数据传输方式启动主进程中的数据接收器以及第一子进程中的数据发送器;
通道建立单元,用于基于数据发送器、数据接收器以及通信策略,建立第一子进程与主进程之间的第一数据传输通道。
其中,该传输方式确定单元包括:
传输方式确定子单元,用于基于通信策略确定主进程与第一子进程之间的第一数据传输方式,基于第一数据传输方式控制主进程向第一子进程发送业务控制参数;业务控制参数用于指示第一子进程对采集控制器进行初始化处理,得到初始化处理结果;
第一信息发送子单元,用于若初始化处理结果指示采集控制器的状态为初始化成功状态,则控制第一子进程通过第一数据传输方式向主进程发送第一通知信息;
第二信息发送子单元,用于当基于第一通知信息启动主进程中的数据接收器时,基于第一数据传输方式向第一子进程发送第二通知信息;
发送器启动子单元,用于基于第二通知信息在第一子进程中启动数据发送器。
其中,第二通知信息中携带数据接收器提供的K个端口;K为正整数;
该通道建立单元包括:
发送端口确定子单元,用于在第一子进程获取到K个端口时,确定数据发送器对应的发送端口,从K个端口中遍历查找处于闲置状态的端口;
连接子单元,用于将查找到的处于闲置状态的端口作为发送端口对应的接收端口,在接收端口与发送端口之间进行套接字连接,得到套接字连接结果;
通道建立子单元,用于若套接字连接结果指示连接成功,则建立第一子进程与主进程之间的第一数据传输通道。
其中,第一子进程中包括具有图像采集功能的数据采集器;数据采集器中包括初始化后的采集控制器;
该第一数据处理模块包括:
采集器启动单元,用于在第一数据传输通道建立成功时,通过初始化后的采集控制器启动第一子进程中的数据采集器;
数据采集单元,用于基于数据采集器的图像采集功能,采集与第一子进程中的业务控制参数相匹配的第一多媒体数据;
数据发送单元,用于基于通信策略确定主进程中的数据接收器与第一子进程中的数据发送器之间的第二数据传输方式,控制数据发送器通过第二数据传输方式向数据接收器发送第一多媒体数据;
数据处理单元,用于通过主进程对第一多媒体数据进行数据处理,将数据处理后的第一多媒体数据上传至适配客户端对应的服务器。
其中,第一多媒体数据包括通过第一子进程所采集到的初始音频数据和初始视频数据;
该数据处理单元包括:
第一编码子单元,用于通过主进程去除初始音频数据中的环境噪声数据,且对去除环境数据后的初始音频数据进行音量调整,得到目标音频数据,对目标音频数据进行音频编码处理,得到音频编码码流;
第二编码子单元,用于通过主进程对初始视频数据中的视频帧进行图像优化处理,将图像优化处理后的初始视频数据作为目标视频数据,对目标视频数据进行视频编码处理,得到视频编码码流;
数据上传子单元,用于将音频编码码流和视频编码码流,作为数据处理后的第一多媒体数据,将数据处理后的第一多媒体数据上传至适配客户端对应的服务器。
其中,该装置还包括:
通讯界面输出模块,用于将目标音频数据和目标视频数据作为目标多媒体数据,将目标多媒体数据输出至适配客户端对应的即时通讯界面;
第一通知信息发送模块,用于响应针对即时通讯界面中的通讯结束控件的触发操作,基于通信策略所确定的第一数据传输方式,控制主进程向第一子进程发送第三通知信息;
第二通知信息发送模块,用于当第一子进程基于第三通知信息关闭数据采集器以及数据发送器时,基于第一数据传输方式向主进程发送第四通知信息;
接收器关闭模块,用于基于第四通知信息在主进程中关闭数据接收器。
其中,即时通讯界面包括业务选择控件;
该装置还包括:
业务控件输出模块,用于响应针对业务选择控件的触发操作,在即时通讯界面中输出第三业务控件;
第二子进程启动模块,用于响应针对第三业务控件的触发操作,激活主进程对应的第二子进程;第二子进程为在主进程对应的进程映射关系表中所查找到的与第三业务控件相关联的子进程;
第二通道建立模块,用于基于主进程与第二子进程之间的通信策略,建立第二子进程与主进程之间的第二数据传输通道;
第二数据处理模块,用于通过第二数据传输通道接收第二子进程所采集到的第二多媒体数据,通过主进程对第二多媒体数据进行数据处理,将数据处理后的第二多媒体数据上传至服务器。
其中,该装置还包括:
结束请求生成模块,用于在主进程关闭数据接收器时,生成通讯结束请求;通讯结束请求用于指示服务器生成与通讯结束请求相关联的业务结束信息;业务结束信息包括通讯时长;
结束信息输出模块,用于接收服务器所发送的业务结束信息,将包括通讯时长的业务结束信息输出至适配客户端对应的会话显示界面。
本申请一方面提供了一种计算机设备,包括:处理器、存储器、网络接口;
该处理器与存储器、网络接口相连,其中,网络接口用于提供数据通信功能,该存储器用于存储计算机程序,该处理器用于调用该计算机程序,以执行本申请实施例中上述一方面中的方法。
本申请一方面提供了一种计算机可读存储介质,该计算机可读存储介质存储有计算机程序,该计算机程序包括程序指令,该程序指令当被处理器执行时,执行本申请实施例中上述一方面中的方法。
本申请一方面提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述一方面中的方法。
在本申请实施例中,计算机设备(例如,用户终端)所运行的适配客户端是包括多进程的应用客户端。其中,该适配客户端中的多进程至少可以包括具有多媒体数据处理功能的主进程,以及具有多媒体数据采集功能的采集进程。其中,这里将不对采集进程的数量进行限定。该用户终端可以响应针对适配客户端的触发操作,启动该适配客户端中的主进程以及该主进程对应的第一子进程(例如,采集进程)。其中,该主进程可以具备该适配客户端的第一开发框架的功能;该第一子进程可以具备该适配客户端的第二开发框架的功能;这里的第一开发框架不同于第二开发框架。进一步地,用户终端可以基于该主进程与该第一子进程之间的通信策略,建立该第一子进程与该主进程之间的第一数据传输通道,从而可以在主进程与第一子进程之间进行进程间通信。可以理解的是,用户终端可以通过该第一数据传输通道,实时接收该第一子进程所采集到的第一多媒体数据,进而可以通过该主进程对该第一多媒体数据进行数据处理,将数据处理后的第一多媒体数据上传至该适配客户端对应的服务器。由此可见,由于第一子进程与主进程之间可以进行进程间通信,因此,用户终端可以根据该第一数据传输通道,实时获取到第一子进程所采集的第一多媒体数据,进而提高了多媒体数据采集的实时性。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的一种网络架构的结构示意图;
图2是本申请实施例提供的一种进行数据交互的场景示意图;
图3是本申请实施例提供的一种数据处理方法的流程示意图;
图4是本申请实施例提供的一种在单聊场景中发起业务通讯的场景示意图;
图5是本申请实施例提供的一种在群聊场景中发起业务通讯的场景示意图;
图6是本申请实施例提供的一种获取应用显示界面的场景示意图;
图7是本申请实施例提供的一种获取待通讯界面的场景示意图;
图8是本申请实施例提供的一种应用程序的软件模块架构图;
图9是本申请实施例提供的一种结束业务通讯的场景示意图;
图10是本申请实施例提供的一种数据处理方法的流程示意图;
图11a是本申请实施例提供的一种激活第二子进程的场景示意图;
图11b是本申请实施例提供的一种上传数据处理后的多媒体数据的场景示意图;
图12是本申请实施例提供的一种数据处理的时序图;
图13是本申请实施例提供的一种数据处理装置的结构示意图;
图14是本申请实施例提供的一种计算机设备的示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
请参见图1,图1是本申请实施例提供的一种网络架构的结构示意图。如图1所示,该网络架构可以包括服务器10和用户终端集群。该用户终端集群可以包括一个或者多个用户终端,这里将不对用户终端的数量进行限制。如图1所示,具体可以包括用户终端100a、用户终端100b、用户终端100c、…、用户终端100n。如图1所示,用户终端100a、用户终端100b、用户终端100c、…、用户终端100n可以分别与上述服务器10进行网络连接,以便于每个用户终端可以通过该网络连接与服务器10进行数据交互。
其中,该用户终端集群中的每个用户终端均可以包括:智能手机、平板电脑、笔记本电脑、桌上型电脑、可穿戴设备、智能家居、头戴设备等具有数据处理功能的智能终端。应当理解,如图1所示的用户终端集群中的每个用户终端均可以安装有目标应用(即适配客户端),当该适配客户端运行于各用户终端中时,可以分别与上述图1所示的服务器10之间进行数据交互。其中,该适配客户端可以包括社交客户端、直播客户端、教育客户端、娱乐客户端(例如,游戏客户端)、多媒体客户端(例如,视频客户端)等具有采集多媒体数据功能的应用客户端。
如图1所示,本申请实施例中的服务器10可以为该应用客户端对应的服务器。该服务器10可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN、以及大数据和人工智能平台等基础云计算服务的云服务器。
为便于理解,本申请实施例可以在图1所示的多个用户终端中选择一个用户终端作为目标用户终端。例如,本申请实施例可以将图1所示的用户终端100a作为目标用户终端,该目标用户终端中可以运行有该适配客户端(例如,客户端Q)。可以理解的是,本申请实施例可以将在该目标用户终端中,通过用户账号1访问该适配客户端的用户称之为第一用户,即该第一用户可以为使用该目标用户终端的用户。
可以理解的是,本申请实施例中的适配客户端可以为包括多进程的应用客户端,这里的多进程至少可以包括主进程和子进程。应当理解,本申请实施例中的主进程可以具备该适配客户端的第一开发框架(例如,UIKit框架)的功能。这里的主进程是指在多进程的应用程序运行中起主要功能作用的进程或负责管理其他进程生命周期的进程。该主进程可以为承担响应用户事件,进行页面显示的进程。比如,响应用户的触发操作(例如,鼠标点击、键盘输入等),界面显示等。应当理解,主进程与子进程的关系上一般为一对多的关系。子进程一般用于分担主进程的任务,比如:文件下载进程、屏幕截图进程,采集进程。其中,这里将不对子进程的数量进行限定。本申请实施例中的第一子进程、第二子进程均为主进程对应的采集进程。这里的采集进程可以具备该适配客户端的第二开发框架(例如,APPKit框架)的功能。其中,第一开发框架不同于第二开发框架。
其中,UIKit框架可以为第一平台(例如,iOS平台)下的应用程序开发框架,现已通过一种移植技术(例如,Mac Catalyst技术)移植到第二平台(例如,Mac平台)。APPKit框架可以为第二平台下的传统应用程序开发框架。这里的Mac Catalyst可以为在第二平台中使用的应用开发框架,可以帮助开发用户快速将第一平台中的应用客户端移植到第二平台,得到移植后的应用客户端。该移植后的应用客户端经过适配后可以运行在第二平台,从而得到适配客户端。
可以理解的是,本申请实施例中的适配客户端改进了Mac Catalyst应用程序的技术体系,将Mac Catalyst的运行环境由单一的基于UIKit框架的运行环境扩展到结合UIKit框架与AppKit框架的多进程运行环境,进而能够基于通信策略(即进程间通讯技术)实时获取到采集进程所采集的多媒体数据。
为便于理解,进一步地,请参见图2,图2是本申请实施例提供的一种进行数据交互的场景示意图。如图2所示,本申请实施例中的用户终端210可以为运行有适配客户端的用户终端,该用户终端210可以为上述图1所示的用户终端集群中的任意一个用户终端,例如,用户终端100a。该适配客户端对应的服务器可以为图2所示的服务器200,该服务器200可以为上述图1所示的服务器10。
应当理解,在用户终端210对应的用户(即第一用户)访问该适配客户端时,用户终端210可以启动该适配客户端中的主进程。可以理解的是,在主进程启动后,第一用户能够在该适配客户端中执行触发操作,以主动发起业务通讯或者同意所接收到的业务通讯请求。此时,用户终端可以响应该触发操作,启动该主进程对应的采集进程。
如图2所示,本申请实施例中的系统基础库(例如,Foudation库)是一个易用、强大而且灵活的框架,可以用于构建计算机设备上的应用(例如,用户终端210中的适配客户端)。该适配客户端可以包括主进程以及采集进程。这里将不对采集进程的数量进行限定。
其中,主进程可以具备适配客户端的第一开发框架(例如,UIKit框架)以及其他应用层支持库的功能。采集进程可以具备该适配客户端的第二开发框架(例如,AppKit框架)以及其他应用层支持库的功能,这里的采集进程可以为从属于主进程的子进程(例如,第一子进程)。其中,第一开发框架不同于第二开发框架。
应当理解,这里的其他应用层支持库可以包括网络开发框架(例如,WebKit框架)和场景开发框架(例如,SceneKit框架)。其中,网络开发框架可以用于提供网络接口,在适配客户端中访问网页;场景开发框架可以用于在适配客户端中制作游戏场景。
其中,图2所示的系统图形库(Core Graphics)是一个高级绘图引擎,可以用于在该适配客户端中进行界面渲染。图2所示的系统通知服务(UserNotifications)可以用于在该适配客户端生成通知消息,例如,在该适配客户端接收到新消息时,可以将该新信息推送给用户终端210对应的第一用户。通知的方式可以包括闪烁该适配客户端的应用图标、播放声音等。
其中,图2所示的系统内核(Darwin)可以是指该适配客户端所运行的操作系统的核心。图2所示的文件(File coordination)可以是指在该适配客户端中提供文件(例如,聊天记录中的文件)保存、读取的功能,图2所示的粘贴板(Clipboard)可以用于在该适配客户端中对文本信息进行粘贴,从而可以快速将所粘贴的文本信息输入到文本输入区域,图2所示的相册(Photos)可以具有发送相册中的图片数据或者视频数据的功能,也可以具有将业务通讯时的图片数据或者视频数据保存至相册的功能。图2所示的联系人(Contacts)可以用于记录该适配客户端中与第一用户具有关联关系(例如,双向好友关系)的用户,图2所示的设置(Prefs)可以使得该第一用户在该适配客户端中进行系统设置(例如,程序后台运行的权限、联系人、相册等读取权限等)。
进一步地,用户终端210可以基于主进程与采集进程之间的通信策略,建立该采集进程与主进程之间的第一数据传输通道,从而可以实现进程间通信。其中,该采集进程可以使用音视频采集与处理框架(例如,AVFoundation框架)等进行摄像头数据、麦克风数据、屏幕画面以及本地相册等多媒体数据的捕获。
可以理解的是,用户终端210可以通过该第一数据传输通道,接收采集进程所采集到的多媒体数据,进而可以通过主进程对该多媒体数据进行数据处理,从而得到数据处理后的多媒体数据。应当理解,这里的数据处理可以包括根据第一用户的用户需求,对多媒体数据进程美颜、滤镜等定制化处理等。
此时,用户终端210可以将数据处理后所得到的多媒体数据输出至用户终端210的即时通讯界面中。可选的,用户终端210还可以将数据处理后的多媒体数据发送至服务器200,以使该服务器200可以将该多媒体数据1发送至与第一用户进行业务通讯的接收用户。
由此可见,由于本申请实施例中的用户终端可以通过主进程与采集进程之间的通信策略,能够实时获取到采集进程所采集到的多媒体数据,进而可以实现实时视频通话、实时屏幕共享、实时美颜拍摄等功能。
其中,本申请实施例中的运行有适配客户端的计算机设备,基于多进程架构中的通信策略(例如,进程间通讯技术),控制该多进程架构中的主进程实时获取该采集进程所采集的多媒体数据的具体实现方式可以参见下述图3-图12所对应的实施例。
进一步地,请参见图3,图3是本申请实施例提供的一种数据处理方法的流程示意图。如图3所示,该方法可以由运行有适配客户端的计算机设备执行,该计算机设备可以为用户终端(例如,上述图1所示的用户终端100a),也可以为服务器,在此不做限定。为便于理解,本申请实施例以该方法由用户终端执行为例进行说明,该方法至少可以包括以下步骤S101-步骤S103:
步骤S101,响应针对适配客户端的触发操作,启动适配客户端中的主进程以及主进程对应的第一子进程。
具体地,用户终端对应的第一用户(例如,用户A)在通过用户账号1访问适配客户端时,可以针对该适配客户端执行触发操作。其中,该触发操作可以包括点击、长按等接触性操作,也可以包括语音、手势等非接触性操作,在此不做限定。本申请实施例可以将第一用户访问适配客户端时的触发操作称之为启动操作。此时,该用户终端可以响应该启动操作,启动该适配客户端中的主进程。进一步地,在主进程启动后,第一用户能够在该适配客户端中执行触发操作,以主动发起业务通讯或者同意所接收到的业务通讯请求。此时,用户终端可以响应该触发操作,启动该主进程对应的第一子进程。
应当理解,第一用户可以在该适配客户端中主动发起业务通讯请求,以启动该主进程对应的第一子进程。其中,可以理解的是,第一用户可以访问该适配客户端时,针对适配客户端执行启动操作,此时,用户终端可以响应该启动操作,启动该适配客户端中的主进程,进而可以获取该适配客户端对应的应用显示界面。
其中,该应用显示界面中可以存在与第一用户具有关联关系(例如,双向好友关系)的N个待通讯用户。这里的N可以为正整数。进一步地,第一用户可以针对该N个待通讯用户中的目标待通讯用户执行触发操作,此时,该用户终端可以响应该触发操作,将该目标待通讯用户作为第二用户,且输出包括该第一用户和该第二用户的第一会话显示界面。其中,该第一会话显示界面中可以包括多个业务控件。这多个业务控件具体可以包括用于发起音频通讯的业务控件1(例如,“语音通话”控件),用于发起视频通讯的业务控件2(例如,“视频通话”控件),用于发起屏幕共享的业务控件3(例如,“屏幕分享”控件)以及用于发起本地资源分享的业务控件4(例如,“本地资源分享”控件)等。其中,每一个业务控件均可以对应一个采集进程。
进一步地,该第一用户可以针对该第一会话显示界面中的某一个业务控件(例如,业务控件2)执行触发操作,此时,该用户终端可以响应该触发操作,激活该主进程对应的第一子进程。其中,本申请实施例可以将第一会话显示界面中的与触发操作相关联的业务控件(例如,业务控件2)称之为第一业务控件,该第一子进程可以为在该主进程对应的进程映射关系表中所查找到的与该第一业务控件相关联的子进程(即采集进程)。
为便于理解,请参见表1,表1是本申请实施例提供的一种主进程对应的进程映射关系表。如表1所示,主进程对应的采集进程可以包括多个,本申请实施例可以以4个为例,具体可以包括子进程1、子进程2、子进程3以及子进程4。其中,本申请实施例中的子进程1可以为与业务控件1(例如,“语音通话”控件)相关联的采集进程,例如,该子进程1可以用于实时采集音频数据。本申请实施例中的子进程2可以为与业务控件2(例如,“视频通话”控件)相关联的采集进程,例如,该子进程2可以用于实时采集摄像头对应的多媒体数据。本申请实施例中的子进程3可以为与业务控件3(例如,“屏幕分享”控件)相关联的采集进程,例如,该子进程3可以用于采集屏幕画面对应的多媒体数据。本申请实施例中的子进程4可以为与业务控件4(例如,“本地资源分享”控件)相关联的采集进程,例如,该子进程4可以用于采集相册等本地存储的多媒体数据。
表1
业务控件 | 子进程 |
业务控件1 | 子进程1 |
业务控件2 | 子进程2 |
业务控件3 | 子进程3 |
业务控件4 | 子进程4 |
为便于理解,进一步地,请参见图4,图4是本申请实施例提供的一种在单聊场景中发起业务通讯的场景示意图。如图4所示,本申请实施例中的用户终端可以运行有适配客户端,该用户终端可以为上述图1所示的用户终端集群中的任意一个用户终端,例如,用户终端100a。
应当理解,本申请实施例中的用户终端对应的用户(例如,用户4A)可以为通过用户账号1访问该适配客户端的用户(即第一用户)。。如图4所示,用户4A在访问该适配客户端时,可以针对该适配客户端执行触发操作,进而可以使得用户终端响应该触发操作,启动该适配客户端中的主进程,进而可以输出该适配客户端对应的应用显示界面(例如,应用显示界面400)。其中,这里的触发操作可以包括点击(例如,鼠标点击、手指点击等)、长按等接触性操作,还可以包括手势、语音等非接触性操作,在此不做限定。
其中,该应用显示界面400中可以存在与用户4A具有双向好友关联关系的N个待通讯用户,这里的N可以为正整数。如图4所示,本申请实施例中的应用显示界面400中可以包括多个分组,具体可以包括分组1和分组2。其中,分组1和分组2均可以包括多个待通讯用户。应当理解,这里的分组1中的待通讯用户暂时未被显示,分组2中的待通讯用户的数量可以以2个为例,具体可以包括用户4B和用户4C。其中,用户4B可以为通过用户账号2访问该适配客户端的用户,用户4C可以为通过用户账号3访问该适配客户端中的用户。
可以理解的是,在用户4A需要与用户4B(即目标待通讯用户)进行业务通讯时,用户4A可以针对应用显示界面400中的用户4B执行触发操作,此时,该用户终端可以响应该触发操作,将该目标待通讯用户作为第二用户,并且可以输出包括该用户4A和该用户4B的第一会话显示界面(如图4所示的会话显示界面410)。其中,该会话显示界面410中可以包括业务选择控件4。进一步地,该用户4A可以针对该业务选择控件4执行触发操作,以选取与用户4B进行业务通讯的通讯方式。此时,用户终端可以响应该触发操作,在该会话显示界面410中显示多个业务控件,以4个业务控件为例,具体可以包括业务控件1m(例如,“语音消息”控件),业务控件2m(例如,“语音通话”控件),业务控件3m(例如,“视频通话”控件),业务控件4m(例如,“屏幕分享”控件)。
进一步地,该用户4A在这4个业务控件中,针对业务控件3m(即第一业务控件)执行触发操作,以向用户4B发起视频通话的业务通讯。此时,该用户终端可以响应该触发操作,在上述表1所示的进程映射关系表中查找与该“视频通话”控件相关联的子进程(例如,表1中的子进程2),进而可以激活该子进程2,进而可以在后续获取到该子进程2所采集的摄像头对应的多媒体数据(即第一多媒体数据)时,以将该第一多媒体数据输出至该适配客户端对应的即时通讯界面(如图4所示的即时通讯界面420)中,以等待用户4B加入该通讯,从而实现视频通话功能。
可选的,该适配客户端对应的应用显示界面中可以存在与该第一用户具有关联关系的M个待通讯群组。这里的M可以为正整数。应当理解,第一用户可以针对该M个待通讯群组中的目标待通讯群组执行触发操作,此时,该第一用户对应的用户终端可以响应该触发操作,将该目标待通讯群组中除该第一用户之外的用户作为第三用户,且输出包括该第一用户和该第三用户的第二会话显示界面。其中,该第二会话界面中可以包括多个业务控件。
进一步地,该用户终端可以响应第一用户针对该第二会话显示界面中的某一个业务控件的触发操作,激活该主进程对应的第一子进程。其中,本申请实施例可以将该第二会话显示界面中与触发操作相关联的业务控件称之为第二业务控件,该第一子进程可以为在该主进程对应的进程映射关系表中所查找到的与该第二业务控件相关联的子进程。
为便于理解,进一步地,请参见图5,图5是本申请实施例提供的一种在群聊场景中发起业务通讯的场景示意图。如图5所示,本申请实施例中的用户终端可以运行有适配客户端,该用户终端可以为上述图1所示的用户终端集群中的任意一个用户终端,例如,用户终端100a。
应当理解,本申请实施例中的用户终端对应的用户(例如,用户5A)可以称之为第一用户。如图5所示,用户终端可以在响应该用户5A针对该适配客户端执行触发操作时,启动该适配客户端中的主进程,从而输出该适配客户端对应的应用显示界面(例如,应用显示界面500)。其中,该应用显示界面500中可以存在与用户5A具有双向好友关联关系的M个待通讯群组,这里的M可以为正整数。本申请实施例可以以2为例,具体可以包括群组1和群组2。
可以理解的是,用户5A可以针对应用显示界面500中的群组1(即目标待通讯群组)执行触发操作,此时,该用户终端可以响应该触发操作,将该目标待通讯群组中除用户5A之外的用户作为第三用户,且输出包括该第一用户和该第三用户的第二会话显示界面(如图5所示的会话显示界面510)。其中,该会话显示界面510中可以包括业务选择控件5。进一步地,该用户5A可以针对该业务选择控件5执行触发操作,以选取与该群组1中的第三用户进行业务通讯的通讯方式。此时,用户终端可以响应该触发操作,在该会话显示界面510中显示多个业务控件,以4个业务控件为例,具体可以包括业务控件1n(例如,“语音消息”控件),业务控件2n(例如,“语音通话”控件),业务控件3n(例如,“视频通话”控件),业务控件4n(例如,“屏幕分享”控件)。
进一步地,该用户5A在这5个业务控件中,针对业务控件3n(即第二业务控件)执行触发操作,此时,该用户终端可以响应该触发操作,在上述表1所示的进程映射关系表中查找与该“视频通话”控件相关联的子进程(例如,表1中的子进程2),进而可以激活该子进程2,以便于后续可以获取到该子进程2所采集的摄像头对应的多媒体数据(即第一多媒体数据),进而可以将该第一多媒体数据输出至该适配客户端对应的即时通讯界面(如图5所示的即时通讯界面520)中,以等待第三用户加入该通讯,从而实现视频通话功能。
进一步地,请参见图6,图6是本申请实施例提供的一种获取应用显示界面的场景示意图。如图6所示,本申请实施例中的用户6A对应的用户终端中可以运行有适配客户端,该用户终端可以为上述图1所示的用户终端集群中的任意一个用户终端,例如,用户终端100a。
应当理解,本申请实施例中的应用显示界面600i可以为该用户6A(即第一用户)在访问适配客户端时,用户终端所输出的显示界面。该应用显示界面600i可以为上述图4所示的应用显示界面400。如图7所示,该应用显示界面600i可以包括控件6。该控件6可以用于切换该适配客户端的应用显示界面。
可以理解的是,用户6A可以针对该控件6执行触发操作(例如,鼠标点击操作或者触屏操作),以切换至消息列表所对应的应用显示界面。此时,该用户终端可以响应该触发操作,将该适配客户端的显示界面由应用显示界面600i切换至如图7所示的应用显示界面600j。其中,该应用显示界面600j中可以包括与用户6A进行过业务通讯的多个用户,例如,应用显示界面600j中的用户6B和用户6C。该应用显示界面600j中还可以包括多个第一用户所属的群组,例如,群组60和群组61。
应当理解,用户6A可以在该应用显示界面600j中,针对目标待通讯用户(例如,用户6B)执行触发操作,从而可以与用户6B进行业务通讯。其中,用户6A与用户6B进行业务通讯的具体实施方式可以参见上述图4所示的用户4A与用户4B进行业务通讯的具体实施方式,在此将不再继续进行赘述。此外,用户6A还可以在该应用显示界面600j中,针对目标待通讯群组(例如,群组60)执行触发操作,从而可以与该群组60中的用户进行业务通讯。其中,用户6A与群组60进行业务通讯的具体实施方式可以参见上述图5所示的用户5A与群组1进行业务通讯的具体实施方式,在此将不再继续进行赘述。
可选的,第一用户对应的用户终端可以在启动该适配客户端中的主进程时,接收该第二用户发送的业务通讯请求。进一步地,该用户终端可以基于该业务通讯请求控制该适配客户端输出待通讯界面。其中,该待通讯界面可以包括用于指示该第一用户与该第二用户之间进行业务通讯的通讯启动控件。此时,第一用户可以针对该通讯启动控件执行触发操作,进而使得该用户终端可以响应该触发操作,激活该主进程对应的第一子进程。其中,该第一子进程可以为在该主进程对应的进程映射关系表中所查找到的与该业务通讯请求相关联的子进程。
为便于理解,进一步地,请参见图7,图7是本申请实施例提供的一种获取待通讯界面的场景示意图。如图7所示,本申请实施例中的用户终端71和用户终端72中均运行有适配客户端,该用户终端71可以为上述图1所示的用户终端集群中的任意一个用户终端,例如,用户终端100a。该用户终端72可以为上述图1所示的用户终端集群中的另一个用户终端,例如,用户终端100b。该服务器70可以为该适配客户端对应的服务器。
应当理解,用户终端71对应的用户(例如,用户7B,即第二用户)可以与该用户7B具有关联关系的用户(例如,用户7A,即第一用户)进行业务通讯。其中,可以理解的是,用户终端71可以响应用户7B的触发操作,生成与用户7A相关联的业务通讯请求,进而可以将该业务通讯请求发送至该适配客户端对应的服务器70。此时,该服务器70可以将该业务通讯请求转发至该用户7A对应的用户终端(例如,图7所示的用户终端72)。
其中,用户7A对应的用户终端72在启动该适配客户端中的主进程时,可以接收该服务器70所转发的业务通讯请求。进一步地,该用户终端72可以基于该业务通讯请求控制该适配客户端输出待通讯界面(如图7所示的待通讯界面700)。其中,该待通讯界面700可以包括用于指示该用户7A与该用户7B之间进行业务通讯的通讯启动控件。
应当理解,用户7A可以针对该通讯启动控件执行触发操作,进而使得该用户终端72可以响应该触发操作,激活该主进程对应的第一子进程。其中,该第一子进程可以为在该主进程对应的进程映射关系表中所查找到的与该业务通讯请求相关联的子进程。
步骤S102,基于主进程与第一子进程之间的通信策略,建立第一子进程与主进程之间的第一数据传输通道。
具体地,用户终端可以获取该主进程与该第一子进程之间的通信策略,进而可以基于该通信策略确定该主进程与该第一子进程之间的第一数据传输方式。应当理解,该用户终端可以基于该第一数据传输方式,启动该主进程中的数据接收器以及该第一子进程中的数据发送器。进一步地,该用户终端可以基于该数据发送器、该数据接收器以及该通信策略,建立该第一子进程与该主进程之间的第一数据传输通道。
进一步地,请参见图8,图8是本申请实施例提供的一种应用程序的软件模块架构图。如图8所示,本申请实施例中的主进程可以为具备适配客户端的第一开发框架80d(例如,UIKit框架)的功能。本申请实施例中的采集进程可以为具备该适配客户端的第二开发框架81d(例如,AppKit框架)的功能,这里的采集进程可以为从属于主进程的子进程(例如,第一子进程)。其中,第一开发框架80d不同于第二开发框架81d。
如图8所示,本申请实施例可以将主进程中的第一控制模块80c称之为第一控制器,将采集进程中的第二控制模块81c称之为第二控制器。应当理解,用户终端可以基于通信策略,确定主进程与第一子进程之间的第一数据传输方式(例如,XPC技术),进而可以使得该第一控制模块80c与该第二控制模块81c之间进行进程间通信,从而实现主进程与采集进程间的双向传递。其中,本申请实施例中的通信策略可以是指能够在主进程和采集进程(即子进程)之间的进行通信的进程间通信技术,例如,XPC技术、Socket技术、DistributedObjects技术、Apple events技术、Memory Mapping技术等。
应当理解,第一用户对应的用户终端在启动采集进程时,可以通过第一控制模块80c控制主进程向采集进程发送业务控制参数,进而可以对该采集进程中的音视频数据采集模块81a中的采集控制器进行初始化处理。其中,本申请实施例可以将音视频数据采集模块81a称之为采集进程中的数据采集器,该数据采集器中可以包括初始化后的采集控制器。该数据采集器可以用于在音视频采集与处理框架81e(例如,AVFoundation控件)中,采集多媒体数据。该多媒体数据可以包括摄像头数据、麦克风数据、屏幕画面等。
可以理解的是,该用户终端还可以在数据接收模块80b以及数据发送模块81b启动完成后,根据通信策略,建立该数据接收模块80b与数据发送模块81b之间的数据传输通道,以实时获取采集进程所采集到的多媒体数据。其中,本申请实施例可以将数据接收模块80b称之为主进程中的数据接收器,将数据发送模块81b称之为采集进程中的数据发送器。
其中,用户终端可以基于通信策略,确定主进程中的数据接收模块80b与采集进程中的数据发送模块81b之间的第二数据传输方式,进而可以控制该数据发送模块81b可以通过该第二数据传输方式,将音视频数据采集模块81a所采集的多媒体数据发送至主进程中的数据接收模块80b。此时,用户终端可以通过音视频数据处理模块80a对该多媒体数据进行数据处理,得到数据处理后的多媒体数据。
可以理解的是,该第一用户对应的用户终端可以基于该通信策略,确定该主进程与该第一子进程之间的第一数据传输方式(例如,XPC技术),进而可以基于该第一数据传输方式,控制该主进程向该第一子进程发送业务控制参数。其中,这里的业务控制参数可以包括采集分辨率以及采集帧率。该业务控制参数可以用于指示该第一子进程对采集控制器进行初始化处理,得到初始化处理结果。
其中,若该初始化处理结果指示该采集控制器的状态为初始化失败状态,则用户终端可以生成异常提示信息,以提示第一用户暂时无法获取对应的多媒体数据。其中,造成初始化失败状态的原因可能是出现摄像头硬件异常、操作系统异常或者采集进程(例如,第一子进程)内部崩溃等情况。若该初始化处理结果指示该采集控制器的状态为初始化成功状态,则该用户终端可以控制该第一子进程,通过该第一数据传输方式向该主进程发送第一通知信息。其中,该第一通知信息可以用于指示该用户终端启动该主进程中的数据接收器。当基于该第一通知信息启动该主进程中的数据接收器时,此时该用户终端可以基于该第一数据传输方式,向该第一子进程发送第二通知信息。其中,该第二通知信息可以用于指示该用户终端启动该第一子进程中的数据发送器。
在该用户终端基于第一通知信息启动数据接收器,且基于该第二通知信息启动该数据发送器时,用户终端可以根据通信策略中的第二数据传输方式(例如,Socket技术),建立第一子进程与主进程之间的第一数据传输通道。其中,可以理解的是,第二通知信息中可以携带该数据接收器提供的K个端口;这里的K可以为正整数。
应当理解,在该第一子进程获取到该K个端口时,用户终端可以确定该数据发送器对应的发送端口,进而可以从该K个端口中遍历查找处于闲置状态的端口。进一步地,用户终端可以将查找到的处于闲置状态的端口作为该发送端口对应的接收端口,在该接收端口与该发送端口之间进行套接字连接,得到套接字连接结果。若该套接字连接结果指示连接成功,则用户终端可以建立该第一子进程与该主进程之间的第一数据传输通道。
步骤S103,通过第一数据传输通道接收第一子进程所采集到的第一多媒体数据,通过主进程对第一多媒体数据进行数据处理,将数据处理后的第一多媒体数据上传至适配客户端对应的服务器。
其中,第一子进程中可以包括具有图像采集功能的数据采集器,该数据采集器中可以包括初始化后的采集控制器。具体地,在该第一数据传输通道建立成功时,该用户终端可以通过该初始化后的采集控制器,启动该第一子进程中的数据采集器。进一步地,该用户终端可以基于该数据采集器的图像采集功能,采集与该第一子进程中的业务控制参数相匹配的第一多媒体数据。此时,该用户终端可以基于该通信策略,确定该主进程中的数据接收器与该第一子进程中的数据发送器之间的第二数据传输方式,进而可以控制该数据发送器,通过该第二数据传输方式向该数据接收器发送该第一多媒体数据。进一步地,用户终端可以通过该主进程对该第一多媒体数据进行数据处理,将该数据处理后的第一多媒体数据上传至该适配客户端对应的服务器。
其中,第一多媒体数据可以包括通过第一子进程所采集到的初始音频数据和初始视频数据。用户终端可以通过该主进程去除该初始音频数据中的环境噪声数据。例如,LMS自适应滤波器降噪,基本谱减法,维纳滤波降噪等。比如,用户终端可以通过LMS自适应滤波器,利用前一刻已获得的滤波器参数,自动调节当前滤波器参数,以适应信号和噪声未知的或随机变化的统计特性,从而实现最优滤波。进一步地,用户终端可以对去除该环境数据后的初始音频数据进行音量调整,得到目标音频数据,进而可以对该目标音频数据进行音频编码处理,得到音频编码码流。
与此同时,用户终端可以通过该主进程对该初始视频数据中的视频帧进行图像优化处理,将图像优化处理后的初始视频数据作为目标视频数据。例如,该用户终端可以根据网络状况对初始视频数据进行丢帧处理,以保持视频数据的流畅度。当然,该用户终端还可以根据第一用户的需求,对该初始视频数据进行美颜、滤镜等定制化处理,以提升用户体验,进而增强用户粘度。进一步地,该用户终端可以对该目标视频数据进行视频编码处理,得到视频编码码流。
应当理解,用户终端可以将该音频编码码流和该视频编码码流,作为数据处理后的第一多媒体数据,将该数据处理后的第一多媒体数据上传至该适配客户端对应的服务器,以使该服务器可以将该数据处理后的第一多媒体数据转发至与该第一用户进行业务通讯的用户。
例如,在线上会议的场景中,第一用户可以在该适配客户端中的某一群组(例如,群组1)中发起业务通讯,以使该群组1中的除第一用户之外的第三用户可以加入该业务通讯,进行视频会议。其中,该第一用户可以为参与该线上会议的小组组长,该第三用户可以为参与该线上会议的小组成员。该第一用户对应的用户终端可以对采集该第一用户的第一多媒体数据进行数据处理,并将该数据处理后的第一多媒体数据发送至该适配客户端对应的服务器,此时,该服务器可以将该数据处理后的第一多媒体数据发送至该群组1中的第三用户,从而使得该第三用户能够获取具有较高质量的多媒体数据,进而提升用户体验,提高该群组1的工作效率。
由此可见,本申请实施例通过对初始音频数据进行环境噪声数据的去除以及音量调整得到目标音频数据,通过对初始视频数据进行图像优化处理得到目标视频数据,可以提高多媒体数据的采集质量。此外,本申请实施例在数据传输前,可以通过对目标音频数据进行音频编码处理,对目标视频数据进行视频编码处理,从而减少数据传输时的数据量,进而可以减少带宽压力,提高传输效率。
应当理解,第一用户对应的用户终端可以将该目标音频数据和该目标视频数据作为目标多媒体数据,并且可以将该目标多媒体数据输出至该适配客户端对应的即时通讯界面。此时,在第一用户结束该业务通讯时,该第一用户可以针对该即时通讯界面中的通讯结束控件执行触发操作,进而使得该用户终端可以响应该触发操作,基于该通信策略所确定的第一数据传输方式,控制该主进程向该第一子进程发送第三通知信息。其中,该第三通知信息用于指示该用户终端关闭第一子进程中的数据采集器以及数据发送器。应当理解,当该第一子进程基于该第三通知信息,关闭该数据采集器以及该数据发送器时,基于该第一数据传输方式向该主进程发送第四通知信息。其中,该第四通知信息用于指示该用户终端关闭主进程中的数据结束器。
进一步地,用户终端可以基于该第四通知信息,在该主进程中关闭数据接收器。在该主进程关闭该数据接收器时,该用户终端可以生成通讯结束请求。其中,该通讯结束请求可以用于指示该服务器生成与该通讯结束请求相关联的业务结束信息,这里的业务结束信息可以包括通讯时长。进一步地,该用户终端可以接收该服务器所发送的业务结束信息,并将包括该通讯时长的业务结束信息输出至该适配客户端对应的会话显示界面。
为便于理解,进一步地,请参见图9,图9是本申请实施例提供的一种结束业务通讯的场景示意图。如图9所示,本申请实施例中的即时通讯界面900可以为用户终端对应的用户9A(即第一用户)与用户9B(即第二用户)在适配客户端中进行业务通讯的显示界面。本申请实施例中的服务器90可以为该适配客户端对应的服务器,该服务器90可以为上述图1所示的服务器10。
应当理解,该即时通讯界面900中可以包括通讯结束控件,在用户9A结束该业务通讯时,可以针对该通讯结束控件执行触发操作,此时,该用户终端可以响应该触发操作,以关闭该主进程中的数据接收器。与此同时,该用户终端还可以生成向该服务器90发送的通讯结束请求。此时,该服务器90可以基于该通讯结束请求,获取该用户9A与用户9B进行业务通讯的通讯时长,进而可以基于该通讯时长,生成用于向该用户终端发送的业务结束信息。进一步地,该用户终端可以接收该服务器90所发送的业务结束信息,并将包括该通讯时长的业务结束信息输出至该适配客户端对应的会话显示界面(例如,图9所示会话显示界面910)。例如,该业务结束信息可以为图9所示的“聊天时长10:22”。
进一步地,请参见图10,图10是本申请实施例提供的一种数据处理方法的流程示意图。如图10所示,该方法可以由运行有适配客户端的计算机设备执行,该计算机设备可以为用户终端(例如,上述图1所示的用户终端100a),也可以为服务器,在此不做限定。为便于理解,本申请实施例以该方法由用户终端执行为例进行说明,该方法至少可以包括以下步骤S201-步骤S107:
步骤S201,响应针对适配客户端的触发操作,启动适配客户端中的主进程以及主进程对应的第一子进程。
步骤S202,基于主进程与第一子进程之间的通信策略,建立第一子进程与主进程之间的第一数据传输通道。
步骤S203,通过第一数据传输通道接收第一子进程所采集到的第一多媒体数据,通过主进程对第一多媒体数据进行数据处理,将数据处理后的第一多媒体数据上传至适配客户端对应的服务器。
其中,该步骤S201-步骤S203的具体实施方式可参见上述图3所对应实施例中对步骤S101-步骤S103的描述,这里将不再赘述。
步骤S204,在适配客户端对应的即时通讯界面中,响应针对业务选择控件的触发操作,在即时通讯界面中输出第三业务控件。
具体地,第一用户对应的用户终端可以将对第一多媒体数据进行数据处理后所得到的目标音频数据和目标视频数据作为目标多媒体数据,进而可以将该目标多媒体数据输出至该适配客户端对应的即时通讯界面(如图9所示的即时通讯界面900)中。进一步,第一用户可以针对该即时通讯界面中的业务选择控件执行触发操作,从而使得该用户终端可以响应该触发操作,在即时通讯界面中输出第三业务控件。
步骤S205,响应针对第三业务控件的触发操作,激活主进程对应的第二子进程。
具体地,第一用户可以针对该第三业务控件执行触发操作,进而使得该用户终端可以响应该触发操作,从主进程对应的进程映射关系表中查找到与该第三业务控件相关联的子进程,将所查找到的与该第三业务控件相关联的子进程确定为第二子进程,进而可以激活该第二子进程。
步骤S206,基于主进程与第二子进程之间的通信策略,建立第二子进程与主进程之间的第二数据传输通道。
步骤S207,通过第二数据传输通道接收第二子进程所采集到的第二多媒体数据,通过主进程对第二多媒体数据进行数据处理,将数据处理后的第二多媒体数据上传至服务器。
其中,本申请实施例中的用户终端建立第二数据传输通道以及获取数据处理后的第二多媒体数据的具体实施方式,均可以参见上述建立第一数据传输通道以及获取数据处理后的第一多媒体数据的具体实施方式,在此将不再继续进行赘述。
为便于理解,进一步地,请参见图11a,图11a是本申请实施例提供的一种激活第二子进程的场景示意图。如图11a所示,本申请实施例中的即时通讯界面110x可以为用户A(即第一用户)与用户B(即第二用户)进行通讯时的显示界面,该即时通讯界面110x可以为用户A对应的用户终端X的显示界面。该用户终端X可以运行有适配客户端。
应当理解,该用户终端X的即时通讯界面110x中的区域1所显示的多媒体数据可以为目标多媒体数据1。该目标多媒体数据1可以为该用户终端X对第一子进程(例如,与摄像头相关联的采集进程)所采集到的第一多媒体数据进行数据处理后所得到的。该用户终端X的即时通讯界面110x中的区域2所显示的多媒体数据可以为目标多媒体数据2。该目标多媒体数据2可以适配客户端对应的服务器所下发与用户B对应的用户终端(例如,用户终端Y)所采集的多媒体数据。
其中,该即时通讯界面110x中可以包括图11a所示的业务选择控件。应当理解,用户A可以针对该业务选择控件执行触发操作,进而使得该用户终端X可以响应该触发操作,输出多个业务控件,例如,图11a所示的业务控件1(例如,“摄像头”控件),业务控件2(例如,“屏幕分享”控件),业务控件3(例如,“特效”控件),业务控件4(例如,“邀请好友”控件)以及业务控件5(例如,“个性主题”控件)。
应当理解,用户A可以针对业务控件2(例如,“屏幕分享”控件,即第三业务控件)执行触发操作,进而使得该用户终端X可以响应该触发操作,从主进程对应的进程映射关系表中查找到与该第三业务控件相关联的子进程,将所查找到的与该第三业务控件相关联的子进程确定为第二子进程(例如,与屏幕画面相关联的子进程),进而可以激活该第二子进程。此时,用户终端可以基于主进程与第二子进程之间的通信策略,建立第二子进程与主进程之间的第二数据传输通道。进一步地,用户A可以执行触发操作,从而使得该用户终端X的显示界面由即时通讯界面110x切换至将图11a所示的屏幕显示界面100y。此时,用户终端X可以控制该第二子进程采集该屏幕显示界面110y中的多媒体数据(即第二多媒体数据),进而可以通过第二数据传输通道,将第二多媒体数据发送至主进程。应当理解,用户终端X可以通过主进程对第二多媒体数据进行数据处理,得到数据处理后的第二多媒体数据。
进一步地,用户终端X可以将数据处理后的第一多媒体数据和数据处理后的第二多媒体数据上传至该适配客户端对应的服务器,以使该服务器可以将这两个多媒体数据发送至用户B对应的用户终端(例如,用户终端Y)。为便于理解,进一步地,请参见图11b,图11b是本申请实施例提供的一种上传数据处理后的多媒体数据的场景示意图。如图11b所示,本申请实施例中用户A对应的用户终端X,以及用户B对应的用户终端B均可以运行有适配客户端,本申请实施例中的服务器可以为该适配客户端对应的服务器。
如图11b所示,该用户终端X可以对第一子进程采集的多媒体数据进行特效、美颜等数据处理,得到数据处理后的第一多媒体数据(例如,多媒体数据1)。与此同时,用户终端X也可以对第二子进程所采集的多媒体数据进行数据处理,从而可以得到数据处理后的第二多媒体数据(例如,多媒体数据2)。进一步地,该用户终端X可以将多媒体数据1与多媒体数据2上传至服务器,以使该服务器可以将该多媒体数据1和多媒体数据2发送至该用户B对应的用户终端Y。进一步地,该用户终端Y可以对该多媒体数据1和多媒体数据2进行解码处理等数据处理,从而可以得到多媒体数据1对应的目标多媒体数据1以及多媒体数据2对应的目标多媒体数据2。其中,目标多媒体数据1(例如,与用户A相关联的多媒体数据)可以为用户终端X根据用户A的用户需求,对第一子进程所采集的多媒体数据进行数据处理后所得到的。进一步地,该用户终端Y可以将该目标多媒体数据1和目标多媒体数据2输出至该用户终端Y对应的即时通讯界面110z中。其中,该即时通讯界面100z中还可以显示与用户B相关联的多媒体数据,其中,该与用户B相关联的多媒体数据可以为用户终端Y对所采集到的多媒体数据进行数据处理后所得到的。
进一步地,请参见图12,图12是本申请实施例提供的一种数据处理的时序图。如图12所示,本申请实施例中的主进程可以具备适配客户的第一开发框架(例如,UIKit框架)的功能,本申请实施例中的采集进程可以具备该适配客户端的第二开发框架(例如,AppKit框架)的功能,这里的采集进程可以为从属于主进程的子进程(例如,第一子进程)。其中,第一开发框架不同于第二开发框架。
可以理解的是,在第一用户访问运行有适配客户端的用户终端时,用户终端可以启动该主进程。当第一用户主动发起通讯业务或者同意所接收到的业务通讯请求时,该用户终端可以执行步骤S11,开始业务通讯,进而可以基于通信策略,确定主进程与采集进程之间的第一数据传输方式,从而启动该业务通讯对应的采集进程。进一步地,该用户终端可以执行步骤S12,通过第一数据传输方式,控制主进程向采集进程发送音视频数据采集控制参数(即业务控制参数),以对该采集进程中的采集控制器进行初始化处理,得到初始化处理结果。若该初始化处理结果指示该采集控制器的状态为初始化成功状态时,用户终端可以执行步骤S13,通过第一数据传输方式,控制采集进程向主进程发送第一通知信息,进而可以执行步骤S14,基于该第一通知信息启动主进程中的数据接收器。
进一步地,用户终端可以执行步骤S15,通过第一数据传输方式,控制主进程向采集进程发送第二通知信息,以启动采集进程中的数据发送器,进而可以基于通信策略,建立主进程与采集进程之间的数据传输通道。在数据传输通道建立成功时,用户终端可以执行步骤S16,通过初始化后的采集控制器启动采集进程中的数据采集器,进而可以基于数据采集器的图像采集功能,采集与采集进程中的业务控制参数相匹配的多媒体数据,此时,用户终端可以循环执行步骤S17,通过主进程中的数据接收器与采集进程中的数据发送器之间的第二数据传输方式,控制数据发送器通过第二数据传输方式向该数据接收器发送该多媒体数据,进而可以对该多媒体数据进行数据处理,并可以将数据处理后的多媒体数据发送至适配客户端对应的服务器。
在第一用户主动结束通讯业务或者同意所接收到的通讯结束请求时,用户终端可以执行步骤S18,结束本次业务通讯,进而可以执行步骤S19,基于该第一数据传输方式,控制主进程向该采集进程发送第三通知信息,以关闭采集进程中的数据采集器以及数据发送器。当关闭采集进程中的数据采集器以及数据发送器是,用户主动可以执行步骤S20,通过第一数据传输方式,控制采集进程向主进程发送第四通知信息,以关闭该主进程中的数据接收器。
进一步地,请参见图13,图13是本申请实施例提供的一种数据处理装置的结构示意图。如图13所示,该数据处理装置1可以是运行于计算机设备中的一个计算机程序(包括程序代码),例如,该数据处理装置1为一个应用软件;该数据处理装置1可以用于执行本申请实施例提供的方法中的相应步骤。如图13所示,该数据处理装置1可以运行于计算机设备,例如,该计算机设备可以运行为运行有适配客户端的用户终端。该数据处理装置1可以包括:第一子进程启动模块11,第一通道建立模块12,第一数据处理模块13,通讯界面输出模块14,第一通知信息发送模块15,第二通知信息发送模块16,接收器关闭模块17,业务控件输出模块18,第二子进程启动模块19,第二通道建立模块20,第二数据处理模块21,结束请求生成模块22以及结束信息输出模块23。
该第一子进程启动模块11,用于响应针对适配客户端的触发操作,启动适配客户端中的主进程以及主进程对应的第一子进程;主进程具备适配客户端的第一开发框架的功能;第一子进程具备适配客户端的第二开发框架的功能;第一开发框架不同于第二开发框架。
其中,该第一子进程启动模块11包括:应用界面获取单元111,第一会话界面输出单元112,第一激活单元113,第二会话界面输出单元114,第二激活单元115,待通讯界面输出单元116以及第三激活单元117。
该应用界面获取单元111,用于响应针对适配客户端的启动操作,启动适配客户端中的主进程,获取适配客户端对应的应用显示界面;应用显示界面中存在与第一用户具有关联关系的N个待通讯用户;N为正整数;
该第一会话界面输出单元112,用于响应针对N个待通讯用户中的目标待通讯用户的触发操作,将目标待通讯用户作为第二用户,且输出包括第一用户和第二用户的第一会话显示界面;
该第一激活单元113,用于响应针对第一会话显示界面中的第一业务控件的触发操作,激活主进程对应的第一子进程;第一子进程为在主进程对应的进程映射关系表中所查找到的与第一业务控件相关联的子进程。
其中,应用显示界面中存在与第一用户具有关联关系的M个待通讯群组;M为正整数;
该第二会话界面输出单元114,用于响应针对M个待通讯群组中的目标待通讯群组的触发操作,将目标待通讯群组中除第一用户之外的用户作为第三用户,且输出包括第一用户和第三用户的第二会话显示界面;
该第二激活单元115,用于响应针对第二会话显示界面中的第二业务控件的触发操作,激活主进程对应的第一子进程;第一子进程为在主进程对应的进程映射关系表中所查找到的与第二业务控件相关联的子进程。
该待通讯界面输出单元116,用于在启动适配客户端中的主进程时,接收第二用户发送的业务通讯请求,基于业务通讯请求控制适配客户端输出待通讯界面;待通讯界面包括用于指示第一用户与第二用户之间进行业务通讯的通讯启动控件;
该第三激活单元117,用于响应针对通讯启动控件的触发操作,激活主进程对应的第一子进程;第一子进程为在主进程对应的进程映射关系表中所查找到的与业务通讯请求相关联的子进程。
其中,该应用界面获取单元111,第一会话界面输出单元112,第一激活单元113,第二会话界面输出单元114,第二激活单元115,待通讯界面输出单元116以及第三激活单元117的具体实现方式可以参见上述图3所对应实施例中对步骤S101的描述,这里将不再继续进行赘述。
该第一通道建立模块12,用于基于主进程与第一子进程之间的通信策略,建立第一子进程与主进程之间的第一数据传输通道。
其中,该第一通道建立模块12包括:通信策略获取单元121,传输方式确定单元122以及通道建立单元123。
该通信策略获取单元121,用于获取主进程与第一子进程之间的通信策略;
该传输方式确定单元122,用于基于通信策略确定主进程与第一子进程之间的第一数据传输方式,基于第一数据传输方式启动主进程中的数据接收器以及第一子进程中的数据发送器。
其中,该传输方式确定单元122包括:传输方式确定子单元1221,第一信息发送子单元1222,第二信息发送子单元1223以及发送器启动子单元1224。
该传输方式确定子单元1221,用于基于通信策略确定主进程与第一子进程之间的第一数据传输方式,基于第一数据传输方式控制主进程向第一子进程发送业务控制参数;业务控制参数用于指示第一子进程对采集控制器进行初始化处理,得到初始化处理结果;
该第一信息发送子单元1222,用于若初始化处理结果指示采集控制器的状态为初始化成功状态,则控制第一子进程通过第一数据传输方式向主进程发送第一通知信息;
该第二信息发送子单元1223,用于当基于第一通知信息启动主进程中的数据接收器时,基于第一数据传输方式向第一子进程发送第二通知信息;
该发送器启动子单元1224,用于基于第二通知信息在第一子进程中启动数据发送器。
其中,该传输方式确定子单元1221,第一信息发送子单元1222,第二信息发送子单元1223以及发送器启动子单元1224的具体实现方式可以参见上述图3所对应实施例中对启动数据发送器与启动数据接收器的描述,这里将不再继续进行赘述。
该通道建立单元123,用于基于数据发送器、数据接收器以及通信策略,建立第一子进程与主进程之间的第一数据传输通道。
其中,第二通知信息中携带数据接收器提供的K个端口;K为正整数;
该通道建立单元123包括:发送端口确定子单元1231,连接子单元1232以及通道建立子单元1233。
该发送端口确定子单元1231,用于在第一子进程获取到K个端口时,确定数据发送器对应的发送端口,从K个端口中遍历查找处于闲置状态的端口;
该连接子单元1232,用于将查找到的处于闲置状态的端口作为发送端口对应的接收端口,在接收端口与发送端口之间进行套接字连接,得到套接字连接结果;
该通道建立子单元1233,用于若套接字连接结果指示连接成功,则建立第一子进程与主进程之间的第一数据传输通道。
其中,该发送端口确定子单元1231,连接子单元1232以及通道建立子单元1233的具体实现方式可以参见上述图3所对应实施例中对第一数据传输通道的描述,这里将不再继续进行赘述。
其中,该通信策略获取单元121,传输方式确定单元122以及通道建立单元123的具体实现方式可以参见上述图3所对应实施例中对步骤S102的描述,这里将不再继续进行赘述。
该第一数据处理模块13,用于通过第一数据传输通道接收第一子进程所采集到的第一多媒体数据,通过主进程对第一多媒体数据进行数据处理,将数据处理后的第一多媒体数据上传至适配客户端对应的服务器。
其中,第一子进程中包括具有图像采集功能的数据采集器;数据采集器中包括初始化后的采集控制器;
该第一数据处理模块13包括:采集器启动单元131,数据采集单元132,数据发送单元133以及数据处理单元134。
该采集器启动单元131,用于在第一数据传输通道建立成功时,通过初始化后的采集控制器启动第一子进程中的数据采集器;
该数据采集单元132,用于基于数据采集器的图像采集功能,采集与第一子进程中的业务控制参数相匹配的第一多媒体数据;
该数据发送单元133,用于基于通信策略确定主进程中的数据接收器与第一子进程中的数据发送器之间的第二数据传输方式,控制数据发送器通过第二数据传输方式向数据接收器发送第一多媒体数据;
该数据处理单元134,用于通过主进程对第一多媒体数据进行数据处理,将数据处理后的第一多媒体数据上传至适配客户端对应的服务器。
其中,第一多媒体数据包括通过第一子进程所采集到的初始音频数据和初始视频数据;
该数据处理单元134包括:第一编码子单元1341,第二编码子单元1342以及数据上传子单元1343。
该第一编码子单元1341,用于通过主进程去除初始音频数据中的环境噪声数据,且对去除环境数据后的初始音频数据进行音量调整,得到目标音频数据,对目标音频数据进行音频编码处理,得到音频编码码流;
该第二编码子单元1342,用于通过主进程对初始视频数据中的视频帧进行图像优化处理,将图像优化处理后的初始视频数据作为目标视频数据,对目标视频数据进行视频编码处理,得到视频编码码流;
该数据上传子单元1343,用于将音频编码码流和视频编码码流,作为数据处理后的第一多媒体数据,将数据处理后的第一多媒体数据上传至适配客户端对应的服务器。
其中,该第一编码子单元1341,第二编码子单元1342以及数据上传子单元1343的具体实现方式可以参见上述图3所对应实施例中对第一多媒体数据进行数据处理的描述,这里将不再继续进行赘述。
其中,该采集器启动单元131,数据采集单元132,数据发送单元133以及数据处理单元134的具体实现方式可以参见上述图3所对应实施例中对步骤S103的描述,这里将不再继续进行赘述。
该通讯界面输出模块14,用于将目标音频数据和目标视频数据作为目标多媒体数据,将目标多媒体数据输出至适配客户端对应的即时通讯界面;
该第一通知信息发送模块15,用于响应针对即时通讯界面中的通讯结束控件的触发操作,基于通信策略所确定的第一数据传输方式,控制主进程向第一子进程发送第三通知信息;
该第二通知信息发送模块16,用于当第一子进程基于第三通知信息关闭数据采集器以及数据发送器时,基于第一数据传输方式向主进程发送第四通知信息;
该接收器关闭模块17,用于基于第四通知信息在主进程中关闭数据接收器。
其中,即时通讯界面包括业务选择控件;
该业务控件输出模块18,用于响应针对业务选择控件的触发操作,在即时通讯界面中输出第三业务控件;
该第二子进程启动模块19,用于响应针对第三业务控件的触发操作,激活主进程对应的第二子进程;第二子进程为在主进程对应的进程映射关系表中所查找到的与第三业务控件相关联的子进程;
该第二通道建立模块20,用于基于主进程与第二子进程之间的通信策略,建立第二子进程与主进程之间的第二数据传输通道;
该第二数据处理模块21,用于通过第二数据传输通道接收第二子进程所采集到的第二多媒体数据,通过主进程对第二多媒体数据进行数据处理,将数据处理后的第二多媒体数据上传至服务器。
该结束请求生成模块22,用于在主进程关闭数据接收器时,生成通讯结束请求;通讯结束请求用于指示服务器生成与通讯结束请求相关联的业务结束信息;业务结束信息包括通讯时长;
该结束信息输出模块23,用于接收服务器所发送的业务结束信息,将包括通讯时长的业务结束信息输出至适配客户端对应的会话显示界面。
其中,该第一子进程启动模块11,第一通道建立模块12,第一数据处理模块13,通讯界面输出模块14,第一通知信息发送模块15,第二通知信息发送模块16,接收器关闭模块17,业务控件输出模块18,第二子进程启动模块19,第二通道建立模块20,第二数据处理模块21,结束请求生成模块22以及结束信息输出模块23的具体实现方式可以参见上述图10所对应实施例中对步骤S201-步骤S207的描述,这里将不再继续进行赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。
进一步地,请参见图14,图14是本申请实施例提供的一种计算机设备的示意图。如图14所示,该计算机设备1000可以为运行有适配客户端的用户终端,该计算机设备1000可以包括:至少一个处理器1001,例如CPU,至少一个网络接口1004,用户接口1003,存储器1005,至少一个通信总线1002。其中,通信总线1002用于实现这些组件之间的连接通信。其中,用户接口1003可以包括显示屏(Display)、键盘(Keyboard),网络接口1004可选地可以包括标准的有线接口、无线接口(如WI-FI接口)。存储器1005可以是高速RAM存储器,也可以是非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。存储器1005可选地还可以是至少一个位于远离前述处理器1001的存储装置。如图14所示,作为一种计算机存储介质的存储器1005可以包括操作系统、网络通信模块、用户接口模块以及设备控制应用程序。
在图14所示的计算机设备1000中,网络接口1004主要用于与服务器进行网络通信;而用户接口1003主要用于为用户提供输入的接口;而处理器1001可以用于调用存储器1005中存储的设备控制应用程序,以实现:
响应针对适配客户端的触发操作,启动适配客户端中的主进程以及主进程对应的第一子进程;主进程具备适配客户端的第一开发框架的功能;第一子进程具备适配客户端的第二开发框架的功能;第一开发框架不同于第二开发框架;
基于主进程与第一子进程之间的通信策略,建立第一子进程与主进程之间的第一数据传输通道;
通过第一数据传输通道接收第一子进程所采集到的第一多媒体数据,通过主进程对第一多媒体数据进行数据处理,将数据处理后的第一多媒体数据上传至适配客户端对应的服务器。
应当理解,本申请实施例中所描述的计算机设备1000可执行前文图3和图10所对应实施例中对该数据处理方法的描述,也可执行前文图13所对应实施例中对该数据处理装置1的描述,在此不再赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。
此外,这里需要指出的是:本申请实施例还提供了一种计算机可读存储介质,且该计算机可读存储介质中存储有前文提及的数据处理装置1所执行的计算机程序,且该计算机程序包括程序指令,当该处理器执行该程序指令时,能够执行前文图3或者图10所对应实施例中对该数据处理方法的描述,因此,这里将不再进行赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。对于本申请所涉及的计算机可读存储介质实施例中未披露的技术细节,请参照本申请方法实施例的描述。作为示例,程序指令可被部署为在一个计算设备上执行,或者在位于一个地点的多个计算设备上执行,又或者,在分布在多个地点且通过通信网络互连的多个计算设备上执行,分布在多个地点且通过通信网络互连的多个计算设备可以组成区块链系统。
本申请一方面提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备可执行前文图3或者图10所对应实施例中对数据处理方法的描述,在此不再赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,上述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,上述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random AccessMemory,RAM)等。
以上所揭露的仅为本申请较佳实施例而已,当然不能以此来限定本申请之权利范围,因此依本申请权利要求所作的等同变化,仍属本申请所涵盖的范围。
Claims (15)
1.一种数据处理方法,其特征在于,包括:
响应针对适配客户端的触发操作,启动所述适配客户端中的主进程以及所述主进程对应的第一子进程;所述主进程具备所述适配客户端的第一开发框架的功能;所述第一子进程具备所述适配客户端的第二开发框架的功能;所述第一开发框架不同于所述第二开发框架;
基于所述主进程与所述第一子进程之间的通信策略,建立所述第一子进程与所述主进程之间的第一数据传输通道;
通过所述第一数据传输通道接收所述第一子进程所采集到的第一多媒体数据,通过所述主进程对所述第一多媒体数据进行数据处理,将数据处理后的第一多媒体数据上传至所述适配客户端对应的服务器。
2.根据权利要求1所述的方法,其特征在于,所述响应针对适配客户端的触发操作,启动所述适配客户端中的主进程以及所述主进程对应的第一子进程,包括:
响应针对适配客户端的启动操作,启动所述适配客户端中的主进程,获取所述适配客户端对应的应用显示界面;所述应用显示界面中存在与第一用户具有关联关系的N个待通讯用户;所述N为正整数;
响应针对所述N个待通讯用户中的目标待通讯用户的触发操作,将所述目标待通讯用户作为第二用户,且输出包括所述第一用户和所述第二用户的第一会话显示界面;
响应针对所述第一会话显示界面中的第一业务控件的触发操作,激活所述主进程对应的第一子进程;所述第一子进程为在所述主进程对应的进程映射关系表中所查找到的与所述第一业务控件相关联的子进程。
3.根据权利要求2所述的方法,其特征在于,所述应用显示界面中存在与所述第一用户具有关联关系的M个待通讯群组;所述M为正整数;
所述方法还包括:
响应针对所述M个待通讯群组中的目标待通讯群组的触发操作,将所述目标待通讯群组中除所述第一用户之外的用户作为第三用户,且输出包括所述第一用户和所述第三用户的第二会话显示界面;
响应针对所述第二会话显示界面中的第二业务控件的触发操作,激活所述主进程对应的第一子进程;所述第一子进程为在所述主进程对应的进程映射关系表中所查找到的与所述第二业务控件相关联的子进程。
4.根据权利要求2所述的方法,其特征在于,所述方法还包括:
在启动所述适配客户端中的主进程时,接收所述第二用户发送的业务通讯请求,基于所述业务通讯请求控制所述适配客户端输出待通讯界面;所述待通讯界面包括用于指示所述第一用户与所述第二用户之间进行业务通讯的通讯启动控件;
响应针对所述通讯启动控件的触发操作,激活所述主进程对应的第一子进程;所述第一子进程为在所述主进程对应的进程映射关系表中所查找到的与所述业务通讯请求相关联的子进程。
5.根据权利要求1所述的方法,其特征在于,所述基于所述主进程与所述第一子进程之间的通信策略,建立所述第一子进程与所述主进程之间的第一数据传输通道,包括:
获取所述主进程与所述第一子进程之间的通信策略;
基于所述通信策略确定所述主进程与所述第一子进程之间的第一数据传输方式,基于所述第一数据传输方式启动所述主进程中的数据接收器以及所述第一子进程中的数据发送器;
基于所述数据发送器、所述数据接收器以及所述通信策略,建立所述第一子进程与所述主进程之间的第一数据传输通道。
6.根据权利要求5所述的方法,其特征在于,所述基于所述通信策略确定所述主进程与所述第一子进程之间的第一数据传输方式,基于所述第一数据传输方式启动所述主进程中的数据接收器以及所述第一子进程中的数据发送器,包括:
基于所述通信策略确定所述主进程与所述第一子进程之间的第一数据传输方式,基于所述第一数据传输方式控制所述主进程向所述第一子进程发送业务控制参数;所述业务控制参数用于指示所述第一子进程对采集控制器进行初始化处理,得到初始化处理结果;
若所述初始化处理结果指示所述采集控制器的状态为初始化成功状态,则控制所述第一子进程通过所述第一数据传输方式向所述主进程发送第一通知信息;
当基于所述第一通知信息启动所述主进程中的数据接收器时,基于所述第一数据传输方式向所述第一子进程发送第二通知信息;
基于所述第二通知信息在所述第一子进程中启动数据发送器。
7.根据权利要求6所述的方法,其特征在于,所述第二通知信息中携带所述数据接收器提供的K个端口;所述K为正整数;
所述基于所述数据发送器、所述数据接收器以及所述通信策略,建立所述第一子进程与所述主进程之间的第一数据传输通道,包括:
在所述第一子进程获取到所述K个端口时,确定所述数据发送器对应的发送端口,从所述K个端口中遍历查找处于闲置状态的端口;
将查找到的处于闲置状态的端口作为所述发送端口对应的接收端口,在所述接收端口与所述发送端口之间进行套接字连接,得到套接字连接结果;
若所述套接字连接结果指示连接成功,则建立所述第一子进程与所述主进程之间的第一数据传输通道。
8.根据权利要求1所述的方法,其特征在于,所述第一子进程中包括具有图像采集功能的数据采集器;所述数据采集器中包括初始化后的采集控制器;
所述通过所述第一数据传输通道接收所述第一子进程所采集到的第一多媒体数据,通过所述主进程对所述第一多媒体数据进行数据处理,将数据处理后的第一多媒体数据上传至所述适配客户端对应的服务器,包括:
在所述第一数据传输通道建立成功时,通过所述初始化后的采集控制器启动所述第一子进程中的所述数据采集器;
基于所述数据采集器的图像采集功能,采集与所述第一子进程中的业务控制参数相匹配的第一多媒体数据;
基于所述通信策略确定所述主进程中的数据接收器与所述第一子进程中的数据发送器之间的第二数据传输方式,控制所述数据发送器通过所述第二数据传输方式向所述数据接收器发送所述第一多媒体数据;
通过所述主进程对所述第一多媒体数据进行数据处理,将所述数据处理后的第一多媒体数据上传至所述适配客户端对应的服务器。
9.根据权利要求8所述的方法,其特征在于,所述第一多媒体数据包括通过所述第一子进程所采集到的初始音频数据和初始视频数据;
所述通过所述主进程对所述第一多媒体数据进行数据处理,将所述数据处理后的第一多媒体数据上传至所述适配客户端对应的服务器,包括:
通过所述主进程去除所述初始音频数据中的环境噪声数据,且对去除所述环境数据后的初始音频数据进行音量调整,得到目标音频数据,对所述目标音频数据进行音频编码处理,得到音频编码码流;
通过所述主进程对所述初始视频数据中的视频帧进行图像优化处理,将图像优化处理后的初始视频数据作为目标视频数据,对所述目标视频数据进行视频编码处理,得到视频编码码流;
将所述音频编码码流和所述视频编码码流,作为数据处理后的第一多媒体数据,将所述数据处理后的第一多媒体数据上传至所述适配客户端对应的服务器。
10.根据权利要求9所述的方法,其特征在于,所述方法还包括:
将所述目标音频数据和所述目标视频数据作为目标多媒体数据,将所述目标多媒体数据输出至所述适配客户端对应的即时通讯界面;
响应针对所述即时通讯界面中的通讯结束控件的触发操作,基于所述通信策略所确定的第一数据传输方式,控制所述主进程向所述第一子进程发送第三通知信息;
当所述第一子进程基于所述第三通知信息关闭所述数据采集器以及所述数据发送器时,基于所述第一数据传输方式向所述主进程发送第四通知信息;
基于所述第四通知信息在所述主进程中关闭数据接收器。
11.根据权利要求10所述的方法,其特征在于,所述即时通讯界面包括业务选择控件;
所述方法还包括:
响应针对所述业务选择控件的触发操作,在所述即时通讯界面中输出第三业务控件;
响应针对所述第三业务控件的触发操作,激活所述主进程对应的第二子进程;所述第二子进程为在所述主进程对应的进程映射关系表中所查找到的与所述第三业务控件相关联的子进程;
基于所述主进程与所述第二子进程之间的通信策略,建立所述第二子进程与所述主进程之间的第二数据传输通道;
通过所述第二数据传输通道接收所述第二子进程所采集到的第二多媒体数据,通过所述主进程对所述第二多媒体数据进行数据处理,将数据处理后的第二多媒体数据上传至所述服务器。
12.根据权利要求10所述的方法,其特征在于,所述方法还包括:
在所述主进程关闭所述数据接收器时,生成通讯结束请求;所述通讯结束请求用于指示所述服务器生成与所述通讯结束请求相关联的业务结束信息;所述业务结束信息包括通讯时长;
接收所述服务器所发送的业务结束信息,将包括所述通讯时长的业务结束信息输出至所述适配客户端对应的会话显示界面。
13.一种数据处理装置,其特征在于,包括:
启动模块,用于响应针对适配客户端的触发操作,启动所述适配客户端中的主进程以及所述主进程对应的第一子进程;所述主进程具备所述适配客户端的第一开发框架的功能;所述第一子进程具备所述适配客户端的第二开发框架的功能;所述第一开发框架不同于所述第二开发框架;
通道建立模块,用于基于所述主进程与所述第一子进程之间的通信策略,建立所述第一子进程与所述主进程之间的第一数据传输通道;
数据上传模块,用于通过所述第一数据传输通道接收所述第一子进程所采集到的第一多媒体数据,通过所述主进程对所述第一多媒体数据进行数据处理,将数据处理后的第一多媒体数据上传至所述适配客户端对应的服务器。
14.一种计算机设备,其特征在于,包括:处理器、存储器、网络接口;
所述处理器与存储器、网络接口相连,其中,网络接口用于提供数据通信功能,所述存储器用于存储计算机程序,所述处理器用于调用所述计算机程序,以执行权利要求1-12任一项所述的方法。
15.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令被处理器执行时,执行权利要求1-12任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010966840.9A CN114268759A (zh) | 2020-09-15 | 2020-09-15 | 一种数据处理方法、装置、计算机设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010966840.9A CN114268759A (zh) | 2020-09-15 | 2020-09-15 | 一种数据处理方法、装置、计算机设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114268759A true CN114268759A (zh) | 2022-04-01 |
Family
ID=80824121
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010966840.9A Pending CN114268759A (zh) | 2020-09-15 | 2020-09-15 | 一种数据处理方法、装置、计算机设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114268759A (zh) |
-
2020
- 2020-09-15 CN CN202010966840.9A patent/CN114268759A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106254311B (zh) | 直播方法和装置、直播数据流展示方法和装置 | |
CN110730952B (zh) | 处理网络上的音频通信的方法和系统 | |
CN111522604B (zh) | 一种应用数据处理方法、装置以及计算机可读存储介质 | |
CN113055628A (zh) | 显示视频通话数据 | |
CN108965932B (zh) | 一种连麦窗口展示方法及装置 | |
CN112866619B (zh) | 一种远程会议控制方法、装置、电子设备及存储介质 | |
CN109361527B (zh) | 语音会议记录方法及系统 | |
US11900006B2 (en) | Synchronizing local room and remote sharing | |
CN111880865A (zh) | 多媒体数据推送方法、装置、电子设备及存储介质 | |
WO2022135005A1 (zh) | 一种基于通话的屏幕共享方法、装置、设备及存储介质 | |
US11374992B2 (en) | Seamless social multimedia | |
WO2021155702A1 (zh) | 通信处理方法、装置、终端、服务器及存储介质 | |
WO2023045619A1 (zh) | 一种数据处理方法、装置、设备以及可读存储介质 | |
CN112817671B (zh) | 图像处理方法、装置、设备以及计算机可读存储介质 | |
CN113438442A (zh) | 一种会议资料的共享方法及装置 | |
WO2017172655A1 (en) | Analysis of a facial image to extract physical and emotional characteristics of a user | |
CN112911320A (zh) | 一种直播方法、装置、计算机设备和存储介质 | |
US20220092143A1 (en) | Device Augmentation Of Real Time Communications | |
CN110113298B (zh) | 数据传输方法、装置、信令服务器和计算机可读介质 | |
US10504277B1 (en) | Communicating within a VR environment | |
CN110415318B (zh) | 图像处理方法和装置 | |
CN114268759A (zh) | 一种数据处理方法、装置、计算机设备及存储介质 | |
CN114793295B (zh) | 视频的处理方法、装置、电子设备及计算机可读存储介质 | |
CN113098931B (zh) | 信息分享方法和多媒体会话终端 | |
US11830120B2 (en) | Speech image providing method and computing device for performing the same |
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 | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40071440 Country of ref document: HK |