В моем приложении я должен записывать звук и воспроизводить этот звук и добавить близость, когда игра этого аудио возле вашего уха, чтобы для этого я должен сделать этот код при нажатии кнопки воспроизведения нажмите:как отключить близость, когда AVPlayer прекратить играть
- (IBAction)btnPlayPauseTapped:(id)sender {
UIDevice *device = [UIDevice currentDevice];
[device setProximityMonitoringEnabled: YES];
if (device.proximityMonitoringEnabled == YES) {
[[NSNotificationCenter defaultCenter] removeObserver:APP_DELEGATE name:@"UIDeviceProximityStateDidChangeNotification" object:nil];
[[NSNotificationCenter defaultCenter] addObserver:APP_DELEGATE selector:@selector(proximityChanged:) name:@"UIDeviceProximityStateDidChangeNotification" object:device];
//other code
}
Уведомление называют этот метод, когда близость позволит:
- (void) proximityChanged:(NSNotification *)notification {
NSLog(@"proximity changed called");
UIDevice *device = [notification object];
AVAudioSession *audioSession = [AVAudioSession sharedInstance];
if(device.proximityState == 1){
[audioSession setCategory:AVAudioSessionCategoryPlayAndRecord error:nil];
[audioSession overrideOutputAudioPort:AVAudioSessionPortOverrideNone error:nil];
[audioSession setActive:YES error:nil];
}
else{
[audioSession setCategory:AVAudioSessionCategoryPlayback error:nil];
[audioSession overrideOutputAudioPort:AVAudioSessionPortOverrideSpeaker error:nil];
[audioSession setActive:YES error:nil];
}
}
когда игрок остановки воспроизведения или паузы я добавить:
UIDevice *device = [UIDevice currentDevice];
[device setProximityMonitoringEnabled: NO];
, но когда я снова начну воспроизводить аудио и поставлю устройство около уха, это время вызвало метод уведомления (proximityChanged), и в то время состояние близости также получило 1 и категорию аудиосеанса, также установленную как playandrecord, но она не воспроизводила этот звук в динамике уха , он воспроизводит звук в основном громкоговорителе.
, пожалуйста, помогите мне в этом.
Благодарим вас в Advance.