[iOS] Multitasking : Audio

2013. 1. 24. 09:01제2외국어/iOS

 iOS Multitasking 중에서도 기본이라 할 수 있는 Audio 입니다.


[프로젝트 만들기 과정은 ..... 생략]



-- 프로젝트 설정

먼저 Audio를 사용하기 위한 Framework 추가하기



 iOS Multitasking 중 Audio 모드를 설정.
: plist ▶ Required background modes ▶ App plays audio
( 보시면 아시다시피 전 포스팅에서 소개한 7가지의 모드라는걸 아실 수 있습니다. :D )





이 밑에는 AVAudioPlayer 를 이용해 소리를 키는 부분입니다.
( 아시는 분은 필요없는 부분입니다. )


1.  import시키기 , 변수 선언

#import <AVFoundation/AVFoundation.h>

@property (nonatomic, strong) AVAudioPlayer *audioPlayer;


2. init & url 설정

// 먼저 test.mp3 라는 파일의 URL 설정
// 
AVAudioPlayer init

NSURL *audioFileLocationURL = [[NSBundle mainBundle]URLForResource:@"test" withExtension:@"mp3"];
audioPlayer = [[AVAudioPlayer alloc]initWithContentsOfURL:audioFileLocationURL error:nil];

// option  무한 반복 : -1
[audioPlayer setNumberOfLoops:-1];

//  Category property 설정
[[AVAudioSession sharedInstance]setCategory:AVAudioSessionCategoryPlayback error:nil];
[[AVAudioSession sharedInstance]setActive:YES error:nil];



  Values for the category property 


 -  AVAudioSessionCategoryAmbient : 동시 재생 가능, 배경음악 같은 경우

 -  AVAudioSessionCategorySoloAmbient : 동시 재생 불가

 -  AVAudioSessionCategoryPlayback : 일반적인 노래같은 경우

 -  AVAudioSessionCategoryRecord : 녹음만 하는 경우

 -  AVAudioSessionCategoryPlayAndRecord : 동시에 원할 때 ( 노래를 켜고, 녹음도 하고 )

 -  AVAudioSessionCategoryAudioProcessing : 코덱 및 신호 처리를 하는 동안은 재생 및 오디오를 사용하지 않을 때


 원문은 xCode에서 command 버튼을 누른상태에서 카테고리를 설정하면 보실 수 있습니다.


- OPTION
: 소리 크기 조절
ex) [audioPlayer setVolume:[sender value]];   // 값은 0.0 ~ 1.0 입니다.


3. 음악 켜기/끄기

[audioPlayer play];
[audioPlater pause];



실행 및 테스트 해본 화면입니다.

Interface 추가 및 연결하는 부분도 생략합니다.




** 참고로 시뮬레이터로 테스트할 경우 백그라운드로 잘 돌아가는지 확인이 안 되더군요.
    꼭 Device를 통해서 해보시기 바랍니다.