CN110781014A - 基于Android设备的录音数据的多进程分发方法与系统 - Google Patents
基于Android设备的录音数据的多进程分发方法与系统 Download PDFInfo
- Publication number
- CN110781014A CN110781014A CN201911030758.9A CN201911030758A CN110781014A CN 110781014 A CN110781014 A CN 110781014A CN 201911030758 A CN201911030758 A CN 201911030758A CN 110781014 A CN110781014 A CN 110781014A
- Authority
- CN
- China
- Prior art keywords
- application
- data source
- data
- recording data
- recording
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/544—Buffers; Shared memory; Pipes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/542—Event management; Broadcasting; Multicasting; Notifications
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Multimedia (AREA)
- Information Transfer Between Computers (AREA)
- Telephonic Communication Services (AREA)
Abstract
本发明公开一种基于Android设备录音数据的多进程分发方法,包括如下步骤:当前应用端在获取录音数据之前,基于其所发出的指定通信消息的响应情况进行数据源的确定,其中,所述数据源为Android系统或作为服务端的其他应用端;当前应用端根据确定的数据源获取录音数据。本发明还公开了一种基于Android设备录音数据的多进程分发的系统,根据本发明公开的方法和系统,可以提高应用间、进程间录音数据的分发效率,降低应用上层封装难度,节省设备性能和内存占用率,满足多种业务需求。
Description
技术领域
本发明涉及数据分发技术领域,特别是一种基于Android设备的录音数据的多进程分发方法与系统。
背景技术
由于谷歌(Google)公司对录音权限的严格管理,Android系统(安卓系统)默认为单录音形态,不支持多应用、多进程同时获取录音数据,但车载业务会存在多应用或多进程间共享录音数据的需求。
目前主流手机Android操作系统,以小米手机(MIUI)、华为手机(EMUI)为例,均通过重写Android底层录音源码,通过录音优先级进行管理来实现多应用或多进程间共享录音数据。但是这对底层的修改人员要求较高,且由于需要涉及Android底层相关源码,容易出现其它问题。此外,由于修改方案并不是通用的,而是需要针对不同Codec适配,因而还容易产生兼容性问题,在不同设备仍然需要进行部分源码调整。而目前的车载系统并未做相关兼容,大多是以时间片作为划分,同一时间段仅允许某一进程录音,并不能在多应用或多进程间共享录音数据。可见,解决车载系统的多应用或多进程间共享录音数据的问题是业内的迫切需求。
发明内容
本发明的目的之一在于,提供一种应用层的解决方案,以实现从应用层解决Anroid系统的录音数据无法同时分发给多个应用或进程的缺陷,同时达到避免修改底层代码的效果。
本发明的另一目的还在于,提供一种传输策略选择方案,通过判断当前设备工作模式与通信关系,智能的选取具体传输方式,使得在应用层仅传入录音参数,就可以获取相应的录音数据,从而避免多进程录音的复杂实现方式,显著提高了应用间、进程间录音数据的分发效率,降低应用上层封装难度,节省设备性能和内存占用率,满足多种业务需求。
为此,根据本发明的一个方面,提供了一种基于Android设备录音数据的多进程分发方法,包括如下步骤:当前应用端在获取录音数据之前,基于其所发出的指定通信消息的响应情况进行数据源的确定,其中,数据源为Android系统或作为服务端的其他应用端;当前应用端根据确定的数据源获取录音数据。首先,将录音数据的数据源从对Android系统的依赖中解放出来,使得应用端也可以作为数据源,使得从应用层解决多进程、多应用间的录音数据分发问题成为可能。接着,发明人还构思通过应用端在获取录音数据前通过消息交互响应的方式来确定数据源,以使得当前应用端既可以从系统,也可以从作为服务端的其他应用端获取录音数据,从而实现了应用层的录音数据分发,避免了依赖修改底层代码来实现多应用、多进程间的录音数据分发的各种弊端,且在应用层不需要进行过多的操作,避免了多进程录音的复杂的实现。
在一些实施方式中,当前应用端在获取录音数据之前,基于其所发出的指定通信消息的响应情况进行数据源的确定包括
当前应用端配置成响应于启动指令,获取Android设备上的所有应用端,并向所有应用端发送指定通信消息;
当前应用端基于接收到的对指定通信消息的响应消息确定数据源,其实现为:在接收到响应消息时,将响应消息的发送方确定为数据源,或在未接收到任何响应消息时,将Android系统作为数据源,并将自身设定为服务端且配置成在接收到作为客户端的其他应用端的指定通信消息时返回响应消息。在启动一个需要使用录音数据的当前应用端时,通过向所有的应用端进行通信消息交互,来确定是否存在已知应用已经在使用录音数据,在确定已有应用端在使用录音数据时,根据响应信息将该应用端作为提供数据源的服务端以从其获取录音数据,而在确定只有自己使用录音数据时,采用从Anroid系统获取录音数据的方式,有效地实现了多进程、多应用间共享录音数据,整个实现过程不会对系统底层作出框架性改变,实现方式简单。
在一些实施方式中,当前应用端根据确定的数据源获取录音数据包括在数据源为Android系统时,直接从Android系统获取录音数据;在数据源为作为服务端的其他应用端时,根据其他应用端的实例信息创建传输通道,通过创建的传输通道获取录音数据。对于数据源为Android系统的情况,直接采用原有的方式来获取录音数据,而对于数据源为其他应用端的情况,则可以通过创建的传输通道进行数据的直接传输,显著提高了应用间、进程间录音数据的分发效率,降低应用上层封装难度。并且,通过对数据源的确定可以基于其他应用端的实例信息即当前设备的工作模式与通信关系,智能的选取具体传输方式,能够有效兼容所有录音方式和提高传输效率。
在一些实施方式中,实例信息包括应用名称、应用ID、应用端所在进程号、应用端所属包名和应用端通信端口,根据其他应用端的实例信息创建传输通道包括根据应用端所在进程号或应用端通信端口确定选用的传输方式;根据选用的传输方式通过实例信息建立与应用端通信端口的通信连接。根据实例信息的具体内容可以定位当前的传输对象具体信息,由此可以确定合适的传输策略即选用合适的传输方式,进而直接通过设置的传输通道和传输方式进行录音数据的传输,以实现智能选取传输方式,提高分发传输效率和提高兼容性。
在一些实施方式中,根据应用端所在进程号或应用端通信端口确定选用的传输方式实现为根据应用端所在进程号进行判断,在判断其他应用端与应用端位于同一进程时,选用AIDL作为传输方式,否则选用Socket作为传输方式;或根据应用端的通信端口进行判断,在判断其他应用端与所述应用端位于同一网段时,选用AIDL作为传输方式,否则选用Socket作为传输方式。由此,通过在传输层采用AIDL与Socket结合的方式,即可判断当前设备工作模式与通信关系,智能选取具体传输方式,避免多进程录音的复杂的实现。对同进程间的数据交互,仅使用一种传输媒介,就可以实现录音数据的实时同步传输,而对于不同进程或不同设备间的数据交互,则选用AIDL作为内部传输方式,选用Socket作为进程间或设备间的传输方式,能够有效降低应用上层封装难度,提高分发效率。
在一些实施方式中,当前应用端在进行数据源的确定之前还进行如下处理:响应于启动指令,在获取Android设备上的所有应用端之前,先启动Andriod录音接口,进行录音配置的初始化;在根据确定的数据源获取录音数据时,当前应用端还将配置的初始化信息传输至数据源以用于获取录音数据。由此,应用端仅需要根据需求设置自己所需的录音参数,传入录音参数就可以获取所需的录音数据,可以有效避免多进程录音的复杂的实现。
根据本发明的另一个方面,提供了一种基于Android设备的录音数据的多进程分发系统,包括:数据源确定模块,用于在获取录音数据之前,基于其所发出的指定通信消息的响应情况进行数据源的确定,其中,所述数据源为Android系统或作为服务端的其他应用端;和数据获取模块,用于根据确定的数据源获取录音数据。由此,通过数据源确定模块可以精准的定位数据源类型,以确定从Android系统或从作为服务端的其他应用端来获取录音数据,之后基于数据获取模块从相应的数据源获取录音数据即可,避免了通过修改系统底层代码以实现所有应用或进程都可以同时从系统获取录音数据时容易产生的诸多问题,使得仅仅从应用层进行简单的操作即可实现多应用、多进程间的录音数据共享成为可能,且由于在应用层不需要进行过多的操作,避免了多进程录音的复杂的实现。
在一些实施方式中,数据源确定模块包括:消息分发单元,用于获取Android设备上的所有应用端,并向所有应用端发送指定通信消息;响应处理单元,用于在接收到响应消息时,将响应消息的发送方确定为数据源,或在未接收到任何响应消息时,将Android系统作为数据源;和服务端配置单元,用于在确定的数据源为Android系统时,将当前应用端自己设定为服务端并配置成在接收到指定通信消息时返回响应消息。通过消息分发单元和消息响应单元来确定数据源,可以对传输对象进行进一步的细化,使得在应用层直接获取录音数据成为可能,而通过服务端配置单元来将首次使用系统的录音数据的应用端配置成进行后续录音数据分发的服务端,使得其他应用端也能够作为数据源成为了可能,由此达到了在应用层实现录音数据在多进程、多应用间进行分发的目的,通过该方式不需要进行过多的操作,避免了多进程录音的复杂的实现。
在一些实施方式中,数据获取模块包括:第一获取单元,用于在确定的数据源为Android系统时,直接从Android系统获取录音数据;和第二获取单元,用于在确定的数据源为作为服务端的其他应用端时,根据其他应用端的实例信息创建传输通道,通过创建的传输通道获取录音数据。由此,可以根据应用层和设备的状态来智能选取具体的传输方式,并通过创建的合适的传输通道进行数据的直接传输,显著提高了应用间、进程间录音数据的分发效率,降低应用上层封装难度。
根据本发明的另一个方面,提供了一种电子设备,其包括:至少一个处理器,以及与所述至少一个处理器通信连接的存储器,其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行上述方法的步骤。
根据本发明的另一个方面,提供了一种存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现上述方法的步骤。
附图说明
图1为本发明一实施方式的基于Android设备的录音数据的多进程分发方法流程图;
图2为本发明一实施方式的基于Android设备的录音数据的多进程分发系统框图;
图3为本发明一实施方式的电子设备原理图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
本发明可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、元件、数据结构等等。也可以在分布式计算环境中实践本发明,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
在本发明中,“模块”、“装置”、“系统”等指应用于计算机的相关实体,如硬件、硬件和软件的组合、软件或执行中的软件等。详细地说,例如,元件可以、但不限于是运行于处理器的过程、处理器、对象、可执行元件、执行线程、程序和/或计算机。还有,运行于服务器上的应用程序或脚本程序、服务器都可以是元件。一个或多个元件可在执行的过程和/或线程中,并且元件可以在一台计算机上本地化和/或分布在两台或多台计算机之间,并可以由各种计算机可读介质运行。元件还可以根据具有一个或多个数据包的信号,例如,来自一个与本地系统、分布式系统中另一元件交互的,和/或在因特网的网络通过信号与其它系统交互的数据的信号通过本地和/或远程过程来进行通信。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”,不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本发明实施例的基于Android设备的录音数据的多进程分发方法可以应用于需要进行多进程、多应用间共享录音数据的终端设备上,例如,具有录音功能和语音交互需求的车机、计算机、智能手机、平板电脑、智能家居等终端设备,本发明对此不作限制。由于本发明的方案可以做到在应用层实现录音数据共享,因而无需修改底层代码,可以快速、简便、高效地在应用了Andriod系统的设备上实现多应用、多进程间录音数据的共享。
图1示意性地显示了根据本发明的一种实施方式的基于Android设备的录音数据的多进程分发方法流程图,如图1所示,本实施例包括如下步骤:
步骤S101:应用端在获取录音数据之前,进行数据源的确定。本实施例中的数据源为Android系统或作为服务端的其他应用端。以Android的车载系统为例,在实际应用中可能会存在多个应用或不同的进程间需要同时使用录音数据的情况,示例性地,在蓝牙通话时,用户可能会同时想要开启语音导航,此时就产生了不同应用间需要同时使用录音数据的情况;而再如,在装载了语音助手的车载系统中,可能存在识别模组和唤醒模组需要同时获取录音数据的情况,而一般情况下识别模组和唤醒模组是独立且并行的,此时就产生了不同进程间需要同时使用录音数据的情况。在本发明实施例中,当前应用端即当前启动的需要使用录音数据的进程或应用,例如为识别模组或唤醒模组或蓝牙应用或导航应用或音乐应用等。当用户启动当前应用端时,根据本发明实施例的技术实现,当前应用端会首先获取Android设备上的所有应用端,并向所有应用端发送指定通信消息进行数据源确定,之后当前应用端就基于接收到的对指定通信消息的响应消息确定数据源。其中,发送的指定通信消息是根据自定义协议封装的用于确定是否有其他应用端已经在使用录音数据的广播消息,当其他应用端收到该消息时,就会根据自定义协议来解析该指定通信消息,并根据自身情况作出响应,具体地,如果其他应用端已经在使用录音数据且其是被配置成了服务端的,那么该作为服务端的其他应用端就会根据自定义协议来对这个指定通信消息进行响应,即反馈响应消息。这样,当前应用端就可以根据其接收到的对指定通信消息的响应来进行数据源的确定,具体可以是在接收到响应消息时,就将响应消息的发送方确定为数据源,如果未接收到任何响应消息时,就将Android系统作为数据源。其中,优选地,在确定的数据源为Android系统时,当前应用端则将自己设定为服务端,并将该应用端配置成在接收到指定通信消息时返回响应消息,这样,如果有一个应用端是首次使用录音数据的应用,那么其就作为分发录音数据的数据源,使得其他应用可以不再从系统获取录音数据,而是从该应用端就可以获取到录音数据,以实现应用层的录音数据分发和共享。其中,将自身设置为服务端的具体实现方式为首先创建服务端,再设置通信端口,对外(其它应用)发布服务端信息,并存储通信端口信息,示例性地,可以通过AIDL在自身创建服务端并分布和存储服务端信息,以供其他应用端作为客户端来访问和获取数据。
步骤S102:应用端根据确定的数据源获取录音数据。在确定数据源后,当数据源为Android系统时,直接从Android系统获取录音数据,获取的方式实现为直接从Android系统的录音入口获取录音数据,这部分是采用原有的录音数据获取方式即可实现的。在数据源为作为服务端的其他应用端时,则根据其他应用端的实例信息创建传输通道,通过创建的传输通道获取录音数据。其中,实例信息包括应用名称、应用ID、应用端所在进程号、应用端所属包名和应用端通信端口,应用程序可以调用Android系统的相应接口来获取到自身的实例信息,在具体实现中,当前应用端在发送指定通信消息时,做出响应的其他应用端可以先通过Android系统的相应接口来获取到自身的实例信息并根据自定义协议封装到响应消息中,以发送给作出请求的当前应用端,这样,当前应用端就可以根据其他应用端的实例信息创建传输通道,其具体可以实现为根据应用端所在进程号或应用端通信端口确定选用的传输方式,示例性地,可以是根据应用端所在进程号进行判断,在判断其他应用端与应用端位于同一进程时,选用AIDL作为传输方式,否则选用Socket作为传输方式;或根据应用端通信端口进行判断,在判断其他应用端与所述应用端位于同一网段时,选用AIDL作为传输方式,否则选用Socket作为传输方式。再根据选用的传输方式通过实例信息建立与应用端通信端口的通信连接。通过socket和AIDL的结合,显著提高了应用间、进程间录音数据的分发效率,降低应用上层封装难度。
以车载系统的语音应用为例,识别模组(ASR)与唤醒模组(WAKEUP)一般为独立且并行。在基于本实施例的方法后,当以识别模组为主进程时,主进程默认开始录音,并设置自身为服务端,准备向外分发数据,此时,如果唤醒模组的进程启动时,就会通过发送指定通信消息和获取响应消息的方式检测到已有主进程数据即识别模组在使用录音数据,那么仅需要通过分发渠道即上述的创建传输方式就可以获取录音数据,不需要额外处理数据拥塞、数据缓存等策略,提升代码重用性,降低模块间耦合关系。
以车载系统的蓝牙应用为例,在进行蓝牙通话时,常用方法为停止其它录音,改为由蓝牙应用独占,但此时如果有车载导航请求,而用户正处理开车场景下,不便用手操作。当基于本实施例的方法后,在收到蓝牙来电后,就会与车主设备上的所有应用进行通信,以确定数据源,如果没有其他应用端在使用录音数据,则会蓝牙通话在从车载系统获取录音数据的同时,会将蓝牙通话的应用设置为服务端,此时如果有车载导航请求被启动,就会通过发送指定通信消息和获取响应消息来确定蓝牙通话的应用端为数据源,从而与其建立通信,在建立通信时会通过响应消息中的实例信息确认数据通道为跨进程,并采用对应的传输方式获取录音数据,不需要独占处理,从而实现录音数据的跨进程共享。
在优选实施方式中,当前应用端在进行数据源的确定之前还进行如下处理:首先响应于整个分发方法的启动指令,启动Andriod录音接口,进行录音配置的初始化,该初始化包括设定录音采样率、比特数据、缓冲区准备等参数。在根据确定的数据源获取录音数据时,当前应用端还将配置的初始化信息传输至数据源以用于获取录音数据。这样,当前应用端仅需要通过设置所需的录音参数,就可以从其他应用端或系统获取到所需的录音数据,不需要进行其他的处理,避免多进程录音数据分发的复杂实现。
根据本实施例提供的方法,可以在多进程进行的情况下,智能的选取具体传输方式进行录音数据的共享和分发,在应用层不需要进行过多的操作,避免了多进程录音的复杂的实现。
图2示意性地显示了根据本发明一实施方式的基于Android设备录音数据的多进程分发系统框图,
基于Android设备录音数据的多进程分发系统包括:数据源确定模块1和数据获取模块2,数据源确定模块1用于用于在获取录音数据之前,基于其所发出的指定通信消息的响应情况进行数据源的确定,其中,数据源为Android系统或作为服务端的其他应用端;数据获取模块2用于根据确定的数据源获取录音数据,其中,发送的指定通信消息是根据自定义协议封装的用于确定是否有其他应用端已经在使用录音数据的广播消息,当其他应用端收到该消息时,就会根据自定义协议来解析该指定通信消息,并根据自身情况作出响应,具体地,如果其他应用端已经在使用录音数据且其是被配置成了服务端的,那么该作为服务端的其他应用端就会根据自定义协议来对这个指定通信消息进行响应,即反馈响应消息。这样,当前应用端就可以根据其接收到的对指定通信消息的响应来进行数据源的确定,具体可以是在接收到响应消息时,就将响应消息的发送方确定为数据源,如果未接收到任何响应消息时,就将Android系统作为数据源。
其中,数据源确定模块1包括:消息分发单元101、响应处理单元102和服务端配置单元103,消息分发单元101用于获取Android设备上的所有应用端,并向所有应用端发送指定通信消息;响应处理单元102用于在接收到响应消息时,将响应消息的发送方确定为数据源,或在未接收到任何响应消息时,将Android系统作为数据源。服务端配置单元103用于在确定的数据源为Android系统时,将当前应用端自己设定为服务端并配置成在接收到指定通信消息时返回响应消息。具体实现方式可以参照上述方法部分的描述,在此不进行赘述。
具体地,作为一种优选实施方式,数据获取模块2包括第一获取单元201和第二获取单元202:第一获取单元201用于在确定的数据源为Android系统时,直接从Android系统获取录音数据;第二获取单元202用于在确定的数据源为作为服务端的其他应用端时,根据其他应用端的实例信息创建传输通道,通过创建的传输通道获取录音数据。其中,实例信息包括应用名称、应用ID、应用端所在进程号、应用端所属包名和应用端的通信端口,根据其他应用端的实例信息创建传输通道实现为根据应用端所在进程号或应用端通信端口确定选用的传输方式,即根据应用端所在进程号进行判断,在判断其他应用端与应用端位于同一进程时,选用AIDL作为传输方式,否则选用Socket作为传输方式;或根据应用端的通信端口进行判断,在判断其他应用端与所述应用端位于同一网段时,选用AIDL作为传输方式,否则选用Socket作为传输方式。再根据选用的传输方式通过实例信息建立与所述应用端的通信端口的通信连接。进一步具体实现过程,可以参照上文方法部分,在此不再赘述。通过socket和AIDL的结合,显著提高了应用间、进程间录音数据的分发效率,降低应用上层封装难度。
在优选实施方式中,还包括初始化模块(图中未示),其用于在应用端进行数据源的确定之前的初始化处理,具体实现为:首先响应于整个分发方法的启动指令,启动Andriod录音接口,进行录音配置的初始化,该初始化包括设定录音采样率、比特数据、缓冲区准备等参数。在根据确定的数据源获取录音数据时,当前应用端还将配置的初始化信息传输至数据源以用于获取录音数据。由此,可以对根据需求获取到符合预期的录音数据,且应用层不需要做过多的处理,实现简单。
根据本实施例提供的基于Android设备录音数据的多进程分发系统,可以实现在多进程进行的情况下,智能的选取具体传输方式进行录音数据的分发和共享,在应用层不需要进行过多的操作,避免了多进程录音的复杂的实现。
在一些实施例中,本发明实施例提供一种非易失性计算机可读存储介质,所述存储介质中存储有一个或多个包括执行指令的程序,所述执行指令能够被电子设备(包括但不限于计算机,服务器,或者网络设备等)读取并执行,以用于执行本发明上述基于Android设备录音数据的多进程分发的方法。
在一些实施例中,本发明实施例还提供一种计算机程序产品,计算机程序产品包括存储在非易失性计算机可读存储介质上的计算机程序,计算机程序包括程序指令,当所程序指令被计算机执行时,使计算机执行上述基于Android设备录音数据的多进程分发的方法。
在一些实施例中,本发明实施例还提供一种电子设备,其包括:至少一个处理器,以及与至少一个处理器通信连接的存储器;其中,存储器存储有可被至少一个处理器执行的指令,指令被所述至少一个处理器执行,以使至少一个处理器能够执行上述基于Android设备录音数据的多进程分发的方法。
在一些实施例中,本发明实施例还提供一种存储介质,其上存储有计算机程序,该程序被处理器执行时能够执行上述基于Android设备录音数据的多进程分发的方法。
上述本发明实施例的基于Android设备录音数据的多进程分发的装置可用于执行本发明实施例的基于Android设备录音数据的多进程分发的方法,并相应的达到上述本发明实施例的实现基于Android设备录音数据的多进程分发的方法所达到的技术效果,这里不再赘述。本发明实施例中可以通过硬件处理器(hardware processor)来实现相关功能模块。
图3是本申请另一实施例提供的执行基于Android设备录音数据的多进程分发的方法的电子设备的硬件结构示意图,如图3所示,该设备包括:
一个或多个处理器510以及存储器520,图3中以一个处理器510为例。
执行基于Android设备录音数据的多进程分发的方法的设备还可以包括:输入装置530和输出装置540。
处理器510、存储器520、输入装置530和输出装置540可以通过总线或者其他方式连接,图3中以通过总线连接为例。
存储器520作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块,如本申请实施例中的基于Android设备录音数据的多进程分发的方法对应的程序指令/模块。处理器510通过运行存储在存储器520中的非易失性软件程序、指令以及模块,从而执行服务器的各种功能应用以及数据处理,即实现上述方法实施例中的基于Android设备录音数据的多进程分发的方法。
存储器520可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据基于Android设备录音数据的多进程分发的装置的使用所创建的数据等。此外,存储器520可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实施例中,存储器520可选包括相对于处理器510远程设置的存储器,这些远程存储器可以通过网络连接至基于Android设备录音数据的多进程分发的装置。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
输入装置530可接收输入的数字或字符信息,以及产生与基于Android设备录音数据的多进程分发的装置的用户设置以及功能控制有关的信号。输出装置540可包括显示屏等显示设备。
上述一个或者多个模块存储在所述存储器520中,当被所述一个或者多个处理器510执行时,执行上述任意方法实施例中的基于Android设备录音数据的多进程分发的方法。
上述产品可执行本申请实施例所提供的方法,具备执行方法相应的功能模块和有益效果。未在本实施例中详尽描述的技术细节,可参见本申请实施例所提供的方法。
本申请实施例的电子设备以多种形式存在,包括但不限于:
(1)移动通信设备:这类设备的特点是具备移动通信功能,并且以提供话音、数据通信为主要目标。这类终端包括:智能手机(例如iPhone)、多媒体手机、功能性手机,以及低端手机等。
(2)超移动个人计算机设备:这类设备属于个人计算机的范畴,有计算和处理功能,一般也具备移动上网特性。这类终端包括:PDA、MID和UMPC设备等,例如iPad。
(3)便携式娱乐设备:这类设备可以显示和播放多媒体内容。该类设备包括:音频、视频播放器(例如iPod),掌上游戏机,电子书,以及智能玩具和便携式车载导航设备。
(4)服务器:提供计算服务的设备,服务器的构成包括处理器、硬盘、内存、系统总线等,服务器和通用的计算机架构类似,但是由于需要提供高可靠的服务,因此在处理能力、稳定性、可靠性、安全性、可扩展性、可管理性等方面要求较高。
(5)其他具有数据交互功能的电子装置。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对相关技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。
Claims (11)
1.基于Android设备的录音数据的多进程分发方法,其特征在于,包括如下步骤:
当前应用端在获取录音数据之前,基于其所发出的指定通信消息的响应情况进行数据源的确定,其中,所述数据源为Android系统或作为服务端的其他应用端;
所述当前应用端根据确定的数据源获取录音数据。
2.根据权利要求1所述的方法,其特征在于,所述当前应用端在获取录音数据之前,基于其所发出的指定通信消息的响应情况进行数据源的确定包括
所述当前应用端配置成响应于启动指令,获取Android设备上的所有应用端,并向所有应用端发送指定通信消息;
所述当前应用端基于接收到的对所述指定通信消息的响应消息确定数据源,其实现为:在接收到响应消息时,将响应消息的发送方确定为数据源,或在未接收到任何响应消息时,将Android系统作为数据源,并将自身设定为服务端且配置成在接收到作为客户端的其他应用端的指定通信消息时返回响应消息。
3.根据权利要求2所述的方法,其特征在于,所述当前应用端根据确定的数据源获取录音数据包括
在数据源为Android系统时,直接从Android系统获取录音数据;
在数据源为作为服务端的其他应用端时,根据其他应用端的实例信息创建传输通道,通过创建的传输通道获取录音数据。
4.根据权利要求3所述的方法,其特征在于,所述实例信息包括应用名称、应用ID、应用端所在进程号、应用端所属包名和应用端通信端口,
所述根据其他应用端的实例信息创建传输通道包括
根据所述应用端所在进程号或应用端通信端口确定选用的传输方式;
根据选用的传输方式通过所述实例信息建立与所述应用端通信端口的通信连接。
5.根据权利要求4所述的方法,其中,所述根据应用端所在进程号或应用端通信端口确定选用的传输方式实现为
根据应用端所在进程号进行判断,在判断其他应用端与所述应用端位于同一进程时,选用AIDL作为传输方式,否则选用Socket作为传输方式;或
根据应用端通信端口进行判断,在判断其他应用端与所述应用端位于同一网段时,选用AIDL作为传输方式,否则选用Socket作为传输方式。
6.根据权利要求1-5任意一项所述的方法,其特征在于,所述当前应用端在进行数据源的确定之前还进行如下处理:
响应于启动指令,在获取Android设备上的所有应用端之前,先启动Andriod录音接口,进行录音配置的初始化;
在根据确定的数据源获取录音数据时,所述当前应用端还将配置的初始化信息传输至数据源以用于获取录音数据。
7.基于Android设备的录音数据的多进程分发系统,其特征在于,包括:
数据源确定模块,用于在获取录音数据之前,基于其所发出的指定通信消息的响应情况进行数据源的确定,其中,所述数据源为Android系统或作为服务端的其他应用端;和
数据获取模块,用于根据确定的数据源获取录音数据。
8.根据权利要求7所述的系统,其特征在于,所述数据源确定模块包括:
消息分发单元,用于获取Android设备上的所有应用端,并向所有应用端发送指定通信消息;
响应处理单元,用于在接收到响应消息时,将响应消息的发送方确定为数据源,或在未接收到任何响应消息时,将Android系统作为数据源;和
服务端配置单元,用于在确定的数据源为Android系统时,将当前应用端自己设定为服务端并配置成在接收到指定通信消息时返回响应消息。
9.根据权利要求8所述的系统,其特征在于,所述数据获取模块包括:
第一获取单元,用于在确定的数据源为Android系统时,直接从Android系统获取录音数据;和
第二获取单元,用于在确定的数据源为作为服务端的其他应用端时,根据其他应用端的实例信息创建传输通道,通过创建的传输通道获取录音数据。
10.电子设备,其包括:至少一个处理器,以及与所述至少一个处理器通信连接的存储器,其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-6中任意一项所述方法的步骤。
11.存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现权利要求1-6中任意一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911030758.9A CN110781014B (zh) | 2019-10-28 | 2019-10-28 | 基于Android设备的录音数据的多进程分发方法与系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911030758.9A CN110781014B (zh) | 2019-10-28 | 2019-10-28 | 基于Android设备的录音数据的多进程分发方法与系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110781014A true CN110781014A (zh) | 2020-02-11 |
CN110781014B CN110781014B (zh) | 2022-11-01 |
Family
ID=69386985
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911030758.9A Active CN110781014B (zh) | 2019-10-28 | 2019-10-28 | 基于Android设备的录音数据的多进程分发方法与系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110781014B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114245060A (zh) * | 2022-02-28 | 2022-03-25 | 荣耀终端有限公司 | 通路处理方法、装置、设备和存储介质 |
CN114501376A (zh) * | 2021-12-24 | 2022-05-13 | 中汽创智科技有限公司 | 一种车载通信方法、装置、设备以及存储介质 |
CN114500436A (zh) * | 2021-12-22 | 2022-05-13 | 天翼云科技有限公司 | 一种数据传输方法及装置、电子设备 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103209392A (zh) * | 2012-01-16 | 2013-07-17 | 腾讯科技(深圳)有限公司 | 一种跨进程多应用消息推送方法及装置 |
US20130205284A1 (en) * | 2012-02-02 | 2013-08-08 | Dhruva Chakrabarti | Ownership acquire policy selection |
CN106648921A (zh) * | 2016-09-30 | 2017-05-10 | 北京奇虎科技有限公司 | 一种实现安卓系统中共享录音数据的方法及电子设备 |
CN106897146A (zh) * | 2017-02-09 | 2017-06-27 | 青岛海信移动通信技术股份有限公司 | 一种终端的麦克风的数据处理方法和具有麦克风的终端 |
-
2019
- 2019-10-28 CN CN201911030758.9A patent/CN110781014B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103209392A (zh) * | 2012-01-16 | 2013-07-17 | 腾讯科技(深圳)有限公司 | 一种跨进程多应用消息推送方法及装置 |
US20130205284A1 (en) * | 2012-02-02 | 2013-08-08 | Dhruva Chakrabarti | Ownership acquire policy selection |
CN106648921A (zh) * | 2016-09-30 | 2017-05-10 | 北京奇虎科技有限公司 | 一种实现安卓系统中共享录音数据的方法及电子设备 |
CN106897146A (zh) * | 2017-02-09 | 2017-06-27 | 青岛海信移动通信技术股份有限公司 | 一种终端的麦克风的数据处理方法和具有麦克风的终端 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114500436A (zh) * | 2021-12-22 | 2022-05-13 | 天翼云科技有限公司 | 一种数据传输方法及装置、电子设备 |
CN114501376A (zh) * | 2021-12-24 | 2022-05-13 | 中汽创智科技有限公司 | 一种车载通信方法、装置、设备以及存储介质 |
CN114245060A (zh) * | 2022-02-28 | 2022-03-25 | 荣耀终端有限公司 | 通路处理方法、装置、设备和存储介质 |
CN114245060B (zh) * | 2022-02-28 | 2022-07-05 | 荣耀终端有限公司 | 通路处理方法、装置、设备和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN110781014B (zh) | 2022-11-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102242413B1 (ko) | 앱을 다운로드하는 방법 및 앱을 실행시키는 방법 | |
CN108536524B (zh) | 资源更新方法、装置、终端及存储介质 | |
CN110459221B (zh) | 多设备协同语音交互的方法和装置 | |
US20170163479A1 (en) | Method, Device and System of Renewing Terminal Configuration In a Memcached System | |
US10698736B2 (en) | Method for resource allocation and terminal device | |
AU2019256257B2 (en) | Processor core scheduling method and apparatus, terminal, and storage medium | |
US20170163478A1 (en) | Method,electronic device and system for updating client configuration in key-value pair database | |
CN110673964A (zh) | 一种车载系统的音频播放控制方法和装置 | |
CN111813601B (zh) | 有状态分布式集群的微服务回滚方法及装置 | |
CN110781014B (zh) | 基于Android设备的录音数据的多进程分发方法与系统 | |
WO2022017007A1 (zh) | 音频数据处理方法、服务器及存储介质 | |
WO2016150191A1 (zh) | 一种数据共享方法及装置 | |
KR20180100371A (ko) | 데이터 전송 방법 및 디바이스 | |
CN110890094A (zh) | 物联网设备语音控制方法及语音服务端 | |
CN112689012A (zh) | 跨网络的代理通讯方法及装置 | |
CN112328413A (zh) | 应用服务的调用方法、装置及系统 | |
CN104461581A (zh) | 一种基于虚拟化技术的硬件调用、共享方法及系统 | |
CN112468574B (zh) | 应用服务发布订阅机制的处理方法、装置及系统 | |
CN114257532A (zh) | 服务端状态探测方法及装置 | |
CN111767558B (zh) | 数据访问监控方法、装置及系统 | |
CN109981778B (zh) | 内容分发网络的服务实现方法、装置、设备及存储介质 | |
CN107395493B (zh) | 一种基于意图Intent分享消息的方法及装置 | |
CN112367362B (zh) | 一种数据处理方法、装置、设备及计算机存储介质 | |
WO2022083342A1 (zh) | 数据传输方法和电子设备 | |
CN115269063A (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 | ||
CB02 | Change of applicant information |
Address after: 215123 building 14, Tengfei Innovation Park, 388 Xinping street, Suzhou Industrial Park, Suzhou City, Jiangsu Province Applicant after: Sipic Technology Co.,Ltd. Address before: 215123 building 14, Tengfei Innovation Park, 388 Xinping street, Suzhou Industrial Park, Suzhou City, Jiangsu Province Applicant before: AI SPEECH Co.,Ltd. |
|
CB02 | Change of applicant information | ||
GR01 | Patent grant | ||
GR01 | Patent grant |