Core Audio服务

翻译自官网《Core Audio Services


Core Audio服务

本章列出了Core Audio中可用的服务。你会发现在iOS中,这些服务被安排进了如下这些框架中:

  • Audio Toolbox-----应用级服务:文件,流,告警,回放以及录音。在iOS中,包含了Audio Session服务。
  • Audio Unit------Audio unit和音频编解码服务。
  • AV Foundation------一个objective-c音频回放接口。
  • Core Audio-----数据类型以及OS X中的硬件服务。
  • OpenAL-----定位的、低延迟的音频服务。 
OS X中的Core Audio包含了上面四个框架,并且还增加了三个别的:
  • Core Audio Kit-----Audio unit用户接口服务。
  • Core MIDI-----应用级别MIDI支持。
  • Core MIDI Server----MIDI服务和驱动服务。
想浏览Core Audio框架中的头文件,可以查看附录“Core Audio 框架”。
本章余下部分展示基于服务的Core Audio------先从iOS和OS X中都有的服务开始吧。

iOS和OS X中可用的服务
本部分列出的服务在iOS 2.0和OS X 10.5中可用。

Audio Converter Services(音频转换服务)
音频转换服务允许你在不同格式间转化数据。这个接口由声明在框架 AudioToolbox.framework中的 头文件 AudioConverter.h 一系列函数,数据类型和常量组成。

Audio File Services(音频文件服务)
音频文件服务让你可以从一个文件或缓冲中读取数据或者向其写入数据。你使用它,结合Audio Queue Services来录制和播放音频。在iOS和OS X中,音频文件服务由声明在框架 AudioToolbox.framework中的头文件AudioFile.h中的一系列函数,数据类型和常量组成。

Audio File Stream Services(音频文件流服务)
音频文件流服务让你可以解析音频文件流----也就是,你无需访问整个文件来读取音频数据。你也可以用它来解析来自硬盘的文件数据,尽管音频文件服务才是为此目的而设计的。
音频文件流服务通过回调,向你的应用返回音频数据和元数据。在iOS和OS X中,音频文件流服务由声明在框架AudioToolbox.framework中的头文件AudioFileStream.h中的一系列函数,数据类型和常量组成。


Audio Format Services(音频格式服务)
音频格式服务让你可以处理音频数据格式信息。其他服务,例如音频文件服务同样含有有这个用途的函数。当你所想做的只是获取音频数据格式信息时,你使用音频格式服务。在OS X系统中,你还可以用这个服务获取系统特征,例如可用的编码采样速率。音频格式服务由声明在框架AudioToolbox.framework中的头文件AudioFormat.h中的一系列函数,数据类型和常量组成。

Audio Process Graph Services(音频流程图服务)
音频流程图服务让你可以在应用中创建和维护音频处理图。在iOS和OS X中,它由声明在框架AudioToolbox.framework中的头文件AUGraph.h中的一系列函数,数据类型和常量组成。

Audio Queue Services(音频队列服务)
音频队列服务让你可以播放和录制音频。它同样可以让你暂停和继续播放、循环以及同步多声道音频。在iOS和OS X中,它由
声明在框架 AudioToolbox.framework中的头文件AudioQueue.h 中的一系列函数,数据类型和常量组成。

Audio Unit Services(音频单元服务)
音频单元让你可以在应用中加载和使用音频单元。在iOS中,音频单元服务由一系列函数、数据类型以及声明在Audio.framework如下头文件的常量组成:
  • AUComponent.h

  • AudioComponent.h (iOS only)

  • AudioOutputUnit.h

  • AudioUnitParameters.h

  • AudioUnitProperties.h

OS X中增加了声明在AudioToolbox.framework如下头文件中的常量:
  • AUCocoaUIView.h

  • AudioUnitCarbonView.h

  • AudioUnitUtilities.h (in AudioToolbox.framework)

  • LogicAUProperties.h

  • MusicDevice.h

     

System Sound Services(系统提示音服务)
系统提示音服务让你可以播放较短的提示音和告警。在iPhone上,它可以让你调用震动。系统提示音服务由一系列声明在AudioToolbox.framework头文件AudioServices.h中的函数、数据类型和常量的子集组成。


