一种基于Android系统的音频同步录放系统及方法技术方案

技术编号:16471714 阅读:26 留言:0更新日期:2017-10-28 21:56
本发明专利技术公开了一种基于Android系统的音频同步录放系统及方法,其中,该系统包括:音频定制服务子系统和音频定制硬件抽象子系统,其中,音频定制服务子系统和音频定制硬件抽象子系统均独立于Android系统的原生音频系统;音频定制硬件抽象子系统,用于调用底层的录音设备的驱动程序以进行音频数据的录制,以及,调用底层的放音设备的驱动程序以进行混音数据的播放;音频定制服务子系统,用于接收应用程序模块发送的同步录放命令,根据同步录放命令,控制音频定制硬件抽象子系统打开录音设备以及放音设备,读取音频定制硬件抽象子系统录制的音频数据并进行混音处理,得到混音数据。本发明专利技术在进行音频同步录放时,延时可以达到50ms以下,满足音频同步录放的要求。

An audio synchronous recording and playing system based on Android system and its method

The invention discloses a Android system which is based on synchronization of audio recording system and method, the system includes audio customized service subsystem and custom hardware abstraction audio subsystem, the original audio system audio customized service subsystem and audio subsystem are custom hardware abstraction independent of Android system; audio hardware abstraction system, used to call the underlying device driver for recording audio data recording and playback device, the driver calls the underlying to broadcast data for audio mixing; service subsystem for synchronous recording command receiving module to send applications, according to the synchronous recording command, control the audio hardware abstraction open device for recording and playback subsystem of equipment, read the audio recording of the audio subsystem number of custom hardware abstraction And mix it to get the mix data. When the audio synchronous recording and playing is performed, the time delay can reach below 50ms, and the requirements of synchronous recording and playing of audio can be satisfied.

