一种从安卓系统获取立体声数据的方法及系统的制作方法

文档序号:7796985阅读:230来源:国知局
一种从安卓系统获取立体声数据的方法及系统的制作方法
【专利摘要】本申请公开了一种从安卓系统中获取立体声数据的方法,包括:获取音频数据;对所述音频数据进行缓冲处理;对缓冲处理后的音频数据进行封装;将封装后的音频数据上传到应用程序接口处,供用户读取音频数据。本申请通过对音频数据进行缓冲处理,以应对来自上层的异步调用,然后将缓冲处理后的音频数据进行封装,上传到应用程序接口处,供用户读取音频数据,这样避开了传统的数据流向,音频数据不需要经过平台方案厂商的编写和维护,也就绕开了这种不确定因素,使得用户获得的音频数据是真正的立体声。
【专利说明】一种从安卓系统获取立体声数据的方法及系统
【技术领域】
[0001]本申请涉及通讯系统【技术领域】,更具体地说,涉及一种从安卓系统获取立体声数据的方法及系统。
【背景技术】
[0002]目前,手机、机顶盒等设备广泛使用谷歌推出的安卓系统。并且,谷歌为安卓系统的程序员提供软件开发工具包,用于实现不同的功能,例如获取声音数据。但是,通过官方软件开发工具包提供的接口获得的立体声数据,在某些平台上并不能够得到真立体声(左右声道分别采集来自不同的模拟一数字信号转换通道),而获得的是假立体声(某一个声道的数据是另一个声道数据的简单复制)。这是因为,硬件平台方案厂商对原本开源的系统进行了大量的更改,并拒绝为多数客户开放源代码,使得每一个厂家定制的系统都会与市面上其他安卓系统表现出极大的差异,而硬件平台方案厂商以外的开发者却无法看到具体的改动。
[0003]为了解决上述无法获得真立体声的问题,现有技术中一般是通过以下几种手段来解决:第一、向硬件平台方案厂商付费要求获得部分或全部系统源码,并修改其对应的组件;第二、购买其他能够获取真立体声的平台。但是,这两种方法都存在弊端,首先,需要投入一定的资金,且由于代码数量巨大,无法定位需要修改的准确位置。其次,代码都是涉密的,因此会带来不必要的商业和法律因素。

【发明内容】

[0004]有鉴于此,本申请提供了一种从安卓系统获取立体声的方法及系统,用于解决上述现有技术中无法在低成本、低风险的情况下,能够获取真立体声。
[0005]为了实现上述目的,现提出的方案如下:
[0006]—种从安卓系统中获取立体声数据的方法,包括:
[0007]获取音频数据;
[0008]对所述音频数据进行缓冲处理;
[0009]对缓冲处理后的音频数据进行封装;
[0010]将封装后的音频数据上传到应用程序接口处,供用户读取音频数据。
[0011 ]优选地,获取的音频数据来源于安卓内核。
[0012]优选地,所述获取音频数据的过程为:采用双声道录音方式,获取双声道音频数据。
[0013]优选地,所述对所述音频数据进行缓冲处理,具体采用环形缓冲技术和异步等待技术。
[0014]优选地,所述将封装后的音频数据上传到应用程序接口处,具体采用JAVA本地调用技术。
[0015]—种从安卓系统中获取立体声数据的系统,包括:[0016]数据获取单元,用于从安卓内核获取音频数据;
[0017]数据缓冲单元,用于对所述数据获取单元获取的音频数据进行缓冲;
[0018]接口单元,用于响应用户的调用指令,将音频数据进行封装后上传到应用程序接口处。
[0019]优选地,所述数据获取单元,采用双声道录音方式,从安卓内核获取双声道音频数据。
[0020]优选地,所述数据缓存单元,采用环形缓冲技术和异步等待技术,对所述数据获取单元获取的音频数据进行缓冲。
[0021]优选地,所述接口单元,采用JAVA本地调用技术将音频数据进行封装后上传到应用程序接口处。
[0022]从上述的技术方案可以看出,本申请公开的立体声数据获取方法,通过对音频数据进行缓冲处理,以应对来自上层的异步调用,然后将缓冲处理后的音频数据进行封装,上传到应用程序接口处,供用户读取音频数据。通过本申请公开的上述方案,避开了传统的数据流向,音频数据不需要经过平台方案厂商的编写和维护,也就绕开了这种不确定因素,使得用户获得的音频数据是真正的立体声。
【专利附图】

