2014-12-02 2 views
5

앱에서 전화를 걸 때 스피커를 활성화해야합니다. 성공적으로 활성화 할 수 있지만 비활성화 할 수는 없습니다. 사전에Xcode ios 8.1에서 스피커를 활성화 및 비활성화하려면

[[UIDevice currentDevice] setProximityMonitoringEnabled:NO]; 
NSLog(@"%d",enable); 

UInt32 route; 
route = enable ? kAudioSessionOverrideAudioRoute_Speaker : 
kAudioSessionOverrideAudioRoute_None; 

AudioSessionSetProperty (kAudioSessionProperty_OverrideAudioRoute, 
         sizeof(route), &route); 

감사 :

나는이 방법을 사용하고 있습니다.

답변

12

AudioSessionSetProperty는 더 이상 사용되지 않습니다. https://developer.apple.com/library/ios/documentation/audiotoolbox/reference/audiosessionservicesreference/index.html#//apple_ref/c/func/AudioSessionSetProperty

- (void)setAudioOutputSpeaker:(BOOL)enabled 
{ 
    AVAudioSession *session = [AVAudioSession sharedInstance]; 
    NSError *error; 
    [session setCategory:AVAudioSessionCategoryPlayAndRecord error:&error]; 
    [session setMode:AVAudioSessionModeVoiceChat error:&error]; 
    if (enabled) // Enable speaker 
    { 
     [session overrideOutputAudioPort:AVAudioSessionPortOverrideSpeaker error:&error]; 
    } 
    else // Disable speaker 
    { 
     [session overrideOutputAudioPort:AVAudioSessionPortOverrideNone error:&error]; 
    } 
    [session setActive:YES error:&error]; 
} 
+0

습니다 고지는 답장을 보내 주셔서 감사합니다 그것은 스피커가 가능하지만, 다음을 해제하지 않습니다! 이 다음과 같은 오류를줍니다 : Master/sound Underflow, buf_cnt = 0, 1 프레임 –

+0

이 효과가 없습니다. – Dev

+0

해제 할 수는 있지만 사용할 수 없습니다! –

관련 문제