2014-12-02 71 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

hiii舉報,感謝您的回覆它使揚聲器,但不要禁用它呢! 給我錯誤如:主/聲音下溢,buf_cnt = 0,會產生1幀 – 2014-12-02 10:53:09

+0

不適合你嗎? – Dev 2014-12-02 11:00:37

+0

它使但無法禁用! – 2014-12-02 11:13:52