一种Linux平台上安卓应用的音频处理方法及装置制造方法及图纸

技术编号:29756845 阅读:14 留言:0更新日期:2021-08-20 21:10
本发明专利技术公开了一种Linux平台上安卓应用的音频处理方法及装置,通过在Android运行环境的HAL层获取用户对Android应用的操作,并通过对音频数据接口文件的读写实现Android应用对Linux平台的音频设备的直接调用,而不必经过Linux平台的音频服务,有效降低了桌面平台上安卓应用音频处理的延时,提高了音频处理的时效性,显著提升了用户体验。

【技术实现步骤摘要】
一种Linux平台上安卓应用的音频处理方法及装置
本专利技术属于在桌面操作系统上运行移动应用的开发
,具体涉及一种Linux平台上安卓应用的音频处理方法及装置。
技术介绍
在Linux平台上运行安卓(Android)应用,通常采用在Linux平台上安装Android运行环境的方式,Android运行环境对丰富操作系统应用生态具有非常重要的意义。现有Linux平台通常采用PulseAudio作为声音处理架构以统一处理来自不同应用程序的音频。PulseAudio是在GNOME或KDE等桌面环境中广泛使用的音频服务,它在内核音频组件和应用程序之间充当代理的角色。通常情况下,内核音频组件包括ALSA(AdvancedLinuxSoundArchitecture)及OSS(OpenSoundSystem)两种结构。PulseAudio基于C/S结构由一个服务器(Server)和多个客户端(Client)构成,其中,客户端是作为音源的应用程序的适配器,服务器负责将各客户端的音频输入混音后输出到音频设备,客户端与服务器之间通过Pipe文件进行通信。在Linux平台的典型音频处理方案中,用户需配置ALSA以使用PulseAudio提供的虚拟设备。目前Android系统的音频架构主要包括应用层、基础架构层、支撑库层及硬件驱动层。其中,应用层是整个音频体系的最上层,主要包括音乐播放器、游戏软件等应用;基础架构层主要包括AudioManager、AudioFlinger及AudioHAL,AudioHAL(AudioHardwareAbstractionLayer)为音频设备抽象层作为应用于底层硬件之间的“隔离板”保证了上层应用与底层硬件之间的兼容性,是AudioFlinger直接访问的对象;支撑库层为基础架构层所需要的库文件层;硬件驱动层为声卡的驱动程序层。上述音频架构也是现有技术中Android运行环境所采用的音频架构,但是该架构不能与Linux平台所采用的音频架构兼容,所以导致Android运行环境内的Android应用不能使用Linux系统的音频设备输出声音,这为用户操作带来了不便,降低了用户体验。
技术实现思路
有鉴于此,本专利技术提供了一种Linux平台上安卓应用的音频处理方法及装置,能够使运行于Android运行环境内的Android应用直接采用Linux平台的音频设备输出音频。本专利技术提供的一种Linux平台上安卓应用的音频处理方法,具体包括以下步骤:在Linux平台的容器中运行Android运行环境,所述Android运行环境中运行Android应用;所述Linux平台具有用于控制音频设备的音频设备控制单元;在所述Android运行环境的HAL层,获取用户对所述Android应用的操作,根据所述操作形成控制指令;用户选定需要使用的所述Linux平台的音频设备A;设置所述Android运行环境具有对所述音频设备A的音频数据接口文件的读写权限;当所述控制指令为输出指令时,将所述控制指令及所述Android应用的音频数据A写入所述音频数据接口文件;所述音频设备控制单元读取所述音频数据接口文件得到所述控制指令及音频数据A,将所述音频数据A输出到所述音频设备A中;当所述控制指令为输入指令时,将所述控制指令写入所述音频数据接口文件;所述音频设备控制单元读取所述音频数据接口文件得到所述控制指令,将所述音频设备A获取的音频数据B写入所述音频数据接口文件;读取所述音频数据接口文件获取所述音频数据B,并将所述音频数据B发送至所述Android应用;当所述控制指令为配置指令时,将所述控制指令及配置参数写入所述音频数据接口文件;所述音频设备控制单元读取并解析所述音频数据接口文件得到所述控制指令及配置参数,所述音频设备控制单元根据所述配置参数完成对所述音频设备A的配置。进一步地,在所述Android运行环境的HAL层中,使用所述Linux平台的ALSA音频架构API实现AndroidASDevice;所述AndroidASDevice用于获取用户对所述Android应用的操作,形成所述控制指令;当所述控制指令为输出指令时,所述AndroidASDevice将所述控制指令及所述音频数据A写入所述音频数据接口文件;当所述控制指令为输入指令时,所述AndroidASDevice将所述控制指令写入所述音频数据接口文件,并读取所述音频数据接口文件得到所述音频数据B;当所述控制指令为配置指令时,所述AndroidASDevice将所述控制指令及配置参数写入所述音频数据接口文件。进一步地,所述配置参数包括通道、输入流的采样频率。本专利技术提供的一种Linux平台上安卓应用的音频处理装置,包括Android运行环境、音频设备选择单元、虚拟音频客户端及音频设备控制单元;所述Android运行环境运行在Linux平台上的Android容器内,所述Android运行环境用于为Android应用提供运行环境;所述音频设备选择单元,位于所述Linux平台上,用于根据用户需要确定选用的硬件音频设备;并设置所述Android运行环境具有对选定的硬件音频设备的音频数据接口文件的读写权限;所述虚拟音频客户端,位于所述Android运行环境的硬件抽象层HAL中,用于获取用户对所述Android应用的操作,并根据所述操作形成控制指令;所述虚拟音频客户端用于根据所述控制指令将控制信息、音频数据写入所述音频数据接口文件,以及从所述音频数据接口文件中读取音频数据;所述音频设备控制单元,位于所述Linux平台上,用于控制所述Linux平台的音频设备;所述音频设备控制单元根据从所述音频数据接口文件获取的所述控制指令处理音频设备,并将获取的音频数据写入所述音频数据接口文件。进一步地,所述控制指令包括输出指令、输入指令及配置指令。进一步地,所述虚拟音频客户端实现了ALSA音频架构API,包括:音频播放接口,用于根据所述输出指令将所述Android应用的音频数据写入所述音频数据接口文件;音频输入接口,用于根据所述输入指令从所述音频数据接口文件读入音频数据;配置接口,用于将所述配置指令及配置参数写入所述音频数据接口文件。有益效果:1、本专利技术通过在Android运行环境的HAL层获取用户对Android应用的操作,并通过对音频数据接口文件的读写实现Android应用对Linux平台的音频设备的直接调用,而不必经过Linux平台的音频服务,有效降低了桌面平台上安卓应用音频处理的延时,提高了音频处理的时效性,显著提升了用户体验。2、本专利技术通过在Android运行环境内Android的HAL层基于ALSA架构设计实现了音频设备AndroidASDevice,使运行于Android运行环境内的Android应用能够直接使用Linux平台的音频设备,基于Linux平台架构的设计有效降低了软件代码的开发量,同时有效提高了使用的平滑度。...