【附图说明】
[0023]为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
[0024]图1为本申请实施例公开的传统的安卓应用程序录音的数据流程图;
[0025]图2为本申请实施例公开的一种从安卓系统获取立体声数据的方法流程图;
[0026]图3为本申请实施例公开的一种从安卓系统获取立体声数据的系统结构图。
【具体实施方式】
[0027]下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有付出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。
[0028]现有的安卓系统程序员在开发软件时,使用官方软件开发工具包提供的接口获得的立体声数据,但是这种开发方式在某些平台上并不能够得到真立体声(左右声道分别采集来自不同的模拟一数字信号转换通道),而获得的是假立体声(某一个声道的数据是另一个声道数据的简单复制),从而无法普遍的适用于各种平台。
[0029]传统的安卓应用程序录音的数据流程参见图1。
[0030]如图1所示,包括:
[0031]步骤SlOl:获取音频数据;
[0032]步骤S102:音频数据经过底层音频支持库;
[0033]具体地,音频数据经过Iibtinyalsa (底层音频支持库),这一部分由谷歌编写,由平台方案厂商维护。
[0034]步骤S103:音频数据经过硬件抽象层;
[0035]具体地,音频数据经过hal层(硬件抽象层),这一部分由平台方案厂商编写和维护。
[0036]步骤S104:音频数据经过安卓音频框架服务;
[0037]具体地,音频数据经过audioflinger (安卓音频框架服务)这一部分由谷歌编写,由平台方案厂商维护。
[0038]步骤S105:音频数据经过安卓音频框架客户端;
[0039]具体地,音频数据经过audiorecord (安卓音频框架客户端),这一部分由谷歌编写,由平台方案厂商维护。
[0040]步骤S106:开发者通过软件开发工具包提供的接口在应用程序中读出数据。
[0041]在这个过程中,当以立体声格式上传时,不同的硬件平台方案厂商在步骤S102-S105中采取的策略时不相同的,我们已知的有以下三种:
[0042]一、在步骤S102中以双声道录音,在步骤S103中完全复制,在步骤S104中完全复制,在步骤S105中获得真立体声数据。
[0043]二、在步骤S102中以双声道录音,在步骤S103中以左声道数据覆盖到右声道,在步骤S104中完全复制,在步骤S105中获得假立体声数据。
[0044]三、在步骤S102中以单声道录音,在步骤S103中以左声道数据覆盖到右声道,在步骤S104中完全复制,在步骤S5中获得假立体声数据。
[0045]由此可见,上述传统过程中,由于存在平台方案厂商的编写和维护内容,这就增加了不确定因素,使得最终获得的音频数据有可能是假的立体声。
[0046]为了解决上述问题,本申请提出了一种新的立体声数据获取方法,参见图2。
[0047]如图2所示,该方法包括:
[0048]步骤S201:获取音频数据;
[0049]步骤S202:对所述音频数据进行缓冲处理;
[0050]具体地,通过对音频数据进行缓冲处理,以应对来自上层的异步调用。
[0051]步骤S203:对缓冲处理后的音频数据进行封装;
[0052]具体地,由于此时数据是以C语言的形式存在的,而应用程序能识别的是JAVA语言,因此需要对音频数据进行封装处理。
[0053]步骤S204:将封装后的音频数据上传到应用程序接口处,供用户读取音频数据。
[0054]具体地,用户可以通过本申请提供的方法,在应用程序的接口位置,读取音频数据。
[0055]本申请实施例公开的立体声数据获取方法,通过对音频数据进行缓冲处理,以应对来自上层的异步调用,然后将缓冲处理后的音频数据进行封装,上传到应用程序接口处,供用户读取音频数据。通过本申请公开的上述方案,避开了传统的数据流向,音频数据不需要经过平台方案厂商的编写和维护,也就绕开了这种不确定因素,使得用户获得的音频数据是真正的立体声。该方法可以普遍的应用于电视、机顶盒、手机、视频会议系统等对立体声有要求的安卓设备中。
[0056]需要说明的是,此处获取的音频数据是来源于安卓的内核的。且获取音频数据时可以采用双声道录音的方式,来获取音频数据。
[0057]需要说明的是,上述对音频数据进行缓冲处理,可以采用现有成熟的环形缓冲技术以及异步等待技术。
[0058]需要说明的是,上述将封装后的音频数据上传到应用程序接口处,可以采用JAVA本地调用技术。
[0059]相应地,本申请还公开了一种从安卓系统中获取立体声数据的系统,参见图3所示:
[0060]该系统包括:
[0061]数据获取单元31,用于从安卓内核获取音频数据;
[0062]数据缓冲单元32,用于对所述数据获取单元31获取的音频数据进行缓冲;
[0063]接口单元33,用于响应用户的调用指令,将音频数据进行封装后上传到应用程序接口处。
[0064]本申请实施例公开的立体声数据获取系统,通过数据缓冲单元32对音频数据进行缓冲处理,以应对来自上层的异步调用,然后由接口单元33将缓冲处理后的音频数据进行封装,上传到应用程序接口处,供用户读取音频数据。通过本申请公开的上述系统,避开了传统的数据流向,音频数据不需要经过平台方案厂商的编写和维护,也就绕开了这种不确定因素,使得用户获得 的音频数据是真正的立体声。该系统使用时可以直接集成在应用程序中,方便、简单。并且可以普遍的应用于电视、机顶盒、手机、视频会议系统等对立体声有要求的安卓设备中。
[0065]需要说明的是,数据获取单元31获取的音频数据是来源于安卓的内核的。且获取音频数据时可以采用双声道录音的方式,来获取音频数据。
[0066]需要说明的是,数据缓冲单元32对音频数据进行缓冲处理,可以采用现有成熟的环形缓冲技术以及异步等待技术。
[0067]需要说明的是,接口单元33将封装后的音频数据上传到应用程序接口处时,可以采用JAVA本地调用技术。
[0068]最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
[0069]本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。
[0070]对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
【权利要求】
1.一种从安卓系统中获取立体声数据的方法,其特征在于,包括: 获取音频数据; 对所述音频数据进行缓冲处理; 对缓冲处理后的音频数据进行封装; 将封装后的音频数据上传到应用程序接口处,供用户读取音频数据。
2.根据权利要求1所述的方法,其特征在于,获取的音频数据来源于安卓内核。
3.根据权利要求2所述的方法,其特征在于,所述获取音频数据的过程为:采用双声道录音方式,获取双声道音频数据。
4.根据权利要求1所述的方法,其特征在于,所述对所述音频数据进行缓冲处理,具体采用环形缓冲技术和异步等待技术。
5.根据权利要求1所述的方法,其特征在于,所述将封装后的音频数据上传到应用程序接口处,具体采用JAVA本地调用技术。
6.—种从安卓系统中获取立体声数据的系统,其特征在于,包括: 数据获取单元,用于从安卓内核获取音频数据; 数据缓冲单元,用于对所述数据获取单元获取的音频数据进行缓冲; 接口单元,用于响应用户的调用指令,将音频数据进行封装后上传到应用程序接口处。
7.根据权利要求6所述的系统,其特征在于,所述数据获取单元,采用双声道录音方式,从安卓内核获取双声道音频数据。
8.根据权利要求6所述的系统,其特征在于,所述数据缓存单元,采用环形缓冲技术和异步等待技术,对所述数据获取单元获取的音频数据进行缓冲。
9.根据权利要求6所述的系统,其特征在于,所述接口单元,采用JAVA本地调用技术将音频数据进行封装后上传到应用程序接口处。
【文档编号】H04S1/00GK103781014SQ201410051712
【公开日】2014年5月7日 申请日期:2014年2月14日 优先权日:2014年2月14日
【发明者】楚立明, 王晶晶 申请人:山东共达电声股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1