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

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.xdnf.cn/news/746551.html

相关文章:

  • 2.2HarmonyOS NEXT高性能开发技术:编译优化、内存管理与并发编程实践
  • Spring Cache核心原理与快速入门指南
  • Leetcode 1908. Nim 游戏 II
  • 【shell】让 CPU 运行到满负荷状态
  • 传统液晶瓶颈待破?铁电液晶如何实现显示技术逆袭
  • 快速掌握 GO 之 RabbitMQ
  • 嵌入式编译工具链熟悉与游戏移植
  • Python训练第四十天
  • Jmeter requests
  • LLMs之Tool:Workflow Use的简介、特点、安装和使用方法、以及案例应用
  • c++ typeid运算符
  • 如何打包conda环境从一台电脑到另外一台电脑
  • 电力高空作业安全检测(3)RT-DETR模型
  • MySQL高级查询技巧:分组、聚合、子查询与分页【MySQL系列】
  • 深入理解CSS常规流布局
  • 【系统架构设计师】第一章 计算机硬件 1.1 计算机硬件 - CPU - 校验码
  • Unity 模拟高度尺系统开发详解——实现拖动、范围限制、碰撞吸附与本地坐标轴选择
  • Linux基本指令/下
  • 信息安全之为什么引入公钥密码
  • Linux系统下安装配置 Nginx
  • AUTOSAR图解==>AUTOSAR_EXP_AIADASAndVMC
  • 数组题解——最大子数组和​【LeetCode】
  • 机器学习算法04:SVC 算法(向量机分类)
  • Fastapi 学习使用
  • [GHCTF 2025]SQL???
  • 23种设计模式概览
  • ubuntu20.04.5--arm64版上使用node集成java
  • Ubuntu22.04通过命令行安装qt5
  • FPGA纯verilog实现MIPI-DSI视频编码输出,提供工程源码和技术支持
  • Redis7底层数据结构解析