https://www.douban.com/note/606580527/

Low-Level Services包含:
1.I/O Kit:驱动
2.AudioHAL:音频硬件抽象层,为硬件提供一个设备独立、驱动独立的接口
3.Core MIDI:提供服务于MIDI流和设备的软件抽象
4.Host Time Services:提供访问计算机时钟

Mac apps 可以被创建成直接应用这些技术,当它们需要尽可能实时的性能。然而,很多音频程序并不能访问这些层级。事实上,在iOS中核心音频为实现实时音频运用更高层级接口提供方法。OpenAL, 举个例子,在游戏中为实时音频使用I/O,但是实际是确实一个小得多,转换API适当的设置移动设备。

在核心音频中Middle-Level Layer,包括数据格式转换、硬盘的读写,解析刘文建,还要插件的使用。
Audio Converter Services:让应用程序处理音频数据格式转换。
Audio File Services:读写基于硬盘的音频数据。可以解析采样频率、码率、时长等信息,分离音频文件的音频帧
Audio Unit Services(播放音频数据) 和 Audio Processing Graph Services(音效处理模块):让应用程序处理DSP(数字信号处理)插件,像均衡器和混音器。
Audio File Stream Services:让你创建的应用程序可以解析音频流文件,就像通过网络连接播放流文件。
Core Audio Clock Services:支持音频和MIDI同步以及基于时间的转换。
Audio Format Services(一个小的API, 在图中并没有展示),协助管理应用程序中的音频数据格式。

在iOS中核心音频提供这些服务的一大部分:
在核心音频 High-level Services包括结合了较低层特点的更直接的接口。
Audio Queue Services提供你记录、播放、暂停、循环和同步音频。它使用必要的编解码器去压缩音频格式。
AVAudioPlayer:为播放音频和循环提供了一个简单的OC接口,以及实现快进和快退。高级接口,可以完成整个音频播放过程,但是不能实现混音器和均衡器功能。
Extended Audio File Services:结合了Audio File Services和 Aduio Converter Services的特点。它给你提供了一个用于读写未压缩和压缩声音文件。
OpenAL是定位音频的开源OpenAL标准的核心音频的实现。它是建立在系统提供的3D混音器音频单元的顶部。所有的应用程序都可以使用OpenAL,尽管它最合适用于游戏开发。

音频一般播放的流程:
1.读取音频文件
2.解析采样频率、码率、时长等信息,分离音频文件的音频帧。
    Audio File Service 读写音频数据,Audio File Stream Services:对音频进行解码
3.对分离出来的音频真解码得到PCM数据
   Audio Converter services:音频数据转换
4.对PCM数据进行音效处理(均衡器、混音器,非必须的)
  Audio Process Graph Services:音效处理模块
5.把PCM数据解码成音频信号
6.把音频信号交给硬件播放
   Aduio Unit Services:播放音频数据
7.重复1-6步 直到播放完成

如上就是音频核心API三个层级以及各个层级内容的功能

关于Framework这里只关注与iOS有关系的
AudioToolbox.framework : Audio Session Services:作为管理你应用程序在手机和iPod设备中的音频行为。
AudioUnit.framework:Audio Unit Services
AVFoundation.framework:提供AVAudioPlayer class
CoreAudio.framework:提供跨核心音频以及底层服务接口的数据类型。
OpenAL.framework:OpenAL
iOS不支持的有:CoreAudioKit.framework CoreMIDI.frame CoreMIDIServer.framework
附录CoreAudio framework 描述了所有这些框架,以及他们包含的头文件。

参考:iOS音频播放 (一):概述

