iOS Изменить устройство динамик с датчиком приближения - PullRequest
0 голосов
/ 27 февраля 2019

У меня есть проигрыватель потокового видео и аудио с облачной камеры.

Я пытаюсь настроить вывод звука.звук выходит из двух динамиков (ухо и ниже).Прямо сейчас ...

но я не хочу, чтобы он выходил через динамик ниже, когда датчик активирован

[[UIDevice currentDevice] setProximityMonitoringEnabled:YES];
[notificationCenter addObserver:self selector:@selector(sensorStateMonitor:) name:@"UIDeviceProximityStateDidChangeNotification" object:nil];

.

 _audioSession = [AVAudioSession sharedInstance];
[_audioSession setCategory:AVAudioSessionCategoryPlayAndRecord withOptions:AVAudioSessionCategoryOptionDefaultToSpeaker error:nil];
[_audioSession setActive:YES withOptions:AVAudioSessionSetActiveOptionNotifyOthersOnDeactivation error:nil];

.

- (void)sensorStateMonitor:(NSNotificationCenter *)notification
{
    if ([[UIDevice currentDevice] proximityState] == YES){
        NSLog(@"Device is close to user.");
        [_audioSession overrideOutputAudioPort:AVAudioSessionPortOverrideNone error:nil];
    }
    else{
        [_audioSession overrideOutputAudioPort:AVAudioSessionPortOverrideSpeaker error:nil];
        NSLog(@"Device is not closer to user.");
    }
    [_audioSession setActive:YES error:nil];
NSLog(@"Current audio route: %@",_audioSession.currentRoute.outputs);

}

когда активны датчики, у меня есть этот журнал

Устройство близко к пользователю. [Avas] AVAudioSessionPortImpl.mm:56:ValidateRequiredFields: Неизвестный выбранный источник данных для рецептора порта(тип: Receiver) Текущий аудио маршрут: (AVAudioSessionPortDescription: 0x2813d8020, тип = Receiver; имя = Receptor; UID = встроенный приемник; selectedDataSource = (null))

и когда датчик выключен, этоlog

Устройство не ближе к пользователю.[avas] AVAudioSessionPortImpl.mm:56:ValidateRequiredFields: Неизвестный выбранный источник данных для порта Bocina (тип: Speaker) Текущий аудио маршрут: (AVAudioSessionPortDescription: 0x2813d2620, тип = Speaker; имя = Bocina; UID = Speaker; selectedDataSource = null) (null): null")

но звук всегда выходит через две колонки

...