iOS 사운드 관련 프레임워크
System Sound Services
경고음이나 인터페이스의 반응음(비프음)등의 짧은 사운드의 재생에 특화된 API이다.
볼륨을 바꾸거나 하는 재생 컨트롤은 할수 없다. 바이브레이션도 이 API를 사용한다.(아이폰만 가능)
관련 프레임워크 : AudioToolbox.framework
헤더 : AudioToolbox/AudioServices.h
Audio Queue Services
iPhone OS의 사운드 API의 핵심이다. 사운드파일을 단순히 재생하는 것만이 아니라
볼륨을 바꾸거나 일부를 루프시키거나 하는 구조를 만들수 있다.
또, 콜백함수를 쓸 때, 음을 합성하는 신디사이저나 딜레이 같은 이펙트를 만들거나 재생 스피드를
컨트롤 하는 것도 가능하다. 마이크를 사용한 녹음도 이 API를 사용해 구현하고 있다.
다만, 구현이 전체적으로 복잡하고, 능숙하게 사용하는데에는 시간이 걸린다.
관련 프레임워크 : AudioToolbox.framework
헤더 : AudioToolbox/AudioQueue.h
OpenAL
OpenAL(Open Audio Library)는 3차원음향용의 인터페이스이다. 음원을 3차원공간 내에 배치시켜
움직이는 것이 가능하다. 3차원 그랙픽의 OpenGL과 같다. 표준적인 인터페이스로서 플렛폼을 불문하고,
여러가지 플렛폼에 설치되어 있다. 3D게임 등에 이용이 많으나, 음을 울리는 것만이면 비교적 구현이
간단한 이점이 있다. 루프나 볼륨의 컨트롤 등도 가능하므로, System Sound Services와 Audio Queue Services
의 중간적인 기능을 가진 구조로서 이용하는 것이 가능하다.
또, 재생의 대기시간도 적으므로 실시간성이 요구되는 어플리케이션용이라고 할수 있다.
관련 프레임워크 : OpenAL.framework
헤더 : OpenAL/al.h OpenAL/alc.h
AVAudioPlayer (iPhone OS 2.2~)
iPhone OS 2.2부터 도입된 방법이다. 사운드를 재생하는 것만에 Audio Queue Services 등을 사용하는 것은
복잡하다는 개발자의 소리에 의해, 사운드파일의 재생만을 특화한 API로서 도입되었다. 볼륨이나 루프의
설정도 가능하다. Audio Queue Services과 같이 자유도와 확장성은 없으나, 간단히 사용할수 있다.
관련 프레임워크 : AVFoundation.framework
헤더 : AVFoundation/AVAudioPlayer.h
Audio Unit
가장 하드웨어에 가까운 낮은 레벨의 방법이다. 다른 API는 전부 시스템 위에 구축되어 있다.
이펙트 등의 고도의 처리를 적은 대기시간으로 구현하고 싶을 때에 사용할 수 있다.
다만, 구현은 상당히 복잡하다.
관련 프레임워크 : AudioUnit.framework
헤더 : AudioUnit/AudioUnit.h
[출처] http://blog.naver.com/PostView.nhn?blogId=seogi1004&logNo=110085742694