【技术实现步骤摘要】
一种基于Android系统的音频同步录放系统及方法
本专利技术涉及通讯
,尤其涉及一种基于Android系统的音频同步录放系统及方法。
技术介绍
现有技术中Android系统的音频同步录放是建立在硬件混音或数字信号处理器(DigitalSignalProcessing,简称DSP)基础上实现的。Android平台开发的音频同步录放延时长的缺点基本是继承了Linux系统的先天不足。音频延迟的首要原因来自底层驱动,Android系统采用硬件抽象架构(HardwareAbstractionLayer,简称HAL)进行应用架构和驱动通信,最底层音频编译驱动仍基于Linux核心,绝大多数使用Linux内核中的高级Linux声音架构(AdvancedLinuxSoundArchitecture,简称ALSA)。ALSA本身就是比较臃肿,如图1所示,为LinuxALSA音频架构示意图。如图2所示,为Android2.3后的音频架构示意图,可以看出两种音频架构具有相似之处。采用Android音频原生架构,时间耗时主要在以下几个方面:Android臃肿的音频架构;Java层的数据处理;数据穿越过程(从原生层到Java层或从Java层到原生层)。采用原生架构,先用音频引擎把音频数据流提取到Java层,进行混音、音效等处理后,再通过音频播放将声音放出,发现同步录放延时基本超过了100ms,具有明显的延时。
技术实现思路
为了解决上述技术问题,本专利技术的实施例提供了一种基于Android系统的音频同步录放系统及方法,解决了现有技术中基于Android系统的原生音频系统存在高延时的问题。本专利技术的实施例提供了一种基于Android系统的音频同步录放系统,包括:设置于Android系统的应用框架层中的音频定制服务子系统和音频定制硬件抽象子系统,其中,所述音频定制服务子系统和音频定制硬件抽象子系统均独立于Android系统的原生音频系统;所述音频定制硬件抽象子系统,用于调用底层的录音设备的驱动程序以进行音频数据的录制,以及,调用底层的放音设备的驱动程序以进行混音数据的播放;所述音频定制服务子系统,用于接收应用程序模块发送的同步录放命令,根据所述同步录放命令,控制所述音频定制硬件抽象子系统打开所述录音设备以及所述放音设备,读取所述音频定制硬件抽象子系统录制的音频数据并进行混音处理,得到混音数据。优选地,所述音频定制服务子系统包括:录音模块,用于根据所述同步录放命令,生成启动录音设备指令,指示所述音频定制硬件抽象子系统调用底层的录音设备进行音频数据的录制,并将所述音频数据缓存在录音缓存模块中;解码器,用于在当前已播放背景音乐时,解码背景音乐,并将解码得到的背景音乐数据缓存在背景音乐缓存模块中;混音模块,用于在当前已播放背景音乐时,读取所述录音缓存模块中的音频数据和所述背景音乐缓存模块中的背景音乐数据进行混音处理,生成混音数据;以及,在当前未播放背景音乐时,读取所述录音缓存模块中的音频数据和背景音乐缓存模块中预存的静音数据进行混音处理,生成混音数据;将所述混音数据缓存在混音缓存模块中;放音模块,用于根据所述同步录放命令,生成启动放音设备指令,指示所述音频定制硬件抽象子系统调用底层的放音设备进行所述混音数据的播放。优选地,所述音频同步录放系统还包括:音频定制Java接口和音频定制原生结构模块,其中,所述音频定制Java接口和音频定制原生结构模块均运行于Android系统的应用框架层;音频定制Java接口,用于提供应用程序模块与音频定制原生结构模块之间的程序编程的接口;音频定制原生结构模块,用于作为Binder客户端,与作为Binder服务端的音频定制服务子系统进行Binder通信,提供音频定制Java接口与所述音频定制服务子系统之间的对接。优选地,所述音频定制Java接口,具体用于从应用程序模块获取所述同步录放命令,并发送至所述音频定制原生结构模块;所述音频定制原生结构模块,具体用于发送所述同步录放命令到所述音频定制服务子系统。优选地,所述音频同步录放系统还包括:设置于Android系统的应用层中的应用程序模块;所述应用程序模块,用于通过音频定制Java接口和音频定制原生结构模块发送同步录放命令到音频定制服务子系统。本专利技术实施例还提供了一种基于Android系统的音频同步录放的方法,包括:通过设置于Android系统的应用框架层中的音频定制服务子系统,接收应用程序模块发送的同步录放命令,根据所述同步录放命令,控制音频定制硬件抽象子系统打开录音设备以及放音设备,所述音频定制硬件抽象子系统设置于Android系统的应用框架层中;通过所述音频定制硬件抽象子系统,调用底层的录音设备的驱动程序以进行音频数据的录制;通过所述音频定制服务子系统,读取所述音频定制硬件抽象子系统录制的音频数据并进行混音处理,得到混音数据;通过所述音频定制硬件抽象子系统,调用底层的放音设备的驱动程序以进行混音数据的播放。优选地,所述读取所述音频定制硬件抽象子系统录制的音频数据并进行混音处理的步骤,包括:在当前已播放背景音乐时,解码背景音乐,得到解码得到的背景音乐数据,读取所述录音缓存模块中的音频数据和背景音乐缓存模块中的背景音乐数据进行混音处理,生成混音数据;在当前未播放背景音乐时,读取所述录音缓存模块中的音频数据和背景音乐缓存模块中预存的静音数据进行混音处理,生成混音数据。优选地,所述读取所述音频定制硬件抽象子系统录制的音频数据并进行混音处理的步骤,还包括:进一步将录制得到的音频数据保存在录音缓存模块,将混音得到的混音数据保存在混音缓存模块,以及,将解码得到的背景音乐数据保存在背景音乐缓存模块中,其中,所述录音缓存模块、混音缓存模块和背景音乐缓存模块均位于所述音频定制服务子系统中。本专利技术的一个或多个实施例的有益效果是:上述方案中,根据多个多媒体引擎并列存在,引擎独自管理思想设计出独立于Android系统的原生音频系统的音频同步录放系统,不被原生音频系统管理,采用独自管理管理的方式来实现降低延时的目的。具体地,通过设计独立于Android系统的原生音频系统的音频定制服务子系统和音频定制硬件抽象子系统,其中,音频定制服务子系统独立地进行音频录制,混音处理以及混音数据的播放;音频定制硬件抽象子系统调用底层的录音设备的驱动程序以进行音频数据的录制,以及调用底层的放音设备的驱动程序以进行混音数据的播放。而在Java层只进行同步录放的开始和停止命令。该方案的音频同步录放的延时可以达到50ms以下,能够满足音频同步录放的要求。附图说明图1为LinuxALSA音频架构示意图;图2为Android2.3后的音频架构示意图;图3为本专利技术实施例提供的一种音频同步录放系统的结构示意图;图4为本专利技术实施例提供的一种音频同步录放的方法的流程图。具体实施方式下面将参照附图更详细地描述本专利技术的示例性实施例。虽然附图中显示了本专利技术的示例性实施例,然而应当理解,可以以各种形式实现本专利技术而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本专利技术,并且能够将本专利技术的范围完整的传达给本领域的技术人员。如图3所示,本专利技术的实施例提供了一种基于Android系统的音频同步录本文档来自技高网...
一种基于Android系统的音频同步录放系统及方法

