Audio Queue Services Programming Guide

Introduction

This document describes how to use Audio Queue Services, a C programming interface in Core Audio’s Audio Toolbox framework.

What Is Audio Queue Services?

Audio Queue Services provides a straightforward, low overhead way to record and play audio in iOS and Mac OS X. It is the recommended technology to use for adding basic recording or playback features to your iOS or Mac OS X application.

Audio Queue Services lets you record and play audio in any of the following formats:

Linear PCM.

Any compressed format supported natively on the Apple platform you are developing for.

Any other format for which a user has an installed codec.

Audio Queue Services is high level. It lets your application use hardware recording and playback devices (such as microphones and loudspeakers) without knowledge of the hardware interface. It also lets you use sophisticated codecs without knowledge of how the codecs work.

At the same time, Audio Queue Services supports some advanced features. It provides fine-grained timing control to support scheduled playback and synchronization. You can use it to synchronize playback of multiple audio queues and to synchronize audio with video.

Note: Audio Queue Services provides features similar to those previously provided by the Sound Manager in Mac OS X. It adds additional features such as synchronization. The Sound Manager is deprecated in Mac OS X v10.5 and does not work with 64-bit applications. Apple recommends Audio Queue Services for all new development and as a replacement for the Sound Manager in existing Mac OS X applications.

Audio Queue Services is a pure C interface that you can use in Cocoa applications as well as in Mac OS X command-line tools. To help keep the focus on Audio Queue Services, the code examples in this document are sometimes simplified by using C++ classes from the Core Audio SDK. However, neither the SDK nor the C++ language is necessary to use Audio Queue Services.

Who Should Read This Guide?

Audio Queue Services Programming Guide is useful to all iOS and Mac OS X developers who want a streamlined, straightforward way to record or play audio. To get the most from this document, you should be familiar with: