应用程序的录音方法、终端设备及介质技术

技术编号:24330788 阅读:80 留言:0更新日期:2020-05-29 19:32
本发明专利技术适用于信息处理技术领域,提供了一种应用程序的录音方法、终端设备及介质,该方法包括:分别创建对应于各个应用程序的客户端实例;若检测到两个以上的客户端实例所关联的录音事件被触发,则在预先生成的服务端录音线程中,分别创建与各个客户端实例所对应的音轨区域;获取预置的音频拾取器所采集得到的录音数据,并将录音数据分别存储至各个音轨区域;对每一应用程序所对应的客户端实例,在与该客户端实例对应的音轨区域中,基于服务端录音线程执行录音数据的读取操作,以完成关联应用程序的录音事件。本发明专利技术实现多个应用程序的同步录音,提高了应用程序的交互能力;避免了产生应用程序错误的情况,由此也提高了应用程序的稳定性及可靠性。

【技术实现步骤摘要】
应用程序的录音方法、终端设备及介质
本专利技术属于信息处理
,尤其涉及一种应用程序的录音方法、终端设备及计算机可读存储介质。
技术介绍
开源的代码库,免费的开发软件、社区以及第三方开源共享,使得安卓系统在当前的应用开发市场中占据了越来越重要的地位。安卓系统中通常运行有用于执行录音操作的应用程序。录音功能的实现涉及安卓系统所提供的多个架构层级,包括Java层、Native层以及Linux内核底层等。其中,AudioRecord是安卓系统提供的用于实现录音的功能类,是Java层应用程序在Native层的实例;Native层的Audio硬件抽象层则负责操控Linux内核底层的麦克风硬件。当Java层的某一应用程序需要启动录音时,对应该应用程序的服务端录音线程将会通过Audio硬件抽象层,从麦克风中获得并保存录音数据。此后,该应用程序才能够从Native层中读取这些录音数据,以完成录音操作。在安卓系统中,经常会出现多个应用程序同时运行的情况。然而,由于麦克风硬件在同一时刻只能被一个服务端录音线程占用,因此,若同时运行的多个应用程序都需要启动录音功能,则将会因多个服务端录音线程的冲突而产生应用程序错误的情况,从而降低了应用程序的稳定性以及可靠性。
技术实现思路
有鉴于此,本专利技术实施例提供了一种应用程序的录音方法、终端设备及计算机可读存储介质,以解决现有技术中,当同时运行的多个应用程序都需要启动录音功能时,容易产生应用程序错误,由此降低了应用程序的稳定性以及可靠性的问题。本专利技术实施例的第一方面提供了一种应用程序的录音方法,包括:分别创建对应于各个应用程序的客户端实例;若检测到两个以上的所述客户端实例所关联的录音事件被触发,则在预先生成的服务端录音线程中,分别创建与各个所述客户端实例所对应的音轨区域;获取预置的音频拾取器所采集得到的录音数据,并将所述录音数据分别存储至各个所述音轨区域;对每一所述应用程序所对应的所述客户端实例,在与该客户端实例对应的所述音轨区域中,基于所述服务端录音线程执行录音数据的读取操作,以完成关联该应用程序的录音事件。本专利技术实施例的第二方面提供了一种应用程序的录音装置,包括:第一创建单元,用于分别创建对应于各个应用程序的客户端实例;第二创建单元,用于若检测到两个以上的所述客户端实例所关联的录音事件被触发,则在预先生成的服务端录音线程中,分别创建与各个所述客户端实例所对应的音轨区域;获取单元,用于获取预置的音频拾取器所采集得到的录音数据,并将所述录音数据分别存储至各个所述音轨区域;读取单元,用于对每一所述应用程序所对应的所述客户端实例,在与该客户端实例对应的所述音轨区域中,基于所述服务端录音线程执行录音数据的读取操作,以完成关联该应用程序的录音事件。本专利技术实施例的第三方面提供了一种终端设备,包括存储器以及处理器,所述存储器存储有可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如第一方面所述的应用程序的录音方法的步骤。本专利技术实施例的第四方面提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如第一方面所述的应用程序的录音方法的步骤。本专利技术实施例中,当检测到两个以上的客户端实例所关联的录音事件被触发时,表示多个应用程序同时启动了录音功能,通过在预先生成的一个服务端录音线程中,分别创建与各个客户端实例所对应的音轨区域,并将采集得到的录音数据分别存储至各个音轨区域,使得各个应用程序在请求加载录音数据时,均能够从自身对应的一个音轨区域中读取所需的录音数据,从而实现多个应用程序的同步录音,保证了每个应用程序在获得录音数据后,能够利用这些录音数据来完成各项不同的应用功能,故提高了应用程序的交互能力;避免了产生应用程序错误的情况,由此也提高了应用程序的稳定性以及可靠性。附图说明为了更清楚地说明本专利技术实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。图1是本专利技术实施例提供的应用程序的录音方法的实现流程图;图2是本专利技术实施例提供的关于应用程序录音过程的数据流图;图3是本专利技术实施例提供的应用程序的录音方法S102的具体实现流程图;图4是本专利技术实施例提供的应用程序的录音方法S1021的具体实现流程图;图5是本专利技术实施例提供的应用程序的录音方法S103的具体实现流程图;图6是本专利技术实施例提供的应用程序的录音装置的结构框图;图7是本专利技术实施例提供的终端设备的示意图。具体实施方式以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本专利技术实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本专利技术。在其它情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本专利技术的描述。为了说明本专利技术所述的技术方案,下面通过具体实施例来进行说明。图1示出了本专利技术实施例提供的应用程序的录音方法的实现流程,该方法流程包括步骤S101至S104。各步骤的具体实现原理如下:S101:分别创建对应于各个应用程序的客户端实例。本专利技术实施例中,录音功能的实现涉及安卓系统所提供的多个架构层级,包括Java层、Native层以及Linux内核底层等。其中,AudioRecord是安卓系统提供的用于实现录音的功能类,是Java层应用程序在Native层的客户端实例;Native层的Audio硬件抽象层则负责操控Linux内核底层的麦克风硬件。在本专利技术的各个实施例中,以两个应用程序为例,阐述两个应用程序在同时触发录音事件时,安卓系统内部所产生的录音数据的数据流向关系。值得注意的是,除了上述两个应用程序同时触发录音事件的场景之外,本专利技术实施例所提供的应用程序的录音方法还适用于一个或多个应用程序同时触发录音事件的场景之下,在此不作限定。具体地,图2示出了本专利技术实施例提供的关于应用程序录音过程的数据流图,如图2所示的数据流图用于描述两个应用程序在同时触发录音事件时,安卓系统内部所产生的录音数据的数据流向关系。在图2中,运行于Java层的应用程序包括应用程序1以及应用程序2,则在Native层中,分别创建对应于各个应用程序的客户端实例AudioRecord。示例性地,与应用程序1对应的客户端实例为客户端1;与应用程序2对应的客户端实例为客户端2。AudioFlinger与AudioPolicyService是音频在Native层的服务,AudioFlinger管理着多个服务端录音线程,用于处理录音数据;AudioPolicyService主要用于控制服务端录音线程的开启、暂停和释放;Native层本文档来自技高网...

