2012-03-28 3 views
1

사용자의 무음/음소거 스위치가 무음/진동으로 설정되어 있어도 내 앱이 오디오를 재생하도록하는 "올바른"방법은 무엇입니까?iOS : 자동 모드에서 오디오 재생

일부 배경 : 실제로 디버깅 단계에서 작동하고 있지만, Apple에 내 응용 프로그램을 제출하고 나중에 응용 프로그램 저장소에서 다운로드 한 후 오디오가 자동 모드로 비활성화되었습니다! 내가 디버그 단계에서 일하고있어 방법은 다음과 같습니다

UInt32 sessionCategory = kAudioSessionCategory_MediaPlayback; 
AudioSessionSetProperty(kAudioSessionProperty_AudioCategory, 
         sizeof(sessionCategory), &sessionCategory); 

오디오 사용하여 연주되었다 그래서 같은 AVFoundation 축복하는 설정을 설정,

NSString *path = [[NSBundle mainBundle] pathForResource:fileName ofType:@"mp3"]; 
AVAudioPlayer *theAudio = [[AVAudioPlayer alloc] initWithContentsOfURL:[NSURL fileURLWithPath:path] error:NULL]; 
theAudio.delegate = self; 
[theAudio play]; 
+0

사용자가 듣고 싶지 않을 때 왜 앱이 소리를 내고 싶습니까? 사용자가 원하는 것이 맞습니까? – Hyperbole

+0

나는 "자동 모드로 오디오를 재생해서는 안된다. 나쁜 사용자 환경"이라는 규칙이 있다는 것을 알고있다.하지만 내 앱은 소리를 내기위한 것이고 "나쁜 사용자 경험" 실제로 사용자가 소리를 듣기를 기대하면서 "무언가를 듣고"무언가를 얻지 만 조용한 스위치가 무음으로 설정되었다는 사실을 깨닫지 못하는 경우에 발생합니다. – user1221973

+0

아마도 음소거 상태를 감지하고 사용자가 장치의 음소거를 해제 할 때까지 소리가 들리지 않는다고 알립니다. 어쨌든 애플의 HIG와 더 비슷하다. – Hyperbole

답변

0

나는이 같은 일을 생각하지만, 당신이 시도해야 ?

[[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayback error:nil]; 
    [[AVAudioSession sharedInstance] setActive: YES error: nil]; 
+0

이것은 잘 작동하지만 디버그 단계를 지나면 한 번 실패하지 않을 것이라는 보장은 없습니다. – user1221973