音频输入控制方法及装置转让专利

申请号 : CN201711426102.X

文献号 : CN108111954B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 钟华陈凌奇程振华

申请人 : 微鲸科技有限公司

摘要 :

本发明提供了一种音频输入控制方法及装置,涉及录音技术领域,应用于主机设备的中间件中,所述主机设备连接至少一个音频输入设备,所述方法包括:若所述中间件被启动,确定主机设备当前连接的音频输入设备,根据预设优先级信息在当前连接的音频输入设备中确定目标音频设备,若确定已安装与所述目标音频设备对应的开发包,调用所述开发包的开发包接口驱动目标音频设备录音。本发明提供了一种音频输入控制方法及装置,克服了录音应用不能使用多种设备的缺点,通过在应用层与底层驱动之间设定中间件,中间件可以根据预配置信息选择适用的录音设备,以满足用户的实际需要。

权利要求 :

1.一种音频输入控制方法,其特征在于,应用于主机设备的中间件中,所述主机设备连接至少一个音频输入设备,所述方法包括:若所述中间件被启动,确定主机设备当前连接的音频输入设备;

在当前连接的音频输入设备中确定目标音频设备;

若确定已安装与所述目标音频设备对应的开发包,调用所述开发包的开发包接口驱动目标音频设备录音;

若确定未安装与所述目标音频设备对应的开发包,调用主机设备的标准录音接口驱动目标音频设备录音。

2.根据权利要求1所述的音频输入控制方法,其特征在于,所述方法还包括:接收用户输入的预设优先级信息;

将所述预设优先级信息存储于预设路径下;

所述在当前连接的音频输入设备中确定目标音频设备,包括:根据所述预设优先级信息在当前连接的音频输入设备中确定目标音频设备。

3.根据权利要求2所述的音频输入控制方法,其特征在于,在若所述中间件被启动,确定主机设备当前连接的音频输入设备之前,所述方法还包括:向底层操作系统发送查询请求;

接收所述底层操作系统根据所述查询请求返回的查询信息,所述查询信息包括:所述当前连接的音频输入设备的设备标识。

4.根据权利要求3所述的音频输入控制方法,其特征在于,所述方法还包括:若确定未安装与所述目标音频设备对应的开发包,调用标准录音接口驱动目标音频设备录音。

5.一种音频输入控制装置,其特征在于,包括:第一确定模块(11),用于若中间件被启动,确定主机设备当前连接的音频输入设备;

第二确定模块(12),用于在当前连接的音频输入设备中确定目标音频设备;

调用模块(13),用于若确定已安装与所述目标音频设备对应的开发包,调用所述开发包的开发包接口驱动目标音频设备录音;

若确定未安装与所述目标音频设备对应的开发包,调用主机设备的标准录音接口驱动目标音频设备录音。

6.根据权利要求5所述的音频输入控制装置,其特征在于,还包括:接收模块,用于接收用户输入的预设优先级信息;

存储模块,用于将所述预设优先级信息存储于预设路径下。

7.一种电子设备,包括存储器、处理器,所述存储器中存储有可在所述处理器上运行的计算机程序,其特征在于,程序代码使所述处理器执行所述权利要求1至4任一项所述的方法。

8.一种具有处理器可执行的非易失的程序代码的计算机可读介质,其特征在于,所述程序代码使所述处理器执行权利要求1至4任一项所述的方法。

说明书 :

音频输入控制方法及装置

技术领域

[0001] 本发明涉及录音技术领域,尤其是涉及一种音频输入控制方法及装置。

背景技术

[0002] 当前,麦克风硬件厂商为应用(App)开发者提供设备定制开发包,App通过这个开发包的开发包接口来使用音频输入设备(如麦克风)的录音功能。由于设备定制开发包是开发商针对特定设备开发的,因此使用与音频输入设备匹配的设备定制开发包,一定能够使音频输入设备的使用效率最高、性能最优且用户体验最佳。
[0003] 然而,由于不同硬件厂商的定制开发包中的开发包接口都不尽相同,当选择某个厂商提供的设备定制包时,就只能使用该设备定制包所匹配的音频输入设备进行录音,无法使用其他厂商的设备,给用户的使用带来不便。

发明内容

