본문 바로가기

Program/iOS

iOS 무료음악감상 Audio BackgroundTask

** 개인적 메모입니다. 태클 사절 **



미디어 재생을 백그라운드모드로 해야하는 기능이 있어서 백그라운드 모드 재생관련 내용을 찾아봤다.


우선 프로젝트 설정에서


- Application does not run in background 항목이 있다면 제거.

- Required background modes 추가,  Item 추가  item value 에 App plays audio 설정.(음악재생 앱이라....)


설정은 여기까지.


코드 상에서 백그라운드태스트로 작업을 시작해야하는 시점에


[code]UIBackgroundTaskIdentifier task = [[UIApplication sharedApplication] beginBackgroundTaskWithExpirationHandler:nil];[/code]


...

...


[[UIApplication sharedApplication] endBackgroundTask: task];


음악 재생의 경우 


AVAudioSession 을 설정해야한다.

NSError *categoryError = nil;

        [[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayback error:&categoryError];

        [[AVAudioSession sharedInstance] setActive: YES error: nil];

        [[UIApplication sharedApplication] beginReceivingRemoteControlEvents];


음원이 서버에 있다면 AVAudio 를 사용해야한다. 

AVAudioPlayer는 로컬 파일만 재생하다 내부 메소드에 initWithURL 이 존재하지만 여기서 말하는 URL는 

애플이 좋아하는 도메인 로컬 패스의 URL...젠장..


그리고 iOS는 rtsp 프로토콜을 지원하지 않는다...유투브API의 gdata 를 이용하는 경우 rtsp 프로토콜의 3gp url를 얻어올 수 있어서 안드로이드 개발시에는 듣기는 3gp 로 동영상 보기는  mp4로 처리했는데.

iOS는 어쩔 수 없이 두개다 mp4다.