2012-09-14 2 views
2

백그라운드에서 음악을 재생할 수있는 플레이어 응용 프로그램이 있습니다. AVAudioSessionDelegate을 사용하여 - (void)beginInterruption- (void)endInterruption 메서드를 구현하지만 사용자가 전화를 받았는지 또는 전화하지 않았는지 확인하는 방법을 모르겠습니다. 그가 전화를 받으면 나는 음악 재생을 다시하고 싶지 않지만 그가하지 않았다면 다시 듣고 싶다.사용자가 전화를 걸면 오디오 재생 중지

답변

0

이 사진은 귀하의 질문에 대한 답변을 요약한다 : enter image description here

그래서, 기본적으로, 당신은 applicationWillResignActive:에서 오디오를 비활성화 할 수 있습니다. 통화에 응답하지 않으면 applicationDidBecomeActive:에서 오디오 재생을 재개 할 수 있습니다.

실제로 오디오 재생시 약간의 혼란을 피하기 위해 applicationDidEnterBackground:에서 오디오를 시도하거나 비활성화 할 수도 있지만 위에 설명 된 방법을 사용하는 것이 좋습니다.

+0

내 응용 프로그램이 백그라운드에서 작동해야하며 오디오를 사용하지 않도록 설정해야 할 때만 방해가 발생합니다. 나는 [이 문서] (http://disanji.net/iOS_Doc/documentation/Audio/Conceptual/AudioSessionProgrammingGuide/HandlingAudioInterruptions/HandlingAudioInterruptions.html#//apple_ref/doc/uid/TP40007875-CH11-SW3)를 읽었지만 이해하지 못했습니다. 사용자가 전화를 받거나 응답하지 않았는지 확인하는 방법. 'AudioSessionGetProperty()'함수를 사용하여'kAudioSessionProperty_InterruptionType' 속성을 검사하려고 시도했지만, 두 상황 모두에서 동일한 값을주었습니다. – ZigDanis

+0

AVAudioSessionDelegate에서'- endInterruptionWithFlags :'를 사용해 보셨습니까? 연주를 재개 할 수 있는지 알려줄 것입니다. – sergio

+0

[this] (http://developer.apple.com/library/ios/documentation/AVFoundation/Reference/AVAudioSession_ClassReference/Reference/Reference.html#//))'AVAudioSessionInterruptionFlags_ShouldResume' 값 하나만 반환하는 문서'-endInterruptionWithFlags : apple_ref/doc/constant_group/Interruption_Flags '는 나에게 도움이되지 않을 것입니다. = ( – ZigDanis