仅在iOS上可用的服务
如下列出的服务仅在iOS中可用。

Audio Session Services(音频会话服务)
音频会话服务让你可以管理应用中的音频会话-----协调iPhone或者iPod touch上的后台应用和你应用中的音频行为。音频会话服务由一系列声明在AudioToolbox.framework头文件AudioServices.h中的函数、数据类型和常量的子集组成。

AVAudioPlayer 类
AVAudioPlayer类为播放声音提供了一个简单的Objective-C接。如果你的应用不需要立体声定位或者精确的同步,如果你没有在播放从网络流中捕获的音频,Apple建议你将该类用于播放。这个类声明在AVFoundation.framework中的AVAudioPlayer.h头文件中。


仅在OS X上可用的服务
如下列出的服务仅在OS X中可用。

Audio Codec Services(音频编解码服务)
音频编解码服务允许你在不同格式间转换数据。这个接口由一系列声明在AudioUnit.framework头文件AudioCodec.h中的函数、数据类型和常量组成。
AudioCodec.h(位于AudioUnit.framework)。

Audio Hardware Services(音频硬件服务)
音频硬件服务为Audio HAL(硬件抽象层)的一些重要特性提供了一个小型、轻量的接口。
Audio Hardware Services consists of a subset of the functions, data types, and constants declared in the AudioServices.h header file in AudioToolbox.framework.



Core Audio Clock Services(Core Audio时钟服务)
Core Audio时钟服务提供了一个你可以用于应用和设备同步的参考时钟。

This service consists of the functions, data types, and constants declared in the CoreAudioClock.h header file in AudioToolbox.framework.




Core MIDI Services(Core MIDI服务)
OS X中的Core Audio通过Core MIDI服务支持MIDI。

which consists of the functions, data types, and constants declared in the following header files in CoreMIDI.framework:

  • MIDIServices.h

  • MIDISetup.h

  • MIDIThruConnection.h

  • MIDIDriver.h



Core MIDI Server Services(Core MIDI服务器服务)
Core MIDI服务器服务让MIDI驱动能与OS X MIDI服务通信。

This interface consists of the functions, data types, and constants declared in the following header files in CoreMIDIServer.framework:

  • CoreMIDIServer.h

  • MIDIDriver.h



Extended Audio File Services(扩展的音频文件服务)
关于扩展的音频文件服务。
在很多情况下,你使用扩展的音频文件服务,它提供了一个读写音频数据的最简单接口。使用此接口读取文件会自动将数据解压和/或转为线性PCM格式。线性PCM是音频单元的原生格式。类似地,你可以使用一个函数调用将线性PCM音频数据以压缩的或者转化过的格式写入一个文件。“Supported Audio File and Data Formats in OS X”中列出了Core Audio默认支持的文件格式。一些格式有限制;例如,Core Audio默认只能读取MP3文件,但是不能对其进行写操作。


Hardware Abstraction Layer(HAL) Services(硬件抽象层服务)
OS X中的Core Audio使用一个硬件抽象层(HAL)为应用同硬件打交道,提供一个一致的、可预测的接口。在HAL中,每部分硬件由一个音频设备对象表示(AudioDevice类型)。应用可以查询音频设备对象来获取时间信息,可用于同步或者调整延迟。

HAL Services consists of the functions, data types, and constants declared in the following header files in CoreAudio.framework:

  • AudioDriverPlugin.h

  • AudioHardware.h

  • AudioHardwarePlugin.h

  • CoreAudioTypes.h (Contains data types and constants used by all Core Audio interfaces)

  • HostTime.h


许多开发者发现Apple的AUHAL单元为他们的硬件接口需求提供服务,因此他们无需直接和HAL服务交互。AUHAL对将音频数据发送到特定的音频设备对象负责,包括任何必需的声道映射。为获取更多关于使用AUHAL单元的信息,请查阅“Interface with Hardware”。


Music Player Services(音乐播放服务)
OS X中的音乐播放服务允许你安排和播放一组MIDI音轨。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值