一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

多媒体数据处理方法和装置、电子设备及存储介质与流程

2022-03-26 12:14:44 来源:中国专利 TAG:


1.本公开涉及计算机领域,尤其涉及多媒体数据处理方法和装置、电子设备及存储介质。


背景技术:

2.目前的相关技术中,工作人员在对多媒体数据进行处理的过程中,例如,审核部分多媒体数据,经常需要对正在播放的多媒体数据中存在问题的部分内容进行截取上传,作为违规的多媒体数据证据进行保存。
3.而一般截取操作均是采用系统提供的截取能力或者第三方软件进行截取,而上述截取过程在部分系统中只能按照发送命令的先后在系统进程中按顺序执行,用户的交互步骤较多,降低了多媒体数据的处理效率。
4.此外,相关技术中,工作人员在对多媒体数据进行处理的过程均只能通过主线程实现,当需要对多媒体数据进行处理时,容易阻塞主线程,导致应用程序或操作系统容易崩溃,进而,导致了多媒体数据的处理效率较低的技术问题。
5.公开内容
6.本公开提供一种多媒体数据处理方法和装置、电子设备及存储介质,以至少解决相关技术中存在的多媒体数据的处理效率较低的技术问题。本公开的技术方案如下:
7.根据本公开实施例的第一方面,提供一种多媒体数据处理方法,包括:获取对所述多媒体数据进行截取的操作,其中,所述多媒体数据包括在第一线程中运行的第一应用上播放的多媒体数据;响应所述操作,在所述第一应用中截取第一目标多媒体数据,并将截取的所述第一目标多媒体数据发送给第二线程,其中,所述第二线程用于使用第二应用处理所述第一目标多媒体数据;接收并显示所述第二线程反馈的响应消息,其中,所述响应消息用于指示已将所述第一目标多媒体数据处理为第二目标多媒体数据,并成功上传至服务器。
8.在示例性的实施例中,响应所述操作,在所述第一应用中截取第一目标多媒体数据,包括:响应所述操作,在所述第一应用中截取播放的所述多媒体数据中当前帧对应的多媒体数据,作为所述第一目标多媒体数据。
9.在示例性的实施例中,响应所述操作,在所述第一应用中截取播放的所述多媒体数据中当前帧对应的多媒体数据,作为所述第一目标多媒体数据,包括:响应所述操作,获取画布canvas应用中的绘制函数;在所述第一目标多媒体数据正在播放的情况下,采用所述绘制函数截取所述多媒体数据的当前帧对应的所述第一目标多媒体数据。
10.在示例性的实施例中,所述在所述第一应用中截取播放的所述多媒体数据中当前帧对应的多媒体数据,作为所述第一目标多媒体数据,包括:在画布canvas应用中截取播放的所述多媒体数据的当前帧对应的所述第一目标多媒体数据;所述将截取的所述第一目标多媒体数据发送给第二线程,包括:在所述第二线程已创建离屏canvas应用的情况下,将截取的所述第一目标多媒体数据发送给所述第二线程,其中,所述第二应用包括所述离屏
canvas应用。
11.在示例性的实施例中,所述在所述第一应用中截取第一目标多媒体数据,包括:响应所述操作,在目标终端的主线程启动的所述第一应用中截取播放的所述多媒体数据的当前帧对应的所述第一目标多媒体数据;所述将截取的所述第一目标多媒体数据发送给第二线程,包括:在所述目标终端的非主线程已创建所述第二应用的情况下,将截取的所述第一目标多媒体数据发送给所述第二线程。
12.根据本公开实施例的第二方面,提供一种多媒体数据处理方法,包括:接收第一目标多媒体数据,其中,所述第一目标多媒体数据为从第一应用中播放的多媒体数据中截取得到的,所述第一应用是运行在第一线程中的应用程序;在第二应用中将所述第一目标多媒体数据处理为第二目标多媒体数据,并将所述第二目标多媒体数据上传至服务器,所述第二应用是运行在第二线程中的应用程序;通过所述第二线程向第一线程反馈响应消息,其中,所述响应消息用于指示已将所述第一目标多媒体数据处理为第二目标多媒体数据,并成功上传至服务器,所述第一线程用于使用所述第一应用显示所述第二目标多媒体数据。
13.在示例性的实施例中,所述在所述第二线程的第二应用中,将所述第一目标多媒体数据处理为第二目标多媒体数据,包括:在所述第二线程的第二应用中,对所述第一目标多媒体数据进行压缩,得到所述第二目标多媒体数据。
14.在示例性的实施例中,所述在所述第二线程的第二应用中,对所述第一目标多媒体数据进行压缩,得到所述第二目标多媒体数据,包括:在目标终端的非主线程的第二应用中,对所述第一目标多媒体数据进行压缩,得到所述第二目标多媒体数据;所述向第一线程反馈响应消息,包括:向所述目标终端的主线程反馈所述响应消息。
15.在示例性的实施例中,所述第一应用为画布canvas应用,所述第二应用为离屏canvas应用;所述在所述第二线程的第二应用中,对所述第一目标多媒体数据进行压缩,得到所述第二目标多媒体数据,包括:在所述第二线程的离屏canvas应用中,对所述第一目标多媒体数据进行压缩,得到所述第二目标多媒体数据;所述向第一线程反馈响应消息,包括:向所述第一线程反馈所述响应消息,并使用画布canvas应用显示所述第二目标多媒体数据,其中,所述第一应用包括所述画布canvas应用。
16.根据本公开实施例的第三方面,提供一种多媒体数据处理装置,包括:获取模块,用于获取对所述多媒体数据进行截取的操作,其中,所述多媒体数据包括在第一线程中运行的第一应用上播放的多媒体数据;截取模块,用于响应所述操作,在所述第一应用中截取第一目标多媒体数据,并将截取的所述第一目标多媒体数据发送给第二线程,其中,所述第二线程用于使用第二应用处理所述第一目标多媒体数据;处理模块,用于接收并显示所述第二线程反馈的响应消息,其中,所述响应消息用于指示已将所述第一目标多媒体数据处理为第二目标多媒体数据,并成功上传至服务器。
17.在示例性的实施例中,所述装置用于通过如下方式响应所述操作,在所述第一应用中截取第一目标多媒体数据:响应所述操作,在所述第一应用中截取播放的所述多媒体数据中当前帧对应的多媒体数据,作为所述第一目标多媒体数据。
18.在示例性的实施例中,所述装置用于通过如下方式响应所述操作,在所述第一应用中截取播放的所述多媒体数据中当前帧对应的多媒体数据,作为所述第一目标多媒体数
据:响应所述操作,获取画布canvas应用中的绘制函数;在所述第一目标多媒体数据正在播放的情况下,采用所述绘制函数截取所述多媒体数据的当前帧对应的所述第一目标多媒体数据。
19.在示例性的实施例中,所述装置用于通过如下方式在所述第一应用中截取播放的所述多媒体数据中当前帧对应的多媒体数据,作为所述第一目标多媒体数据:在画布canvas应用中截取播放的所述多媒体数据的当前帧对应的所述第一目标多媒体数据;所述装置用于通过如下方式将截取的所述第一目标多媒体数据发送给第二线程:在所述第二线程已创建离屏canvas应用的情况下,将截取的所述第一目标多媒体数据发送给所述第二线程,其中,所述第二应用包括所述离屏canvas应用。
20.在示例性的实施例中,所述装置用于通过如下方式在所述第一应用中截取第一目标多媒体数据:响应所述操作,在目标终端的主线程启动的所述第一应用中截取播放的所述多媒体数据的当前帧对应的所述第一目标多媒体数据;所述装置用于通过如下方式将截取的所述第一目标多媒体数据发送给第二线程:在所述目标终端的非主线程已创建所述第二应用的情况下,将截取的所述第一目标多媒体数据发送给所述第二线程。
21.根据本公开实施例的第四方面,提供一种多媒体数据处理装置,包括:接收模块,用于接收第一目标多媒体数据,其中,所述第一目标多媒体数据为从第一应用中播放的多媒体数据中截取得到的,所述第一应用是运行在第一线程中的应用程序;上传模块,用于在第二应用中将所述第一目标多媒体数据处理为第二目标多媒体数据,并将所述第二目标多媒体数据上传至服务器,所述第二应用是运行在第二线程中的应用程序;反馈模块,用于通过所述第二线程向第一线程反馈响应消息,其中,所述响应消息用于指示已将所述第一目标多媒体数据处理为第二目标多媒体数据,并成功上传至服务器,所述第一线程用于使用所述第一应用显示所述第二目标多媒体数据。
22.在示例性的实施例中,所述装置用于通过如下方式在所述第二线程的第二应用中,将所述第一目标多媒体数据处理为第二目标多媒体数据:在所述第二线程的第二应用中,对所述第一目标多媒体数据进行压缩,得到所述第二目标多媒体数据。
23.在示例性的实施例中,所述装置用于通过如下方式在所述第二线程的第二应用中,对所述第一目标多媒体数据进行压缩,得到所述第二目标多媒体数据:在目标终端的非主线程的第二应用中,对所述第一目标多媒体数据进行压缩,得到所述第二目标多媒体数据;所述装置用于通过如下方式向第一线程反馈响应消息:向所述目标终端的主线程反馈所述响应消息。
24.在示例性的实施例中,所述第一应用为画布canvas应用,所述第二应用为离屏canvas应用;所述装置用于通过如下方式在所述第二线程的第二应用中,对所述第一目标多媒体数据进行压缩,得到所述第二目标多媒体数据:在所述第二线程的离屏canvas应用中,对所述第一目标多媒体数据进行压缩,得到所述第二目标多媒体数据;所述装置用于通过如下方式向第一线程反馈响应消息:向所述第一线程反馈所述响应消息,并使用画布canvas应用显示所述第二目标多媒体数据,其中,所述第一应用包括所述画布canvas应用。
25.根据本公开实施例的第五方面,提供一种多媒体数据处理电子设备,包括:处理器;用于存储所述处理器可执行指令的存储器;其中,所述处理器被配置为执行所述指令,以实现如上述的多媒体数据处理方法。
26.根据本公开实施例的又一方面,还提供了一种计算机可读的存储介质,该计算机可读的存储介质中存储有计算机程序,其中,该计算机程序被设置为运行时执行上述多媒体数据处理方法。
27.本公开的实施例提供的技术方案至少带来以下有益效果:获取对多媒体数据进行截取的操作,其中,多媒体数据包括在第一线程中运行的第一应用上播放的多媒体数据,响应操作,在第一应用中截取第一目标多媒体数据,并将截取的第一目标多媒体数据发送给第二线程,其中,第二线程用于使用第二应用处理第一目标多媒体数据,接收并显示第二线程反馈的响应消息,其中,响应消息用于指示已将第一目标多媒体数据处理为第二目标多媒体数据,并成功上传至服务器,进而,达到提高用户处理多媒体数据过程中的处理效率,减少了用户的交互次数,解决了相关技术中存在的多媒体数据的处理效率较低的技术问题。
28.应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
29.此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理,并不构成对本公开的不当限定。
30.图1是根据一示例性实施例示出的一种多媒体数据处理方法的应用环境示意图;
31.图2是根据一示例性实施例示出的一种多媒体数据处理方法的流程图;
32.图3是根据一示例性实施例示出的一种多媒体数据处理方法的应用场景示意图;
33.图4是根据一示例性实施例示出的一种多媒体数据处理方法的第一应用的示意图;
34.图5是根据一示例性实施例示出的另一种多媒体数据处理方法的流程图;
35.图6是根据一示例性实施例示出的一种多媒体数据处理方法的第二应用的示意图;
36.图7是根据一示例性实施例示出的一种多媒体数据处理方法的具体应用示意图;
37.图8是根据一示例性实施例示出的一种多媒体数据处理装置的结构图;
38.图9是根据一示例性实施例示出的另一种多媒体数据处理装置的结构图;
39.图10是根据一示例性实施例示出的一种电子设备的框图。
具体实施方式
40.为了使本领域普通人员更好地理解本公开的技术方案,下面将结合附图,对本公开实施例中的技术方案进行清楚、完整地描述。
41.需要说明的是,本公开的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本公开的实施例能够以除了在这里图示或描述的那些以外的顺序实施。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
42.首先,在对本技术实施例进行描述的过程中出现的部分名词或者术语适用于如下解释:
43.canvas api(画布):是在html5中新增的标签用于在网页实时生成图像,并且可以操作图像内容,基本上它是一个可以用javascript操作的位图(bitmap)。
44.javascript(js),是一种具有函数优先的轻量级,解释型或即时编译型的编程语言,也可以利用在很多非浏览器环境中,javascript基于原型编程、多范式的动态脚本语言,并且支持面向对象、命令式和声明式(如函数式编程)风格。
45.drawimage(image,point),在指定的位置使用原始物理大小绘制指定的image。drawimage(image,array《point》[]()[])在指定位置并且按指定形状和大小绘制指定的image。
[0046]
webwork,是建立在称为xwork的command模式框架之上的强大的基于web的mvc框架。
[0047]
postmessage是windows api(应用程序接口)中的一个常用函数,用于将一条消息放入到消息队列中。消息队列里的消息通过调用getmessage和peekmessage取得,该函数将一个消息放入(寄送)到与指定窗口创建的线程相联系消息队列里,不等待线程处理消息就返回,是异步消息模式。消息队列里的消息通过调用getmessage和peekmessage取得,换言之,postmessage允许不同线程进行数据交互。
[0048]
下面结合实施例对本发明进行说明:
[0049]
根据本发明实施例的一个方面,提供了一种多媒体数据处理方法,可选地,在本实施例中,上述多媒体数据处理方法可以应用于如图1所示的由服务器101和用户终端103所构成的硬件环境中。如图1所示,服务器101通过网络与终端103进行连接,可用于为用户终端或用户终端上安装的客户端提供服务,客户端可以是视频客户端、即时通信客户端、浏览器客户端、教育客户端、游戏客户端等。可在服务器上或独立于服务器设置数据库105,用于为服务器101提供数据存储服务,例如,多媒体数据存储服务器,上述网络可以包括但不限于:有线网络,无线网络,其中,该有线网络包括:局域网、城域网和广域网,该无线网络包括:蓝牙、wifi及其他实现无线通信的网络,用户终端103可以是配置有应用程序的终端,可以包括但不限于以下至少之一:手机(如android手机、ios手机等)、笔记本电脑、平板电脑、掌上电脑、mid(mobile internet devices,移动互联网设备)、pad、台式电脑、智能电视等计算机设备,上述服务器可以是单一服务器,也可以是由多个服务器组成的服务器集群,或者是云服务器,使用上述多媒体数据处理方法的多媒体应用107通过用户终端103或服务器101上安装的客户端进行显示。
[0050]
结合图1所示,上述多媒体数据处理方法可以在用户终端103通过如下步骤实现:
[0051]
s1,在用户终端103上获取对所述多媒体数据进行截取的操作,其中,所述多媒体数据包括在第一线程中运行的第一应用上播放的多媒体数据;
[0052]
s2,在用户终端103上的多媒体应用107响应所述操作,在所述第一应用中截取第一目标多媒体数据,并将截取的所述第一目标多媒体数据发送给第二线程,其中,所述第二线程用于使用第二应用处理所述第一目标多媒体数据;
[0053]
s3,在用户终端103上接收并显示所述第二线程反馈的响应消息,其中,所述响应消息用于指示已将所述第一目标多媒体数据处理为第二目标多媒体数据,并成功上传至服
务器。
[0054]
可选地,在本实施例中,上述多媒体数据处理方法还可以在服务器101上通过类似方式实现,也可以通过服务器101和用户终端103进行异步实现。
[0055]
上述仅是一种示例,本实施例不做具体的限定。
[0056]
可选地,作为一种可选的实施方式,如图2所示,上述多媒体数据处理方法包括:
[0057]
s202,获取对多媒体数据进行截取的操作,其中,多媒体数据包括在第一线程中运行的第一应用上播放的多媒体数据;
[0058]
s204,响应操作,在第一应用中截取第一目标多媒体数据,并将截取的第一目标多媒体数据发送给第二线程,其中,第二线程用于使用第二应用处理第一目标多媒体数据;
[0059]
s206,接收并显示第二线程反馈的响应消息,其中,响应消息用于指示已将第一目标多媒体数据处理为第二目标多媒体数据,并成功上传至服务器。
[0060]
可选地,在本实施例中,上述多媒体数据处理方法的应用场景可以包括但不限于医疗、金融、征信、银行、政务、政府、能源、教育、安防、楼宇、游戏、交通、物联、工业等多种应用场景的多媒数据处理过程中。
[0061]
可选地,在本实施例中,上述将第一目标多媒体数据处理为第二目标多媒体数据可以包括但不限于将第一目标多媒体数据压缩为第二目标多媒体数据,将第一目标多媒体数据压缩为第二目标多媒体数据,将第一目标多媒体数据进行去除噪声、增强、复原、分割、提取特征等任一一种或多种组合处理方法,还可以包括但不限于利用人工智能网络、机器学习模型等从第一目标多媒体数据中识别出第二目标多媒体数据等。
[0062]
上述仅是一种示例,本实施例不做任何具体的限定。
[0063]
可选地,在本实施例中,上述第一线程可以包括但不限于用户终端所使用的操作系统的主线程。
[0064]
以网页的脚本语言javascript为例,由于javascript是单线程语言,在对多媒体数据进行处理过程中,现有技术一般是按照进入待处理任务队列的顺序,依次使用主线程进行处理,在上述过程中,在第一应用播放多媒体数据的同时,如果获取到对多媒体数据进行截取的操作,则需要暂停多媒体数据的播放,待对截取到的多媒体数据处理完成后,才能够实现下一次的截取。
[0065]
而在本实施例中,在第一线程中运行的第一应用上播放多媒体数据,在第一应用中截取第一目标多媒体数据之后,将截取的第一目标多媒体数据发送给第二线程的第二应用,以实现在不阻塞主线程继续工作的前提下,完成了截取操作,并将截取处理后的多媒体数据上传至服务器,避免了相关技术中需要在主线程完成截取操作的全部流程,导致多媒体数据的处理效率较低的技术问题。
[0066]
可选地,在本实施例中,上述第一应用可以包括但不限于canvas应用程序等允许播放和截取多媒体数据的应用程序。上述第一应用和第二应用分别基于不同的线程运行,可以为相同类型的应用程序,也可以为不同类型的应用程序。
[0067]
可选地,在本实施例中,上述多媒体数据可以包括但不限于在上述一个或者多个组合的应用场景中根据业务需要待截取的多媒体数据,例如,视频、音频、文字等。
[0068]
可选地,在本实施例中,上述多媒体数据的处理方法可以包括但不限于应用于例如工作人员需要通过截图审核的应用场景中。
[0069]
图3是根据一示例性实施例示出的一种多媒体数据处理方法的应用场景示意图,如图3所示,上述多媒体数据的处理方法可以包括但不限于如下步骤:
[0070]
s1,在允许播放多媒体数据的第一应用302上播放多媒体数据;
[0071]
s2,在第一应用302上获取截取操作;
[0072]
s3,响应于上述截取操作,启动第二应用304,并通过第一应用302的截取功能截图当前帧图像,通过postmessage函数将截取到的当前帧图像发送至第二应用304,其中,第一应用302为主线程运行的应用程序,第二应用304为非主线程运行的应用程序;
[0073]
s4,在第二应用304中处理上述当前帧图片,并将处理后的图片压缩上传至目标服务器306;
[0074]
s5,在上传成功后,第二应用304通过postmessage函数将指示上传成功的消息返回至第一应用302;
[0075]
s6,在第一应用302中提示已上传成功。
[0076]
其中,上述第一应用302和第二应用304运行在同一用户终端308中。
[0077]
上述仅是一种示例,本实施例不做任何具体的限定。
[0078]
可选地,在本实施例中,上述进行截取的操作可以包括但不限于触控交互操作、语音交互操作或者其他能够进行交互的操作,以触控操作为例,可以包括但不限于将截取操作配置为点击或双击“截取”虚拟按钮,在获取到上述交互操作后,截取第一应用正在播放的当前帧数据。
[0079]
图4是根据一示例性实施例示出的一种多媒体数据处理方法的第一应用的示意图,如图4所示,上述多媒体数据的处理方法可以包括但不限于如下步骤:
[0080]
s1,在第一应用402中获取针对虚拟按钮404“截取”执行的交互操作;
[0081]
s2,在第一应用402中响应于上述交互操作,截取当前帧图像,并发送至第二应用406;
[0082]
s3,在第二应用406中处理当前帧图像,并上传处理后的图像至服务器;
[0083]
s4,在第一应用402中接收第二应用406反馈的提示消息,以提示处理后的图像已被上传至服务器。
[0084]
上述仅是一种示例,本实施例不做任何具体的限定。
[0085]
通过本实施例,通过在第一线程中运行的第一应用上播放多媒体数据,获取对多媒体数据进行截取的操作,响应操作,在第一应用中截取第一目标多媒体数据,并将截取的第一目标多媒体数据发送给第二线程的第二应用,接收并显示第二应用反馈的已将第一目标多媒体数据处理为第二目标多媒体数据,并成功上传至服务器的反馈消息,进而,达到提高用户处理多媒体数据过程中的处理效率,减少了用户的交互次数,解决了相关技术中存在的多媒体数据的处理效率较低的技术问题。
[0086]
在示例性的实施例中,响应所述操作,在所述第一应用中截取第一目标多媒体数据,包括:
[0087]
响应所述操作,在所述第一应用中截取播放的所述多媒体数据中当前帧对应的多媒体数据,作为所述第一目标多媒体数据。
[0088]
可选地,在本实施例中,上述主线程包括但不限于当一个程序启动时,就有一个进程被操作系统(os)创建,与此同时一个线程也立刻运行。上述非主线程即为在系统中不为
主线程的其他线程。
[0089]
在示例性的实施例中,响应所述操作,在所述第一应用中截取播放的所述多媒体数据中当前帧对应的多媒体数据,作为所述第一目标多媒体数据,包括:
[0090]
响应所述操作,获取画布canvas应用中的绘制函数;
[0091]
在所述第一目标多媒体数据正在播放的情况下,采用所述绘制函数截取所述多媒体数据的当前帧对应的所述第一目标多媒体数据。
[0092]
在示例性的实施例中,
[0093]
所述在所述第一应用中截取播放的所述多媒体数据中当前帧对应的多媒体数据,作为所述第一目标多媒体数据,包括:在画布canvas应用中截取播放的所述多媒体数据的当前帧对应的所述第一目标多媒体数据;
[0094]
所述将截取的所述第一目标多媒体数据发送给第二线程,包括:在所述第二线程已创建离屏canvas应用的情况下,将截取的所述第一目标多媒体数据发送给所述第二线程,其中,所述第二应用包括所述离屏canvas应用。
[0095]
在示例性的实施例中,
[0096]
所述在所述第一应用中截取第一目标多媒体数据,包括:响应所述操作,在目标终端的主线程启动的所述第一应用中截取播放的所述多媒体数据的当前帧对应的所述第一目标多媒体数据;
[0097]
所述将截取的所述第一目标多媒体数据发送给第二线程,包括:在所述目标终端的非主线程已创建所述第二应用的情况下,将截取的所述第一目标多媒体数据发送给所述第二线程。
[0098]
可选地,在本实施例中,上述画布canvas应用可以包括但不限于如下方式播放上述多媒体数据:
[0099]
1、创建一个画布的方法:指定id、width(画布宽度)、height(画布高度)。
[0100]
《canvas id="canvas"width="500"height="350"》《/canvas》
[0101]
2、引入绘画的脚本(javascript脚本文件):
[0102]
(1)获取canvas元素:用getelementbyid方法获取到canvas对象;
[0103]
(2)获得上下文:在绘制图形的时候要用到图形上下文,图形上下文是一个封装了很多绘图功能的对象,要使用canvas对象的getcontext()方法获得图形上下文,在draw函数中把参数设置为"2d";
[0104]
(3)填充与绘制边框:canvas的绘制有两种方法:
[0105]
1)填充(fill):填充是将图形内部填满;
[0106]
2)绘制边框(stroke):绘制边框是不把图形内部填满,只是绘制图形的外框;
[0107]
(4)设置绘制样式:当我们在绘制图形的时候,首先要设定好绘制的样式,然后就可以调用有关的方法进行绘制:
[0108]
1)fillstyle属性:填充的样式,在这个属性里面设置填入的填充颜色值;
[0109]
2)strokestyle属性:图形边框的样式,在这个属性里面设置填入边框的填充颜色;
[0110]
(5)指定画笔宽度:通过对上下文对象(context)的linewidth属性来设置图形边框的宽度,任何直线的宽度都是可以通过linewidth来设置直线的宽度的;
[0111]
(6)设置颜色值:绘制图形的时候要填充的颜色或者边框分别可以通过fillstyle属性和strokestyle属性来指定;
[0112]
(7)绘制相应图形。
[0113]
上述仅是一种示例,本实施例不做任何具体限定。
[0114]
上述离屏canvas应用可以包括但不限于如下方式处理多媒体数据:离屏canvas应用解耦了dom和canvas api,并且,由于上述解耦方式,离屏canvas应用的渲染与dom完全分离了开来,并且比普通canvas速度提升了一些,而这只是因为两者(canvas和dom)之间没有同步。但更重要的是,将两者分离后,canvas将可以在web worker中使用。具体而言,上述webworkers是一个允许在后台运行代码的线程。将部分代码放到worker中可以给主线程更多的空闲时间,这可以提高用户体验度以及处理多媒体数据的效率。
[0115]
可选地,作为一种可选的实施方式,如图5所示,上述多媒体数据处理方法包括:
[0116]
s502,接收第一目标多媒体数据,其中,第一目标多媒体数据为从第一应用中播放的多媒体数据中截取得到的,第一应用是运行在第一线程中的应用程序;
[0117]
s504,在第二应用中将第一目标多媒体数据处理为第二目标多媒体数据,并将第二目标多媒体数据上传至服务器,第二应用是运行在第二线程中的应用程序;
[0118]
s506,通过第二线程向第一线程反馈响应消息,其中,响应消息用于指示已将第一目标多媒体数据处理为第二目标多媒体数据,并成功上传至服务器,第一线程用于使用第一应用显示第二目标多媒体数据。
[0119]
在示例性的实施例中,所述在所述第二线程的第二应用中,将所述第一目标多媒体数据处理为第二目标多媒体数据,包括:
[0120]
在所述第二线程的第二应用中,对所述第一目标多媒体数据进行压缩,得到所述第二目标多媒体数据。
[0121]
图6是根据一示例性实施例示出的一种多媒体数据处理方法的第二应用的示意图,如图6所示,上述多媒体数据的处理方法可以包括但不限于如下步骤:
[0122]
s1,在第二应用602中通过第二线程,接收在第一线程中运行的第一应用604截取的第一目标多媒体数据;
[0123]
s2,在第二线程的第二应用602中,将第一目标多媒体数据处理为第二目标多媒体数据,并将第二目标多媒体数据上传至服务器。
[0124]
s3,向第一线程中的第一应用604反馈响应消息,其中,响应消息用于指示已将第一目标多媒体数据处理为第二目标多媒体数据,并成功上传至服务器。
[0125]
上述仅是一种示例,本实施例不做任何具体的限定。
[0126]
在示例性的实施例中,
[0127]
所述在所述第二线程的第二应用中,对所述第一目标多媒体数据进行压缩,得到所述第二目标多媒体数据,包括:在目标终端的非主线程的第二应用中,对所述第一目标多媒体数据进行压缩,得到所述第二目标多媒体数据;
[0128]
所述向第一线程反馈响应消息,包括:向所述目标终端的主线程反馈所述响应消息。
[0129]
在示例性的实施例中,所述第一应用为画布canvas应用,所述第二应用为离屏canvas应用;
[0130]
所述在所述第二线程的第二应用中,对所述第一目标多媒体数据进行压缩,得到所述第二目标多媒体数据,包括:在所述第二线程的离屏canvas应用中,对所述第一目标多媒体数据进行压缩,得到所述第二目标多媒体数据;
[0131]
所述向第一线程反馈响应消息,包括:向所述第一线程反馈所述响应消息,并使用画布canvas应用显示所述第二目标多媒体数据,其中,所述第一应用包括所述画布canvas应用。
[0132]
关于上述在第二线程运行的第二应用中使用上述多媒体数据的处理方法的具体流程,已经在有关在第一线程运行的第一应用中使用该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
[0133]
下面结合具体的示例,对本公开进行进一步的解释说明:
[0134]
审核员对视频和直播时进行审核时,经常需要对视频和直播有问题的画面进行截图上传,作为违规视频和直播的证据保存,由于之前的截图是在主线程进行的,并且由于截图文件尺寸较大,需要压缩上传,因为网页的脚本语言javascript是单线程语言,会造成审核员截图操作时会阻塞主线程,无法进行其他操作。
[0135]
所以可以通过浏览器的离屏canvas,在不阻塞主线程的情况下对截图进行压缩上传,优化整体效率。
[0136]
图7是根据一示例性实施例示出的一种多媒体数据处理方法的具体应用示意图,如图7所示,具体方式如下:
[0137]
s1、利用canvas播放视频;
[0138]
s2、审核员按下截图按钮时使用canvas的drawimage方法截图当前帧;
[0139]
s3、通过postmessage将图片传到使用webwork创建的非主线程;
[0140]
s4、非主线程创建离屏canvas接收图片;
[0141]
s5、利用离屏canvas对图片进行压缩;
[0142]
s6,利用离屏canvas将压缩后的图片上传到服务器;
[0143]
s7、上传成功后非主线程通过postmessage传递给主线程;
[0144]
s8、主线程提示压缩上传成功。
[0145]
通过本实施例,能够优化审核员审核视频时的截图效率,优化用户的使用体验。
[0146]
图8是根据一示例性实施例示出的一种多媒体数据处理装置框图。参照图8,该装置包括获取模块802,截取模块804以及处理模块806。
[0147]
该获取模块802,被配置为获取对所述多媒体数据进行截取的操作,其中,所述多媒体数据包括在第一线程中运行的第一应用上播放的多媒体数据;
[0148]
该截取模块804,被配置为响应所述操作,在所述第一应用中截取第一目标多媒体数据,并将截取的所述第一目标多媒体数据发送给第二线程,其中,所述第二线程用于使用第二应用处理所述第一目标多媒体数据;
[0149]
该处理模块806,被配置为接收并显示所述第二线程反馈的响应消息,其中,所述响应消息用于指示已将所述第一目标多媒体数据处理为第二目标多媒体数据,并成功上传至服务器。
[0150]
在示例性的实施例中,所述装置用于通过如下方式响应所述操作,在所述第一应用中截取第一目标多媒体数据:
[0151]
响应所述操作,在所述第一应用中截取播放的所述多媒体数据中当前帧对应的多媒体数据,作为所述第一目标多媒体数据。
[0152]
在示例性的实施例中,所述装置用于通过如下方式响应所述操作,在所述第一应用中截取播放的所述多媒体数据中当前帧对应的多媒体数据,作为所述第一目标多媒体数据:
[0153]
响应所述操作,获取画布canvas应用中的绘制函数;
[0154]
在所述第一目标多媒体数据正在播放的情况下,采用所述绘制函数截取所述多媒体数据的当前帧对应的所述第一目标多媒体数据。
[0155]
在示例性的实施例中,
[0156]
所述装置用于通过如下方式在所述第一应用中截取播放的所述多媒体数据中当前帧对应的多媒体数据,作为所述第一目标多媒体数据:在画布canvas应用中截取播放的所述多媒体数据的当前帧对应的所述第一目标多媒体数据;
[0157]
所述装置用于通过如下方式将截取的所述第一目标多媒体数据发送给第二线程:在所述第二线程已创建离屏canvas应用的情况下,将截取的所述第一目标多媒体数据发送给所述第二线程,其中,所述第二应用包括所述离屏canvas应用。
[0158]
在示例性的实施例中,
[0159]
所述装置用于通过如下方式在所述第一应用中截取第一目标多媒体数据:响应所述操作,在目标终端的主线程启动的所述第一应用中截取播放的所述多媒体数据的当前帧对应的所述第一目标多媒体数据;
[0160]
所述装置用于通过如下方式将截取的所述第一目标多媒体数据发送给第二线程:在所述目标终端的非主线程已创建所述第二应用的情况下,将截取的所述第一目标多媒体数据发送给所述第二线程。
[0161]
图9是根据一示例性实施例示出的一种多媒体数据处理装置框图。参照图9,该装置包括接收模块902,上传模块904以及反馈模块906。
[0162]
该接收模块902,被配置为接收第一目标多媒体数据,其中,所述第一目标多媒体数据为从第一应用中播放的多媒体数据中截取得到的,所述第一应用是运行在第一线程中的应用程序;
[0163]
该上传模块904,被配置为在第二应用中将所述第一目标多媒体数据处理为第二目标多媒体数据,并将所述第二目标多媒体数据上传至服务器,所述第二应用是运行在第二线程中的应用程序;
[0164]
该反馈模块906,被配置为通过所述第二线程向第一线程反馈响应消息,其中,所述响应消息用于指示已将所述第一目标多媒体数据处理为第二目标多媒体数据,并成功上传至服务器,所述第一线程用于使用所述第一应用显示所述第二目标多媒体数据。
[0165]
在示例性的实施例中,所述装置用于通过如下方式在所述第二线程的第二应用中,将所述第一目标多媒体数据处理为第二目标多媒体数据:在所述第二线程的第二应用中,对所述第一目标多媒体数据进行压缩,得到所述第二目标多媒体数据。
[0166]
在示例性的实施例中,所述装置用于通过如下方式在所述第二线程的第二应用中,对所述第一目标多媒体数据进行压缩,得到所述第二目标多媒体数据:在目标终端的非主线程的第二应用中,对所述第一目标多媒体数据进行压缩,得到所述第二目标多媒体数
据;所述装置用于通过如下方式向第一线程反馈响应消息:向所述目标终端的主线程反馈所述响应消息。
[0167]
在示例性的实施例中,所述第一应用为画布canvas应用,所述第二应用为离屏canvas应用;所述装置用于通过如下方式在所述第二线程的第二应用中,对所述第一目标多媒体数据进行压缩,得到所述第二目标多媒体数据:在所述第二线程的离屏canvas应用中,对所述第一目标多媒体数据进行压缩,得到所述第二目标多媒体数据;所述装置用于通过如下方式向第一线程反馈响应消息:向所述第一线程反馈所述响应消息,并使用画布canvas应用显示所述第二目标多媒体数据,其中,所述第一应用包括所述画布canvas应用。
[0168]
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
[0169]
根据本发明实施例的又一个方面,还提供了一种用于实施上述多媒体数据处理方法的电子设备,该电子设备可以是图1所示的终端设备或服务器。本实施例以该电子设备为服务器为例来说明。如图10所示,该电子设备包括存储器1002和处理器1004,该存储器1002中存储有计算机程序,该处理器1004被设置为通过计算机程序执行上述任一项方法实施例中的步骤。
[0170]
可选地,在本实施例中,上述电子设备可以位于计算机网络的多个网络设备中的至少一个网络设备。
[0171]
可选地,在本实施例中,上述处理器可以被设置为通过计算机程序执行以下步骤:
[0172]
s1,获取对多媒体数据进行截取的操作,其中,多媒体数据包括在第一线程中运行的第一应用上播放的多媒体数据;
[0173]
s2,响应操作,在第一应用中截取第一目标多媒体数据,并将截取的第一目标多媒体数据发送给第二线程,其中,第二线程用于使用第二应用处理第一目标多媒体数据;
[0174]
s3,接收并显示第二线程反馈的响应消息,其中,响应消息用于指示已将第一目标多媒体数据处理为第二目标多媒体数据,并成功上传至服务器。
[0175]
可选地,在本实施例中,上述处理器还可以被设置为通过计算机程序执行以下步骤:
[0176]
s1,接收第一目标多媒体数据,其中,第一目标多媒体数据为从第一应用中播放的多媒体数据中截取得到的,第一应用是运行在第一线程中的应用程序;
[0177]
s2,在第二应用中将第一目标多媒体数据处理为第二目标多媒体数据,并将第二目标多媒体数据上传至服务器,第二应用是运行在第二线程中的应用程序;
[0178]
s3,通过第二线程向第一线程反馈响应消息,其中,响应消息用于指示已将第一目标多媒体数据处理为第二目标多媒体数据,并成功上传至服务器,第一线程用于使用第一应用显示第二目标多媒体数据。
[0179]
可选地,本领域普通技术人员可以理解,图10所示的结构仅为示意,电子装置电子设备也可以是智能手机(如android手机、ios手机等)、平板电脑、掌上电脑以及移动互联网设备(mobile internet devices,mid)、pad等终端设备。图10其并不对上述电子装置电子设备的结构造成限定。例如,电子装置电子设备还可包括比图10中所示更多或者更少的组件(如网络接口等),或者具有与图10所示不同的配置。
[0180]
其中,存储器1002可用于存储软件程序以及模块,如本发明实施例中的多媒体数
据处理方法和装置对应的程序指令/模块,处理器1004通过运行存储在存储器1002内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的多媒体数据处理方法。存储器1002可包括高速随机存储器,还可以包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器1002可进一步包括相对于处理器1004远程设置的存储器,这些远程存储器可以通过网络连接至终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。其中,存储器1002具体可以但不限于用于存储历史用户数据等信息。作为一种示例,如图10所示,上述存储器1002中可以但不限于包括上述多媒体数据处理装置中的第一获取模块602,生成模块604和第二获取模块606,以及确定模块608。此外,还可以包括但不限于上述多媒体数据处理装置中的其他模块单元,本示例中不再赘述。
[0181]
可选地,上述的传输装置1006用于经由一个网络接收或者发送数据。上述的网络具体实例可包括有线网络及无线网络。在一个实例中,传输装置1006包括一个网络适配器(network interface controller,nic),其可通过网线与其他网络设备与路由器相连从而可与互联网或局域网进行通讯。在一个实例中,传输装置1006为射频(radio frequency,rf)模块,其用于通过无线方式与互联网进行通讯。
[0182]
此外,上述电子设备还包括:显示器1008,用于显示上述目标业务的用户数据;和连接总线1010,用于连接上述电子设备中的各个模块部件。
[0183]
在其他实施例中,上述终端设备或者服务器可以是一个分布式系统中的一个节点,其中,该分布式系统可以为区块链系统,该区块链系统可以是由该多个节点通过网络通信的形式连接形成的分布式系统。其中,节点之间可以组成点对点(p2p,peer to peer)网络,任意形式的计算设备,比如服务器、终端等电子设备都可以通过加入该点对点网络而成为该区块链系统中的一个节点。
[0184]
在示例性实施例中,还提供一种计算机程序产品,包括计算机程序/指令,上述计算机程序/指令被处理器执行时实现上述的信息传输方法。
[0185]
本领域技术人员在考虑说明书及实践这里公开的公开后,将容易想到本公开的其它实施方案。本技术旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。
[0186]
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献