2014-12-02 10 views
5

Muszę włączyć głośnik podczas wywoływania z aplikacji. Mogę go włączyć, ale nie mogę go wyłączyć.Włączanie i wyłączanie głośnika w Xcode ios 8.1 podczas wywoływania

Używam tej metody:

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

UInt32 route; 
route = enable ? kAudioSessionOverrideAudioRoute_Speaker : 
kAudioSessionOverrideAudioRoute_None; 

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

Z góry dzięki.

Odpowiedz

12

AudioSessionSetProperty jest przestarzała. 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

hiii, Dzięki za odpowiedzi umożliwia głośnik ale nie wyłączać go potem! daje mi błąd podobny do: Master/sound Underflow, buf_cnt = 0, wygeneruje 1 klatkę –

+0

nie działa dla ciebie? – Dev

+0

Umożliwia, ale nie może wyłączyć! –

Powiązane problemy