一种终端的麦克风的数据处理方法和具有麦克风的终端技术

技术编号:15724266 阅读:52 留言:0更新日期:2017-06-29 09:45
本发明专利技术实施例公开了一种终端的麦克风的数据处理方法和具有麦克风的终端,涉及移动终端技术领域,用以解决现有技术中多个应用无法同时开启录音功能的问题。该方法包括:当第一应用开启录音功能时,获取录音开启指令,创建第一应用对应的第一客户端线程;检测服务端线程是否已创建,其中,服务端线程与麦克风通信,还与多个客户端线程通信,每个客户端线程对应一个开启录音功能的应用;若已创建,则通过第一客户端线程将录音开启指令发送给服务端线程,通过服务端线程获取由麦克风采集到的录音数据,将所采集的录音数据分发至第一客户端线程,通过第一客户端线程将分发的录音数据返回给第一应用。

【技术实现步骤摘要】
一种终端的麦克风的数据处理方法和具有麦克风的终端
本专利技术涉及移动终端
,尤其涉及一种终端的麦克风的数据处理方法和具有麦克风的终端。
技术介绍
在移动互联网时代,随着智能终端的推广和普及,终端的录音功能愈来愈智能化。例如在Android系统中,录音机,语音识别,语音搜索,视频通话等应用都会用到麦克风的录音功能。参考图1所示,现有技术中应用获取录音的过程主要包括以下几个模块:应用(Application)、操作系统的录音模块、硬件抽象层(HAL)、录音硬件部分(Hardware)(包括麦克风和DSP等,为了便于描述以下都用麦克风替代录音硬件部分进行简单说明)。其中,应用包括录音机、语音输入、语音搜索等需要录制声音的应用,应用开启录音功能;操作系统的录音模块属于Android操作系统,包括Framework应用框架,用于传递录音开启命令和录音数据;HAL是位于操作系统内核(Linux内核驱动)与上层录音模块之间的接口层,其目的在于将硬件抽象化;麦克风用于根据录音开启命令采集录音数据。具体的操作系统包括:Java接口、JNI接口(C++与Java之间的接口)、AudioRecord.cpp(Android录音代码)、C++录音框架(AudioRecordThread)等。现有技术应用获取录音的方式有两种,一种是通过Java接口的MediaRecorder(Android框架中的类)方式获取到编码过的数据(如录音机,录像等应用),另一种是通过Java接口的AudioRecord(Android框架中的类)获取原始的数据(如语音识别,语音指令,语音搜索,视频通话,语音输入法等应用)。两种方式的差别在上述的录音过程的Java接口->JNI(C++与Java之间的接口)->录音框架部分。方式一是MediaRecorder方式,具体为:应用->MediaRecorder(java)->MediaRecorder(JNI)->编码部分(StagefrightRecorder)->AudioRecord.cpp->AudioRecordThread->HAL->麦克风。方式二是AudioRecord方式,具体为:应用->AudioRecord(java)->AudioRecord(JNI)->AudioRecord.cpp->AudioRecordThread->HAL->麦克风。应用程序各式各样,每个应用可能会有不同的需求,因而会设置不同的录音参数等。相应的录音参数会通过上述过程传递给麦克风,当麦克风收到录音开启指令之后,会按照应用下达的录音参数开启,然后将采集到的录音数据按照与上述顺序相反的顺序从麦克风传输至应用。当麦克风正以一应用设置的固定录音参数运行采集录音数据的过程中,如果有第二个应用要开启录音功能,这时为防止参数冲突,会阻止第二个应用开启录音功能,操作系统将会报错,第二个应用无法开启录音功能,以至于无法获取麦克风的录音数据。
技术实现思路
本专利技术的实施例提供一种终端的麦克风的数据处理方法和具有麦克风的终端,用以解决现有技术中多个应用无法同时开启录音功能的问题。为达到上述目的,本专利技术的实施例采用如下技术方案:第一方面,本专利技术实施例提供了一种终端的麦克风的数据处理方法,所述方法包括:当第一应用开启录音功能时,获取录音开启指令,创建所述第一应用对应的第一客户端线程;检测服务端线程是否已创建,其中,所述服务端线程与麦克风通信,还与多个客户端线程通信,每个客户端线程对应一个开启录音功能的应用;若已创建,则通过第一客户端线程将所述录音开启指令发送给所述服务端线程,通过所述服务端线程获取由所述麦克风采集到的录音数据,将所采集的录音数据分发至第一客户端线程,通过所述第一客户端线程将分发的录音数据返回给所述第一应用。第二方面,本专利技术实施例提供了一种具有麦克风的终端,所述终端包括:录音模块,所述录音模块与麦克风连接,用于当第一应用开启录音功能时,获取录音开启指令,创建所述第一应用对应的第一客户端线程;检测服务端线程是否已创建,其中,所述服务端线程与麦克风通信,还与多个客户端线程通信,每个客户端线程对应一个开启录音功能的应用;若已创建,则通过所述第一客户端线程将所述录音开启指令发送给所述服务端线程,通过所述服务端线程获取由所述麦克风采集到的录音数据,将所采集的录音数据分发至第一客户端线程,通过所述第一客户端线程将分发的录音数据返回给所述第一应用。本专利技术实施例提供了一种终端的麦克风的数据处理方法和具有麦克风的终端,当第一应用开启录音功能时,终端获取录音开启指令,创建第一应用对应的第一客户端线程;检测服务端线程是否已创建;若已创建,则不在创建服务端线程。然后通过第一客户端线程将录音开启指令发送给服务端线程;通过服务端线程获取由麦克风采集到的录音数据,将录音数据分发给第一客户端线程;通过第一客户端线程将录音数据返回给第一应用。这样通过在终端中增加与应用一一对应的客户端线程和所有应用对应的服务端线程,并通过服务端线程与多个客户端线程的通信,将现有技术的单一线程转换为多个线程,支持多个应用可以同时获取录音数据,从而实现多应用可以同时开启录音功能。附图说明为了更清楚地说明本专利技术实施例的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为现有技术提供的一种应用开启录音功能并获取录音数据的框架图;图2为本专利技术实施例提供的一种应用开启录音功能并获取录音数据的框架图;图3为本专利技术实施例提供的一种终端的麦克风的数据处理方法的流程图;图4为本专利技术实施例提供的一种具有麦克风的终端的框图。具体实施方式下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。本专利技术实施例中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本专利技术实施例中字符“/”,一般表示前后关联对象是一种“或”的关系。为了便于清楚描述本专利技术实施例的技术方案,在本专利技术的实施例中,采用了“第一”、“第二”等字样对功能和作用基本相同的相同项或相似项进行区分,本领域技术人员可以理解“第一”、“第二”等字样并不对数量和执行次序进行限定。在本专利技术的描述中,除非另有说明,“多个”的含义是两个或两个以上。本专利技术实施例中“多个应用同时开启录音功能”的含义可以是多个应用同一时间开启录音功能,也可以是在至少一个应用开启录音功能且未关闭录音功能之前,又有其他应用开启了录音功能。应用调用麦克风就是指应用开启录音功能。本专利技术实施例的工作原理在于修改JNI接口至HAL层之间的代码,即现有技术中录音模块中Android录音代码及C++录音框架这两部分。且本文档来自技高网
...
一种终端的麦克风的数据处理方法和具有麦克风的终端