【技术保护点】
一种基于Android系统的音频同步录放系统,其特征在于,包括:设置于Android系统的应用框架层中的音频定制服务子系统和音频定制硬件抽象子系统,其中,所述音频定制服务子系统和音频定制硬件抽象子系统均独立于Android系统的原生音频系统;所述音频定制硬件抽象子系统,用于调用底层的录音设备的驱动程序以进行音频数据的录制,以及,调用底层的放音设备的驱动程序以进行混音数据的播放;所述音频定制服务子系统,用于接收应用程序模块发送的同步录放命令,根据所述同步录放命令,控制所述音频定制硬件抽象子系统打开所述录音设备以及所述放音设备,读取所述音频定制硬件抽象子系统录制的音频数据并进行混音处理,得到混音数据。

【技术特征摘要】
1.一种基于Android系统的音频同步录放系统,其特征在于,包括:设置于Android系统的应用框架层中的音频定制服务子系统和音频定制硬件抽象子系统,其中,所述音频定制服务子系统和音频定制硬件抽象子系统均独立于Android系统的原生音频系统;所述音频定制硬件抽象子系统,用于调用底层的录音设备的驱动程序以进行音频数据的录制,以及,调用底层的放音设备的驱动程序以进行混音数据的播放;所述音频定制服务子系统,用于接收应用程序模块发送的同步录放命令,根据所述同步录放命令,控制所述音频定制硬件抽象子系统打开所述录音设备以及所述放音设备,读取所述音频定制硬件抽象子系统录制的音频数据并进行混音处理,得到混音数据。2.根据权利要求1所述的基于Android系统的音频同步录放系统,其特征在于,所述音频定制服务子系统包括:录音模块,用于根据所述同步录放命令,生成启动录音设备指令,指示所述音频定制硬件抽象子系统调用底层的录音设备进行音频数据的录制,并将所述音频数据缓存在录音缓存模块中;解码器,用于在当前已播放背景音乐时,解码背景音乐,并将解码得到的背景音乐数据缓存在背景音乐缓存模块中;混音模块,用于在当前已播放背景音乐时,读取所述录音缓存模块中的音频数据和所述背景音乐缓存模块中的背景音乐数据进行混音处理,生成混音数据;以及,在当前未播放背景音乐时,读取所述录音缓存模块中的音频数据和背景音乐缓存模块中预存的静音数据进行混音处理,生成混音数据;将所述混音数据缓存在混音缓存模块中;放音模块,用于根据所述同步录放命令,生成启动放音设备指令,指示所述音频定制硬件抽象子系统调用底层的放音设备进行所述混音数据的播放。3.根据权利要求1所述的基于Android系统的音频同步录放系统,其特征在于,所述音频同步录放系统还包括:音频定制Java接口和音频定制原生结构模块,其中,所述音频定制Java接口和音频定制原生结构模块均运行于Android系统的应用框架层;音频定制Java接口,用于提供应用程序模块与音频定制原生结构模块之间的程序编程的接口;音频定制原生结构模块,用于作为Binder客户端,与作为Binder服务端的音频定制服务子系统进行Binder通信,提供音频定制Java接口与所述音频定制服务子系统之间的对接。...

【专利技术属性】
技术研发人员:金志涛
申请(专利权)人:中兴通讯股份有限公司
类型:发明
国别省市:广东,44

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

1