[0004] 有鉴于此,本发明的目的在于提供一种音频输入控制方法及装置,以缓解了现有技术中当选择了某个厂商提供的设备定制包,就无法使用其他厂商的设备进行录音,给用户的使用带来不便的技术问题。
[0005] 第一方面,本发明实施例提供了一种音频输入控制方法,应用于主机设备的中间件中,所述主机设备连接至少一个音频输入设备,所述方法包括:
[0006] 若所述中间件被启动,确定主机设备当前连接的音频输入设备;
[0007] 在当前连接的音频输入设备中确定目标音频设备;
[0008] 若确定已安装与所述目标音频设备对应的开发包,调用所述开发包的开发包接口驱动目标音频设备录音。
[0009] 结合第一方面,本发明实施例提供了第一方面的第一种可能的实施方式,其中,所述方法还包括:
[0010] 接收用户输入的预设优先级信息;
[0011] 将所述预设优先级信息存储于预设路径下;
[0012] 所述在当前连接的音频输入设备中确定目标音频设备,包括:
[0013] 根据所述预设优先级信息在当前连接的音频输入设备中确定目标音频设备。
[0014] 结合第一方面,本发明实施例提供了第一方面的第二种可能的实施方式,其中,在若所述中间件被启动,确定主机设备当前连接的音频输入设备之前,所述方法还包括:
[0015] 向底层操作系统发送查询请求;
[0016] 接收所述底层操作系统根据所述查询请求返回的查询信息,所述查询信息包括:所述当前连接的音频输入设备的设备标识。
[0017] 结合第一方面,本发明实施例提供了第一方面的第三种可能的实施方式,其中,所述方法还包括:
[0018] 若确定未安装与所述目标音频设备对应的开发包,调用标准录音接口驱动目标音频设备录音。
[0019] 第二方面,本发明实施例还提供一种音频输入控制方法,应用于主机设备的标准录音接口中,所述方法包括:
[0020] 获取存储于预设存储位置的标志位信息;
[0021] 若确定所述标志位信息满足预设条件,启动中间件。
[0022] 结合第二方面,本发明实施例提供了第二方面的第一种可能的实施方式,其中,所述方法还包括:
[0023] 若确定所述标志位信息不满足预设条件,根据预设优先级信息在当前连接的音频输入设备中确定目标音频设备;
[0024] 驱动所述目标音频设备录音。
[0025] 第三方面,本发明实施例还提供一种音频输入控制装置,包括:
[0026] 第一确定模块,用于若中间件被启动,确定主机设备当前连接的音频输入设备;
[0027] 第二确定模块,用于在当前连接的音频输入设备中确定目标音频设备;
[0028] 调用模块,用于若确定已安装与所述目标音频设备对应的开发包,调用所述开发包的开发包接口驱动目标音频设备录音。
[0029] 结合第三方面,本发明实施例提供了第三方面的第一种可能的实施方式,其中,还包括:
[0030] 接收模块,用于接收用户输入的预设优先级信息;
[0031] 存储模块,用于将所述预设优先级信息存储于预设路径下。
[0032] 第四方面,本发明实施例还提供一种电子设备,包括存储器、处理器,所述存储器中存储有可在所述处理器上运行的计算机程序,所述程序代码使所述处理器执行第一方面或者第二方面所述的方法。
[0033] 第五方面,本发明实施例还提供一种具有处理器可执行的非易失的程序代码的计算机可读介质,所述程序代码使所述处理器执行第一方面或者第二方面所述的方法。
[0034] 本发明实施例带来了以下有益效果:本发明实施例提供一种音频输入控制方法及装置,克服了录音应用不能使用多种设备的缺点,通过在应用层与底层驱动之间设定中间件,中间件可以根据预配置信息选择适用的录音设备,以满足用户的实际需要。
[0035] 本发明的其他特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。
[0036] 为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。

附图说明

[0037] 为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0038] 图1为现有技术中的音频输入控制原理图;
[0039] 图2为本发明实施例提供的音频输入控制方法的流程示意图;
[0040] 图3为本发明另一个实施例提供的音频输入控制方法的流程示意图;
[0041] 图4为本发明实施例的音频输入控制原理图;
[0042] 图5为本发明实施例提供的录音流程示意图;
[0043] 图6为本发明另一个实施例提供的音频输入控制装置的结构示意图。
[0044] 图标:
[0045] 11-第一确定模块;12-第二确定模块;13-调用模块。

具体实施方式

