Enable and disable speaker in Xcode ios 8.1 while calling

audio, ios, iphone, xcode

Solution

AudioSessionSetProperty is Deprecated. 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];
}

Problem

I need to enable speaker while calling from app. I can successfully enable it but I am not able to disable it. I am using this method: ``` [[UIDevice currentDevice] setProximityMonitoringEnabled:NO]; NSLog(@"%d",enable); UInt32 route; route = enable ? kAudioSessionOverrideAudioRoute_Speaker : kAudioSessionOverrideAudioRoute_None; AudioSessionSetProperty (kAudioSessionProperty_OverrideAudioRoute, sizeof(route), &route); ``` Thanks in advance.

Original source