AudioSession API 간단 사용법

내가 개발한 앱이 실행중일때 오디오가 어떻게 작동하는지를 설정할 수 있는 API로 앱내에서의 오디오가 어떻게 작동하는지를 설정할 수 있습니다.

1. 아이팟 오디오와 앱의 오디오가 같이 작동하는지

2. 아이팟 오디오를 끄고 앱의 오디오만 작동하는지

3. 녹음이 가능할 것인지

4. 오디오 플레이는 안하면서 오디오 처리만 할 것인지 등등을

 

세션 카테고리를 이용해서 설정하여 사용할 수 있습니다.

기본적으로 세션을 초기화 하는 코드는 다음과 같습니다.

 

디버깅이나 OSStatus 화인없이 꼭 필요한 부분만 작성된 코드입니다.

 

코드상에 번호가 매겨져있습니다. 번호대로 설명드립니다.

1. 앱 실행중에 전화가 오거나 문자가 오면 전화벨이 울립니다. 이때 앱의 오디오가 어떻게 작동하는지 설정합니다.

2. 이어폰으로 아이팟 음악을 듣다가 이어폰을 뽑으면 자동으로 음악이 정지됩니다 이렇게 오디오의 하드웨어 변경에 따른 앱의 오디오를 설정하는 부분입니다.

3. 다른 앱(아이팟)에서 오디오를 사용하고 있는지 체크해주는 부분입니다. 사용여부에 따라 4번과 같이 카테고리를 설정해주면 됩니다.

4. 앱의 오디오 Behavior를 설정하는 부분입니다. Behavior에 따라 iOS에서 제공하는 몇가지 카테고리가 있는데 다음과 같습니다.

– kAudioSessionCategory_SoloAmbientSound : 디폴트로 앱이 실행되면 아이팟 오디오가 꺼지고 앱의 오디오만 작동됩니다.

– kAudioSessionCategory_AmbientSound : 앱이 실행되면 아이팟 오디오는 계속 실행되면서 앱의 오디오도 같이 작동합니다. (오디오 세션설정을 안한 상태에서 앱을 실행하면 이상태더군요)

– kAudioSessionCategory_MediaPlayBack : 앱이 실행되면 아이팟 오디오가 꺼지고 앱의 오디오만 작동합니다. 더불어 하드웨어의 음소거기능이나 락을 걸어도 앱의 오디오가 계속 실행됩니다.

– kAudioSessionCategory_PlayAndRecord : 디폴트인 SoloAmbientSound와 같지만 녹음이 가능합니다.

– kAudioSessionCategory_AudioProcessing : 오디오 플레이는 안되고 오디오의 처리만 가능합니다.

Published by

안반장

Web과 App 개발을 하고 있으며 최근 워드프레스에 관심이 많아져 네이버 카페 워드프레스 홈페이지의 TF팀으로 활동 중 입니다.개인적으로는 안반장의 개발 노트라는 블로그를 운영하면서 개발의 즐거움과 고충들을 차곡차곡 담아가고 있습니다.