【技术保护点】
1.一种应用程序的录音方法,其特征在于,包括:/n分别创建对应于各个应用程序的客户端实例;/n若检测到两个以上的所述客户端实例所关联的录音事件被触发,则在预先生成的服务端录音线程中,分别创建与各个所述客户端实例所对应的音轨区域;/n获取预置的音频拾取器所采集得到的录音数据,并将所述录音数据分别存储至各个所述音轨区域;/n对每一所述应用程序所对应的所述客户端实例,在与该客户端实例对应的所述音轨区域中,基于所述服务端录音线程执行录音数据的读取操作,以完成关联该应用程序的录音事件。/n

【技术特征摘要】
1.一种应用程序的录音方法,其特征在于,包括:
分别创建对应于各个应用程序的客户端实例;
若检测到两个以上的所述客户端实例所关联的录音事件被触发,则在预先生成的服务端录音线程中,分别创建与各个所述客户端实例所对应的音轨区域;
获取预置的音频拾取器所采集得到的录音数据,并将所述录音数据分别存储至各个所述音轨区域;
对每一所述应用程序所对应的所述客户端实例,在与该客户端实例对应的所述音轨区域中,基于所述服务端录音线程执行录音数据的读取操作,以完成关联该应用程序的录音事件。


2.如权利要求1所述的应用程序的录音方法,其特征在于,所述获取预置的音频拾取器所采集得到的录音数据,并将所述录音数据分别存储至各个所述音轨区域,包括:
确定所述客户端实例所请求加载的录音数据的数据格式;
获取预置的音频拾取器所采集得到的录音数据,并识别所述录音数据的脉冲编码调制PCM格式;
若所述PCM格式与所述数据格式不匹配,则将所述录音数据的PCM格式转换为所述数据格式,并将转换后的所述录音数据存储至与该客户端实例对应的所述音轨区域。


3.如权利要求1所述的应用程序的录音方法,其特征在于,所述若检测到两个以上的所述客户端实例所关联的录音事件被触发,则在预先生成的服务端录音线程中,分别创建与各个所述客户端实例所对应的音轨区域,包括:
若检测到两个以上的所述客户端实例所关联的录音事件被触发,则判断是否存在预先生成的服务端录音线程;
若存在预先生成的服务端录音线程,则在所述服务端录音线程中,分别创建与各个所述客户端实例所对应的音轨区域;
若不存在预先生成的服务端录音线程,则创建一服务端录音线程后,返回执行所述判断是否存在预先生成的服务端录音线程的步骤。


4.如权利要求3所述的应用程序的录音方法,其特征在于,所述若检测到两个以上的所述客户端实例所关联的录音事件被触发,则判断是否存在预先生成的服务端录音线程,包括:
若检测到两个以上的所述客户端实例所关联的录音事件被触发,则确定各个所述客户端实例所请求加载的录音数据的数据格式;
若存在所述请求加载的录音数据的数据格式相同的任意两个所述客户端实例,则确定出其中录音事件触发时间在后的所述客户端实例,并停止关于该客户端实例的所述录音事件。


5.如权利要求1所述的应用程序的录音方法,其特征在于,对每一所述应用程序所对应的所述客户端实例,在与该客户端实例对应的所述音轨区域中,基于所述服务端录音线程...

【专利技术属性】
技术研发人员:熊友军潘宇超
申请(专利权)人:深圳市优必选科技有限公司
类型:发明
国别省市:广东;44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1