[0046] 为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合附图对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0047] 如图1所示,现有的音频输入有两种方式:通过应用1,调用标准录音接口(即Android标准录音接口)驱动设备录音;通过应用2,调用设备定制开发包的开发包接口驱动设备录音。其中,对于第一种方式,如果使用安卓通用的标准录音接口,即只能把该设备作为通用设备使用,录音效果一般,延时高,但这种方式无法获得设备厂商提供的定制开发包的优化体验。而对于第二种方式,如果使用设备定制开发包对应的开发包接口,录音效果好,延时低,但这种方式需要应用与设备进行绑定,也就无法使用其他设备。
[0048] 由于每个设备定制开发包是开发商针对特定设备开发的,则对应的开发包接口就不同,不仅给应用开发者带来选择性的难题,还需应用开发者学习不同厂商的定制接口,增加开发成本,降低开发效率。
[0049] 目前,由于不同硬件厂商的定制开发包中的开发包接口都不尽相同,当选择某个厂商提供的设备定制包时,就只能使用该设备定制包所匹配的音频输入设备进行录音,无法使用其他厂商的设备,给用户的使用带来不便,基于此,本发明实施例提供的一种音频输入控制方法及装置,克服了录音应用不能使用多种设备的缺点,通过在应用层与底层驱动之间设定中间件,中间件可以根据预配置信息选择适用的录音设备,以满足用户的实际需要。
[0050] 为便于对本实施例进行理解,首先对本发明实施例所公开的一种音频输入控制方法进行详细介绍。
[0051] 如图2所示,在本发明的一个实施例中,提供了一种应用于主机设备的中间件的音频输入控制方法,所述主机设备连接至少一个音频输入设备,所述方法包括以下几个步骤。
[0052] S101,若所述中间件被启动,确定主机设备当前连接的音频输入设备。
[0053] 具体的,在若所述中间件被启动后,确定主机设备当前连接的音频输入设备之前,所述方法还包括以下步骤。
[0054] 中间件向底层操作系统发送查询请求。
[0055] 中间件接收所述底层操作系统根据所述查询请求返回的查询信息,所述查询信息包括:所述当前连接的音频输入设备的设备标识。
[0056] 例如,与主机设备连接的带话筒的耳机、喇叭、麦克风、带有录音功能的遥控器等录音设备,带话筒的耳机的设备标识为“AUDIO_DEVICE_OUT_WIRED_HEADSET”,耳机的设备标识为“AUDIO_DEVICE_OUT_SPEAKER”等。
[0057] S102,在当前连接的音频输入设备中确定目标音频设备。
[0058] 在实际应用中,所述中间件启动后,所述方法还包括以下步骤。
[0059] 接收用户输入的预设优先级信息。
[0060] 将所述预设优先级信息存储于预设路径下。
[0061] 中间件读取预设优先级信息,根据所述预设优先级信息在当前连接的音频输入设备中确定目标音频设备。
[0062] 例如,所述预设优先级信息包括使用不同音频设备的优先级级别分配信息,“麦克风-0”;“耳机-1”;“带话筒的遥控器-2”等。若主机设备当前连接的有麦克风、耳机和带话筒的遥控器,则优先用麦克风作为目标音频设备。在这里示出和描述的所有示例中,任何具体值应被解释为仅仅是示例性的,而不是作为限制,因此,示例性实施例的其他示例可以具有不同的值。
[0063] S103,若确定已安装与所述目标音频设备对应的开发包,调用所述开发包的开发包接口驱动目标音频设备录音。
[0064] 在实际应用中,当中间件选定需用的目标音频设备后,中间件会判断自身内存中是否安装有与所述目标音频设备对应的开发包。具体分为以下两种情况:
[0065] 若确定已安装与所述目标音频设备对应的开发包,调用所述开发包的开发包接口驱动目标音频设备录音;
[0066] 若确定未安装与所述目标音频设备对应的开发包,调用主机设备的标准录音接口驱动目标音频设备录音。这样就按照原来的录音标准流程,完全兼容之前的版本。
[0067] 本发明实施例提供一种音频输入控制方法,克服了录音应用不能使用多种设备的缺点,通过在应用层与底层驱动之间设定中间件,中间件可以根据预配置信息选择适用的录音设备,以满足用户的实际需要。
[0068] 如图3所示,在本发明的另一个实施例中,还提供了一种音频输入控制方法,应用于主机设备的标准录音接口中,所述方法包括以下步骤。
[0069] S201,获取存储于预设存储位置的标志位信息。
[0070] 具体的,当主机设备的应用(即APP)接收到用户输入的录音指令时,会调用标准录音接口判断是否使用中间件。标准录音接口读取存储于存储器内预设存储位置的标志位信息,并判断所述标志位信息是否满足预设条件。
[0071] S202,若确定所述标志位信息满足预设条件,启动所述中间件。
[0072] 具体的,当所述标志位信息满足预设条件(例如,所述标志位信息为1)时,启动中间件。
[0073] 当确定所述标志位信息不满足预设条件时,根据预设优先级信息在当前连接的音频输入设备中确定目标音频设备,利用标准录音接口驱动所述目标音频设备录音。
[0074] 以下以举例方式具体说明本发明实施例提供的音频输入控制方法的工作原理:
[0075] 如图4所示,以提供一种可以屏蔽设备厂商私有接口的控制中间件,所述空间件内集成了多个设备定制开发包。如图5所示,本发明实施例提供的录音流程如下:
[0076] 1.当应用接收到录音开始指令后,调用Android标准录音接口,Android标准录音接口通过读取标志位信息等方式启动或禁用中间件。若禁用中间件,执行安卓标准录音流程,即利用Android标准录音接口驱动设备录音,这样完全兼容之前的版本。
[0077] 2.若启动中间件,中间件根据由底层操作系统获取到的查询信息确定主机设备当前连接的至少一个音频输入设备,并根据预先配置的预设优先级信息在多个当前连接的音频设备中选定需使用的目标音频设备。
[0078] 3.中间件检测自身内存是否有安装有与所选定的目标音频设备对应的厂商定制开发包,若安装有对应的厂商定制开发包,则调用所述开发包的开发包接口驱动目标音频设备录音;若未安装有对应的厂商定制开发包,则执行安卓标准录音流程,即调用Android标准录音接口驱动设备录音。
[0079] 本发明实施例提供的音频输入控制方法有以下优点:
[0080] 1.对于应用开发者(示意图5中的App1、App2)可以使用Android的标录音准接口(AudioRecord),大大降低了开发成本(即无需学习各个硬件厂商的定制私有接口),提高开发效率;
[0081] 2.当安装了设备定制开发包时,优先选择设备定制软件所属的录音通路;
[0082] 3.可以支持多种录音设备,应用APP和录音设备之间无绑定关系,可以在多个设备之间灵活切换;
[0083] 4.通过中间件(MicSDK)调用设备定制开发包,使录音效果最优;
[0084] 5.如果中间件(MicSDK)内未安装设备定制包,利用Android标准录音接口驱动设备录音,使设备作为通用设备使用。
[0085] 本发明实施例所提供的装置,其实现原理及产生的技术效果和前述方法实施例相同,为简要描述,装置实施例部分未提及之处,可参考前述方法实施例中相应内容。如图6所示,在本发明的另一个实施例中,还提供了一种音频输入控制装置,包括:第一确定模块11、第二确定模块12和调用模块13。
[0086] 第一确定模块11,用于若所述中间件被启动,确定主机设备当前连接的音频输入设备。
[0087] 第二确定模块12,用于在当前连接的音频输入设备中确定目标音频设备。
[0088] 调用模块13,用于若确定已安装与所述目标音频设备对应的开发包,调用所述开发包的开发包接口驱动目标音频设备录音。
[0089] 在前述实施例的基础上,在本发明的另一个实施例中,所述音频输入控制装置还包括:接收模块和存储模块。
[0090] 接收模块,用于接收用户输入的预设优先级信息。
[0091] 存储模块,用于将所述预设优先级信息存储于预设路径下。
[0092] 在本发明的另一个实施例中,还提供了一种电子设备,包括存储器、处理器,所述存储器中存储有可在所述处理器上运行的计算机程序,所述程序代码使所述处理器执行应用于中间件的音频输入控制方法或者应用于标准录音接口的音频输入控制方法。
[0093] 在本发明的另一个实施例中,还提供了一种具有处理器可执行的非易失的程序代码的计算机可读介质,所述程序代码使所述处理器执行应用于中间件的音频输入控制方法或者应用于标准录音接口的音频输入控制方法。
[0094] 所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统和装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
[0095] 附图中的流程图和框图显示了根据本发明的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
[0096] 本发明实施例所提供的音频输入控制方法及系统的计算机程序产品,包括存储了程序代码的计算机可读存储介质,所述程序代码包括的指令可用于执行前面方法实施例中所述的方法,具体实现可参见方法实施例,在此不再赘述。
[0097] 所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统和装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
[0098] 另外,在本发明实施例的描述中,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。
[0099] 所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
[0100] 在本发明的描述中,需要说明的是,术语“中心”、“上”、“下”、“左”、“右”、“竖直”、“水平”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。此外,术语“第一”、“第二”、“第三”仅用于描述目的,而不能理解为指示或暗示相对重要性。
[0101] 最后应说明的是:以上所述实施例,仅为本发明的具体实施方式,用以说明本发明的技术方案,而非对其限制,本发明的保护范围并不局限于此,尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的精神和范围,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。