当前位置: 首页 > article >正文

OpenHarmony标准系统-HDF框架之音频驱动开发

请添加图片描述

文章目录

  • 引言
  • OpenHarmony音频概述
  • OpenHarmony音频框图
  • HDF音频驱动框架概述
  • HDF音频驱动框图
  • HDF音频驱动框架分析之音频设备驱动
  • HDF音频驱动框架分析之supportlibs实现
  • HDF音频驱动框架分析之hdi-passthrough实现
  • HDF音频驱动框架分析之hdi-bindev实现
  • HDF音频驱动加载过程
  • HDF音频驱动播音流程分析
  • HDF音频驱动录音流程分析
  • HDF音频驱动实现总结


引言

OpenHarwony操作系统为了做到给干行百业(教育、金融、工业等)提供全场景(移动办公、社交通信运动健康等)业务能力,达到设备快速互联,硬件互助,资源共享:统一OS,,一次开发多端弹性部署的目标。在此背景下OpenHarwony提出在传统的单设备系统能力基础上,基于同一套系统能力、适配多种终端形态的分布式理念,并且内核层、系统服务层、框架层和应用层做了全新的设计与开发。

内核层作为OpenHarwony最底层设计,包括支持多内核以及全新硬件驱动框架(HDF)。同时随着电话被发明应用到如今的智能语音等等,音频应用的形态和场景也是越来越丰富。在这两个大背景下,音频需要支撑从轻设备到富设备应用需求,所以OpenHarmony下基于HDF驱动框架的音频驱动实现也存在多种方式:
1.轻设备直驱
2.富设备用户态驱动
3.富设备内核态驱动


OpenHarmony音频概述

根据OpenHarwony 系统的自下而上的层次结构划分:内核层、系统服务层、框架层和应用层。下面简要概述为实现OpenHarmony音频功能,各个层次做了哪些工作。
内核层包含两方面,内核子系统和驱动子系统。这层主要以HDF驱动框架为基础实现音频codec驱1)动,audi0 HDI接口的封装。由于产品形态和解决方案的多样化,音频codec的驱动方式也分用户态驱动方式和内核态驱动方式来实现。音频codec驱动工作后需要对硬件资源进行统一抽象封装,对上层暴露统一的音频接口,这样做的目的就是符合音频规范化操作,保证生态良性发展。2)系统服务层主要是通过PulseAudio框架对audi0 HDl的调用来获取音频驱动能力。之后基于PulseAudio框架实现AudioSustewManager和AudioServiceClient,前者对音频服务进行管理,对音频流进行管理。最后napi实现,并且sa_main会根据sa_profile会将商频的SA(system ability)拉起。3)框架层的abilitu框架和ui框架等就会根据系统层提供的音频能力进行相应的调用,实现应用的FA(Feature Ability)和PA(Particle Ability).4)应用层则是根据应用需求和场景调用相应的FA和PA进行打包生成.

http://www.lryc.cn/news/2394508.html

相关文章:

  • HTML Day03
  • 篇章六 数据结构——链表(二)
  • Python60日基础学习打卡Day39
  • 吴恩达MCP课程(3):mcp_chatbot
  • MySQL访问控制与账号管理:原理、技术与最佳实践
  • AWS 创建VPC 并且添加权限控制
  • langchain学习 01
  • 【清晰教程】查看和修改Git配置情况
  • JAVA 常用 API 正则表达式
  • 光电设计大赛智能车激光对抗方案分享:低成本高效备赛攻略
  • Python实现P-PSO优化算法优化BP神经网络回归模型项目实战
  • Microsoft的在word中选择文档中的所有表格进行字体和格式的调整时的解决方案
  • C++23:关键特性与最新进展深度解析
  • Rust并发编程实践指南
  • Kubernetes资源申请沾满但是实际的资源占用并不多,是怎么回事?
  • 鲲鹏Arm+麒麟V10 K8s 离线部署教程
  • PGSQL结合linux cron定期执行vacuum_full_analyze命令
  • php 中使用MQTT
  • C#定时器深度对比:System.Timers.Timer vs System.Threading.Timer性能实测与选型指南
  • go的select多路复用
  • 深度理解与剖析:前端声明式组件系统
  • 解决8080端口被占问题
  • 介绍一种LDPC码译码器
  • 3DMAX+Photoshop教程:将树木和人物添加到户外建筑场景中的方法
  • 【IOS】【OC】【应用内打印功能的实现】如何在APP内实现打印功能,连接本地打印机,把想要打印的界面打印成图片
  • 随记 配置服务器的ssl整个过程
  • 数据库高可用架构设计:集群、负载均衡与故障转移实践
  • Correlations氛围测试:文本或图像的相似度热图
  • 从0到1:多医院陪诊小程序开发笔记(上)
  • 建立连接后 TCP 请求卡住