近接センサー使用

1362 ワード


[[UIDevice currentDevice] setProximityMonitoringEnabled:YES];

-(void)sensorStateChange:(NSNotificationCenter *)notification {
    if ([[UIDevice currentDevice] proximityState] == YES) {
        NSLog(@"  ");
        audioRouteOverride = kAudioSessionOverrideAudioRoute_None;
    }else{
        NSLog(@"  ");
    }
}

AVAudioPlayerは、ユーザがセンサーに近づくと、受話器で再生する

[[NSNotificationCenter defaultCenter] addObserver:self
                                             selector:@selector(sensorStateChange:)
                                                 name:@"UIDeviceProximityStateDidChangeNotification"
                                               object:nil];

-(void)sensorStateChange:(NSNotificationCenter *)notification {
    UInt32 audioRouteOverride = kAudioSessionOverrideAudioRoute_Speaker;
    if ([[UIDevice currentDevice] proximityState] == YES) {
        audioRouteOverride = kAudioSessionOverrideAudioRoute_None;
    }
    
    AudioSessionSetProperty(kAudioSessionProperty_OverrideAudioRoute, sizeof(audioRouteOverride), &audioRouteOverride);
}