【技术保护点】
1.一种Linux平台上安卓应用的音频处理方法,其特征在于,具体包括以下步骤:/n在Linux平台的容器中运行Android运行环境,所述Android运行环境中运行Android应用;所述Linux平台具有用于控制音频设备的音频设备控制单元;在所述Android运行环境的HAL层,获取用户对所述Android应用的操作,根据所述操作形成控制指令;/n用户选定需要使用的所述Linux平台的音频设备A;设置所述Android运行环境具有对所述音频设备A的音频数据接口文件的读写权限;/n当所述控制指令为输出指令时,将所述控制指令及所述Android应用的音频数据A写入所述音频数据接口文件;所述音频设备控制单元读取所述音频数据接口文件得到所述控制指令及音频数据A,将所述音频数据A输出到所述音频设备A中;/n当所述控制指令为输入指令时,将所述控制指令写入所述音频数据接口文件;所述音频设备控制单元读取所述音频数据接口文件得到所述控制指令,将所述音频设备A获取的音频数据B写入所述音频数据接口文件;读取所述音频数据接口文件获取所述音频数据B,并将所述音频数据B发送至所述Android应用;/n当所述控制指令为配置指令时,将所述控制指令及配置参数写入所述音频数据接口文件;所述音频设备控制单元读取并解析所述音频数据接口文件得到所述控制指令及配置参数,所述音频设备控制单元根据所述配置参数完成对所述音频设备A的配置。/n...

【技术特征摘要】
1.一种Linux平台上安卓应用的音频处理方法,其特征在于,具体包括以下步骤:
在Linux平台的容器中运行Android运行环境,所述Android运行环境中运行Android应用;所述Linux平台具有用于控制音频设备的音频设备控制单元;在所述Android运行环境的HAL层,获取用户对所述Android应用的操作,根据所述操作形成控制指令;
用户选定需要使用的所述Linux平台的音频设备A;设置所述Android运行环境具有对所述音频设备A的音频数据接口文件的读写权限;
当所述控制指令为输出指令时,将所述控制指令及所述Android应用的音频数据A写入所述音频数据接口文件;所述音频设备控制单元读取所述音频数据接口文件得到所述控制指令及音频数据A,将所述音频数据A输出到所述音频设备A中;
当所述控制指令为输入指令时,将所述控制指令写入所述音频数据接口文件;所述音频设备控制单元读取所述音频数据接口文件得到所述控制指令,将所述音频设备A获取的音频数据B写入所述音频数据接口文件;读取所述音频数据接口文件获取所述音频数据B,并将所述音频数据B发送至所述Android应用;
当所述控制指令为配置指令时,将所述控制指令及配置参数写入所述音频数据接口文件;所述音频设备控制单元读取并解析所述音频数据接口文件得到所述控制指令及配置参数,所述音频设备控制单元根据所述配置参数完成对所述音频设备A的配置。


2.根据权利要求1所述的音频处理方法,其特征在于,在所述Android运行环境的HAL层中,使用所述Linux平台的ALSA音频架构API实现AndroidASDevice;
所述AndroidASDevice用于获取用户对所述Android应用的操作,形成所述控制指令;
当所述控制指令为输出指令时,所述AndroidASDevice将所述控制指令及所述音频数据A写入所述音频数据接口文件;
当所述控制指令为输入指令时,所述AndroidASDevice将所述控制指令写入所述音频...

【专利技术属性】
技术研发人员:温研
申请(专利权)人:北京麟卓信息科技有限公司
类型:发明
国别省市:北京;11

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

1