加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

在呼叫时启用和禁用Xcode ios 8.1中的扬声器

发布时间:2020-12-15 01:48:48 所属栏目:百科 来源:网络整理
导读:我需要在从app调用时启用扬声器.我可以成功启用它,但我无法禁用它. 我正在使用这种方法: [[UIDevice currentDevice] setProximityMonitoringEnabled:NO];NSLog(@"%d",enable);UInt32 route;route = enable ? kAudioSessionOverrideAudioRoute_Speaker :kAud
我需要在从app调用时启用扬声器.我可以成功启用它,但我无法禁用它.

我正在使用这种方法:

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

UInt32 route;
route = enable ? kAudioSessionOverrideAudioRoute_Speaker :
kAudioSessionOverrideAudioRoute_None;

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

提前致谢.

解决方法

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];
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读