【技术保护点】
一种终端的麦克风的数据处理方法,其特征在于,所述方法包括:当第一应用开启录音功能时,获取录音开启指令,创建所述第一应用对应的第一客户端线程;检测服务端线程是否已创建,其中,所述服务端线程与麦克风通信,还与多个客户端线程通信,每个客户端线程对应一个开启录音功能的应用;若已创建,则通过第一客户端线程将所述录音开启指令发送给所述服务端线程,通过所述服务端线程获取由所述麦克风采集到的录音数据,将所采集的录音数据分发至第一客户端线程,通过所述第一客户端线程将分发的录音数据返回给所述第一应用。

【技术特征摘要】
1.一种终端的麦克风的数据处理方法,其特征在于,所述方法包括:当第一应用开启录音功能时,获取录音开启指令,创建所述第一应用对应的第一客户端线程;检测服务端线程是否已创建,其中,所述服务端线程与麦克风通信,还与多个客户端线程通信,每个客户端线程对应一个开启录音功能的应用;若已创建,则通过第一客户端线程将所述录音开启指令发送给所述服务端线程,通过所述服务端线程获取由所述麦克风采集到的录音数据,将所采集的录音数据分发至第一客户端线程,通过所述第一客户端线程将分发的录音数据返回给所述第一应用。2.根据权利要求1所述的方法,其特征在于,所述方法还包括:若未创建所述服务端线程,则创建所述服务端线程,通过所述第一客户端线程将所述录音开启指令发送给所述服务端线程,通过所述服务端线程根据所述录音开启指令开启麦克风,并获取由所述麦克风采集到的录音数据,将所采集的录音数据分发给所述第一客户端线程,通过所述第一客户端线程将所分发的录音数据返回给所述第一应用。3.根据权利要求1或2所述的方法,其特征在于,所述录音开启指令包括所述第一应用所需的录音参数,所述录音参数包括下述的一种或多种:采样率,声道数,和录音格式;所述方法还包括:通过所述第一客户端线程将所分发的录音数据返回给所述第一应用之前,将所分发的录音数据按照所述第一应用所需的录音参数进行转换处理。4.根据权利要求1所述的方法,其特征在于,所述方法还包括:当所述第一应用关闭录音功能时,关闭所述第一客户端线程。5.根据权利要求2所述的方法,其特征在于,所述方法还包括:在创建所述服务端线程之后,通过所述服务端线程开启计数器,所述计数器初始值为0;当所述服务端线程收到录音开启指令时,通过所述服务端线程将所述计数器加1;当所述服务端线程收到录音关闭指令时,通过所述服务端线程将所述计数器减1;当所述计数器为0时,通过所述服务端线程关闭所述麦克风,并退出。6.一种具有麦克风的终端,...

【专利技术属性】
技术研发人员:耿炳钰李秀勇
申请(专利权)人:青岛海信移动通信技术股份有限公司
类型:发明
国别省市:山东,37

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

1