Develop
2014.04.18 11:29
[ios] iOS 사운드 관련 프레임워크
Views 3084 Comment 0
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
No. | Category | Subject | Author | Date | Views |
---|---|---|---|---|---|
409 | Develop |
[c++] mfc로 만든 부엌 수납 시스템(2D기반 설계)
![]() |
hooni | 2013.04.23 | 7290 |
408 | Develop |
[c] 웹 메모장.. ㅋㅋ
![]() |
hooni | 2013.04.23 | 6851 |
407 | Develop | [java] RGB코드를 HEX코드로 변환하는 코드 ㅎㅎ | hooni | 2013.04.23 | 8031 |
406 | Develop | 라이브러리에 대한 설명 (static & dynamic library) | hooni | 2013.04.23 | 6969 |
405 | Develop | [c] 파일(File)의 연결과 연결 해제 (link, unlink, chown) | hooni | 2013.04.23 | 9558 |
404 | Develop | [js] 실행되는 디렉토리 확인하는 스크립트.. | hooni | 2013.04.23 | 6789 |
403 | Develop |
[c++] mfc 윈도우에서 ODBC 사용하여 MDB파일 읽기.. ㅋㅋ
![]() |
hooni | 2013.04.23 | 9150 |
402 | Develop | [c++] String Tokenizer (나중에 c 코드로 변경해서 사용할 것) | hooni | 2013.04.23 | 11731 |
401 | Develop |
[doc] mfc 매뉴얼 다운 받아서 완성하기.. ㅋㄷ
![]() |
hooni | 2013.04.23 | 7716 |
400 | Develop |
[c++] 채팅로봇 소스.. ㅋㄷㅋㄷ
![]() |
hooni | 2013.04.23 | 8906 |
399 | Develop | [c] 쓰레드에 대한 내용 퍼오기..ㅡㅡ; | hooni | 2013.04.23 | 8468 |
398 | Develop | [c++] mfc에서 윈도우 항상 위 속성 주기.. | hooni | 2013.04.23 | 11369 |