(iOS) AVAudioSessionCategory 정리
다들 알다시피 AVAudioSession 이라는 것을 통해서 iOS 내에서 음악을 재생하는데 AVAudioSessionCategory
라는 것에 대해서 알아둘 필요가있다. 이것이 왜 중요한지에 대해서 일단 일화를 설명하자면,
알람소리(Remote Notification 이 아님)를 재생함에 있어서 아이폰 무음모드에서도 재생되는 문제점이 있어서 찾아보니 무음모드와 소리모드를 체크할수 있는 아래의 코드를 찾을수 있었다.
그런데 문제는 이 코드가 iOS5 부터는 정상동작 하지 않는다는 것이다. 그래서 iOS5 부터는 AVAudioSessionCategory
라는 것을 통해서 음악 재생의 스타일을 지정할 수가 있다. 아래의 표를 보자.
원래 필자의 프로젝트에 지정되어 있던 것은 AVAudioSessionCategoryPlayBack
이었다. 이 설정에 대해 살펴보면 소리/무음에 따른 재생여부는 NO 로 되어 있는데 그렇기 때문에 무음모드에서도 재생이 되었던 것이다. 그 외에 다른 앱에서의 중복 실행 여부, Input(마이크) Output(스피커) 중 어떤것만 활성화 할것인지도 위의 표를 보게되면 알수 있다.
지정하는 방법은 아래와 같다.
필자는 일단 무음모드에서의 실행이 되면 안되고, 다른 앱에서의 음악/소리 재생을 허용하지 않고, 스피커로 소리를 재생해야 하기 문에 AVAudioSessionCategorySoloAmbient
를 설정하였다.
Reference:
– http://inhome.tistory.com/52