关于音频播放的那点儿事儿(一) 初探iOS音频 CoreAudio Essentials相关推荐

  1. java实现音频播放小程序_微信小程序实现音频文件播放进度的实例代码

    问题描述 在微信小程序中经常会用到控制文件播放的滑块,通过滑块可控制音频播放进度,下面即用代码实现. 解决方案 首先用.wxml与 .wmss 代码实现进度条的效果,再通过 .js 文件控制进度条的进 ...

  2. 嵌入式linux音频播放器设计,基于嵌入式Linux下Madplay音频播放器设计论文.docx

    基于嵌入式Linux下Madplay音频播放器设计论文 滁州职业技术学院计算机应用技术专业毕业论文PAGE I 滁州职业技术学院信息工程系--2015届计算机应用专业毕业论文 姓 名: 周杰 班 级: ...

  3. android 音频播放过程,一种Android系统中的音频播放方法与流程

    本申请涉及android系统技术,特别涉及一种android系统中的音频播放方法. 背景技术: 在android系统中,现有的使用audiotrack进行音频播放时,audiotrack应用与andr ...

  4. vue自定义音频播放组件_易于创建Vue的自定义音频播放器组件

    vue自定义音频播放组件 音频更好 (vue-audio-better) Easy to create custom audio player components for Vue.js. 易于为Vu ...

  5. iOS开发系列--音频播放、录音、视频播放、拍照、视频录制(转)

    概览 随着移动互联网的发展,如今的手机早已不是打电话.发短信那么简单了,播放音乐.视频.录音.拍照等都是很常用的功能.在iOS中对于多媒体的支持是非常强大的,无论是音视频播放.录制,还是对麦克风.摄像 ...

  6. 牛人iOS开发系列--音频播放、录音、视频播放、拍照、视频录制

    概览 随着移动互联网的发展,如今的手机早已不是打电话.发短信那么简单了,播放音乐.视频.录音.拍照等都是很常用的功能.在iOS中对于多媒体的支持是非常强大的,无论是音视频播放.录制,还是对麦克风.摄像 ...

  7. DAC+DMA+TIM实现音频播放问题记录

    目录 1. 概述 2. 音频采样率 2.1 定时器触发周期 2.2 音频文件的格式 3. DAC的左对齐和右对齐 3.1 为什么要使用左对齐 3.2 左对齐数据的读写 3.3 音频数据的使用 3.3. ...

  8. iOS开发系列--音频播放、录音、视频播放、拍照、视频录制

    概览 随着移动互联网的发展,如今的手机早已不是打电话.发短信那么简单了,播放音乐.视频.录音.拍照等都是很常用的功能.在iOS中对于多媒体的支持是非常强大的,无论是音视频播放.录制,还是对麦克风.摄像 ...

  9. linux数字音频播放器,Moode Audio Player数字音频播放系统的体验

    Element14 Raspberry Pi 3B Raspberry Pi 3B ARM开发板封装 Volumio OS数字音频播放系统-主页控制主界面 上周末,我们为几台ARM微型计算机推出了Ra ...

最新文章

  1. Session的lock()方法
  2. python垃圾分类源代码_Python学习:怕乱丢垃圾罚款?使用 Python 轻松完成垃圾分类...
  3. 2006上半年程序员级试题答案
  4. ubuntu下打开matlab_ubuntu终端命令启动matlab方法
  5. 论文落地 101:算法工程化的那些坑
  6. Android 统一View样式,textview样式
  7. HDU 1087 Super Jumping! Jumping! Jumping!【最大递增子段和】
  8. Android各种dialog
  9. unity 脚本把变量放一起,在界面上显示,同时鼠标靠近时有注释出现,变量是滑动条有区间
  10. FA:标准萤火虫算法及Python实现
  11. HDTunePro v5.00 硬盘专业工具(绿色版)
  12. 文学杂谈001--《遥远的救世主》
  13. LIBOR-OIS息差利率 伦敦银行同业拆息与隔夜指数掉期
  14. 微服务之Spring Cloud Alibaba Nacos基础学习
  15. 不动点求数列通项原理_【数列】浅谈“不动点”求数列通项的方法
  16. 基于lio-sam框架,教你如何进行回环检测及位姿计算
  17. php子孙树,递归 迭代 得到家谱树 子孙树
  18. iphone13 设备类型 DeviceType
  19. C语言例题理解(小写字母转换成大写字母,兔子生兔子问题,求100以内勾股数,整数逆序输出)
  20. 图像处理 直方图均衡化

热门文章

  1. Nerf源码解析——Pytroch3D版
  2. C语言实现STL静态链表,先进后出的数据结构-栈 一
  3. 2019全国计算机二级照片要求,各省2019年9月全国计算机等级考试对报名的照片都有哪些要求?...
  4. 2022-5-1 Leetcode 590.N叉树的后序遍历
  5. Ubuntu Desktop - gnome-calculator (计算器)
  6. 2022-1-13牛客网C++项目—— 第二章 Linux 多进程开发(一)
  7. 智能传感器可以实现的10个强大物联网应用
  8. 总结html5的文档结构,HTML5文档结构分析
  9. 2022年湖南大学信息科学与工程学院计算机考博申博经验分享
  10. 工业以太网交换机MODBUS协议总线光纤转换器工厂控制系统