现在的位置: 首页 > 综合 > 正文

红外自动切换播放语音听筒

2018年05月25日 ⁄ 综合 ⁄ 共 1105字 ⁄ 字号 评论关闭

本文实现的功能描述:

在播放语音的时候,如果手机贴近耳朵,切换听筒播放,当离开耳朵附近时切换为扬声器播放;

具体如下:


- (void) openProximityMonitor {

    

    [self
closeProximityMonitor];

    [[NSNotificationCenter
defaultCenter] addObserver:self

                                            
selector:@selector(sensorStateChange:)
name:@"UIDeviceProximityStateDidChangeNotification"

                                              
object:nil];

    [[UIDevice
currentDevice] setProximityMonitoringEnabled:YES];

    //建议在播放之前设置yes,播放结束设置NO,这个功能是开启红外感应


}


- (void) closeProximityMonitor {

    

    [[NSNotificationCenter
defaultCenter] removeObserver:self
name:@"UIDeviceProximityStateDidChangeNotification"
object:nil];

    [[UIDevice
currentDevice] setProximityMonitoringEnabled:NO];

    //建议在播放之前设置yes,播放结束设置NO,这个功能是开启红外感应


}

//处理监听触发事件

-(void)sensorStateChange:(NSNotificationCenter *)notification;

{

    //如果此时手机靠近面部放在耳朵旁,那么声音将通过听筒输出,并将屏幕变暗(省电啊)

    if ([[UIDevice
currentDevice] proximityState] ==
YES)

    {

       
NSLog(@"Device is close to user");

        [[AVAudioSession
sharedInstance] setCategory:AVAudioSessionCategoryPlayAndRecord
error:nil];

    }

    else

    {

       
NSLog(@"Device is not close to user");

        [[AVAudioSession
sharedInstance] setCategory:AVAudioSessionCategoryPlayback
error:nil];

    }

}

抱歉!评论已关闭.