一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

将音频设备兼容于Openharmony与Android的方法与流程

2022-11-23 17:58:23 来源:中国专利 TAG:

将音频设备兼容于openharmony与android的方法
技术领域
1.本发明涉及嵌入式系统技术,具体涉及一种将音频设备兼容于openharmony与android的方法。


背景技术:

2.在android容器侧实现一种虚拟的音频硬件抽象层(hal),android应用通过android音频中间件调用虚拟的音频硬件抽象层提供的接口完成音频的相关业务;在主机的openharmony侧的音频服务程序pulseaudio上实现虚拟音频服务模块,在容器的android侧的虚拟的音频硬件抽象层建立通道穿透容器与主机侧的openharmony虚拟音频服务模块进行通讯通道,实现两个系统的音频数据的双向传输。
3.现有技术方案存在以下问题:openharmony系统和android系统不能同时访问音频资源,同一时间只有一个系统能访问以及由于不鉴权安全性导致的安全性问题。


技术实现要素:

4.发明目的:本发明的目的在于解决现有技术中存在的不足,提供一种将音频设备兼容于openharmony与android的方法。
5.技术方案:本发明的一种将音频设备兼容于openharmony与android的方法,包括以下步骤:步骤(1)、在openharmony系统中启动android系统容器;android系统容器启动过程中,同时加载androidaudioframework和虚拟音频硬件抽象层hal中各虚拟音频设备单元,通过虚拟音频设备单元获取音频设备的相关能力;步骤(2)、由于android系统容器作为client系统运行在openharmony系统之上,不直接操作物理的音频设备,虚拟音频设备单元通过网络编程接口socket与运行在openharmony系统中虚拟音频服务模块进行连接发起查询请求,虚拟音频服务模块收到查询请求后通过openharmony的adm接口(通过函数调用)对音频设备的能力(包括音频设备的采样频率,通道数量,采样深度以及buffer大小等)进行查询,并通过网络编程接口socket回传给虚拟音频设备单元和android系统容器,完成音频设备的注册和能力集上报;步骤(3)、在android系统容器内点击android应用进行音频相关操作;然后通过androidaudioframework将android应用的音频数据传输到虚拟音频设备单元;步骤(4)、虚拟音频设备单元通过网络编程接口socket与运行在openharmony系统中虚拟音频服务模块进行连接;步骤(5)、虚拟音频服务模块根据虚拟音频设备单元传递的业务场景和音频属性在本地创建openharmony的本地音频流,本地音频流通过openharmony的音频服务完成混音后,最后通过adm的音频io接口写入物理的音频设备中进行播放。
6.进一步地,所述虚拟音频硬件抽象层hal运行于android运行环境,虚拟音频硬件抽象层hal包括以下三类接口:
虚拟音频服务模块的客户端接口,通过客户端接口实现连接、鉴权和断开链接,具体方法为:1)、客户端通过约定服务地址和端口,连接位于openharmomy的虚拟音频服务模块;2)、客户端将自己的进程名、pid、uid和gid 发送给服务端,服务端根据系统的安全配置判断是否鉴权成功;3)、断开连接包括正常断开和异常断开;正常断开是指关闭连接后的句柄, 异常断开是当io失败情况满足一定的条件后,进行异常处理,并关闭连接后的句柄;虚拟音频设备的打开配置查询和关闭接口;虚拟音频数据的传输接口,通过实现音频数据的读和写。
7.进一步地,所述虚拟音频服务模块位于openharmony系统的音频服务pulseaudio中,通过虚拟音频服务模块对虚拟音频硬件抽象层进行远程调用:具体包括以过程:1)、将虚拟音频硬件抽象层作为客户端连接到openharmony系统,并对等待连接于虚拟音频硬件抽象层进行鉴权;2)、对已经鉴权成功作为客户端的虚拟音频硬件抽象层进行管理,包括打开、配置、查询和关闭请求,使用相应的adm接口完成物理设备的操作,并返回给虚拟音频硬件抽象层;3)、对于打开的虚拟音频硬件抽象层,在播放场景下,虚拟音频硬件抽象层通过socket将音频播放的数据片段传输到虚拟音频服务模块,虚拟音频服务模块使用相应的adm的接口,将数据片段写入物理的音频设备;4)、对于打开的虚拟音频硬件抽象层,在录音场景下,虚拟音频服务模块通过adm接口从物理的音频设备读取采样的音频数据,并通过socket接口将录音的数据片段传输给虚拟音频硬件抽象层。
8.进一步地,所述步骤(2)中对音频设备进行注册和能力集上报的方法为:(a)、将通过adm接口查询出来的实际硬件音频设备能力作为输入,在虚拟音频单元中创建虚拟音频的设备;(b)、android会通过hal定义的接口获取音频设备的能力,在虚拟音频单元中实现相关的hal接口,将虚拟音频的设备的能力返回给android系统。
9.有益效果:与现有技术相比,本发明具有以下优点:(1)本发明解决了运行在openharmony系统上的android容器内的应用访问设备上的音频硬件设备,实现声音播放、录音等相关功能。
10.(2)本发明host侧audio使用的是adm框架,能够在openharmony上运行。
附图说明
11.图1为本发明的整体系统结构示意图;图2为实施例中虚拟音频设备单元与虚拟音频服务模块连接过程示意图;图3为实施例android音频在openharmony播放过程示意图。
具体实施方式
12.下面对本发明技术方案进行详细说明,但是本发明的保护范围不局限于所述实施例。
13.为便于进一步了解本发明技术方案,现对下述技术术语做相关解释.如图1至图3所示,本发明的一种将音频设备兼容于openharmony与android的方法,包括以下步骤:步骤(1)、在openharmony系统中启动android系统容器;android系统容器启动过程中,同时加载androidaudioframework和各个虚拟音频设备单元,通过虚拟音频设备单元获取音频设备的相关能力;步骤(2)、由于android系统容器作为client系统运行在openharmony系统之上,不直接操作物理的音频设备,虚拟音频设备单元通过网络编程接口socket与运行在openharmony系统中虚拟音频服务模块进行连接发起查询请求,虚拟音频服务模块收到查询请求后通过openharmony的adm接口对音频设备的能力进行查询,并通过网络编程接口socket回传给虚拟音频设备单元和android系统容器,完成设备的注册和能力集上报;步骤(3)、在android系统容器内点击android应用进行音频相关操作;然后通过androidaudioframework将android应用的音频数据传输到虚拟音频设备单元;步骤(4)、虚拟音频设备单元通过网络编程接口socket与运行在openharmony系统中虚拟音频服务模块进行连接;步骤(5)、虚拟音频服务模块根据虚拟音频设备单元传递的业务场景和音频属性在本地创建openharmony的本地音频流,本地音频流通过openharmony的音频服务完成混音后,最后通过adm的音频io接口写入物理的音频设备中进行播放。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献