2017-05-04 4 views
0

앱에 현재 시스템 볼륨을 표시하는 인터페이스 요소가 있습니다.시스템 장치 출력 볼륨이 잘못되었습니다.

[RACObserve([AVAudioSession sharedInstance], outputVolume) subscribeNext:^(NSNumber* x) { 
     self.knobControl.position = -([x floatValue] * 4.65) + 1e-7; 
    }]; 

그러나, 내 응용 프로그램이 비활성화 될 때 다음 내가 현재 활성 시스템 볼륨에 해당 요소를 설정하기 위해 다음과 같은 논리를 사용하려고 다시 활성화 될 : 응용 프로그램에서 사용자 내가 모니터링하고 사용하여 설정 한 다음 때 동안 볼륨 변경 (응용 프로그램이 백그라운드에있는 동안 그 변화입니다) :

/* Notifications */ 

    [[NSNotificationCenter defaultCenter] addObserver:self 
              selector:@selector(didBecomeActive) 
               name:UIApplicationDidBecomeActiveNotification object:nil]; 


-(void)didBecomeActive{ 

    /* Call it to set correct value after application become active from background */ 

    CGFloat outputVol = [[AVAudioSession sharedInstance] outputVolume]; 
    self.knobControl.position = -(outputVol * 4.65) + 1e-7; 
} 

그러나, 나는 다음, 응용 프로그램에서 최대로 볼륨을 설정하고 최대의 2/16, 예를 들어, 홈 버튼을 누른 후 설정 시스템 볼륨을 누르면 app [[AVAudioSession sharedInstance] outputVolume]을 입력하면 해당 볼륨이 max (이전 값)로 설정되어 있습니다.

어떻게 해결할 수 있습니까?

답변

0

아직 댓글을 달 수 없지만 'didBecomeActive'메소드가 실제로 호출되고 있는지 확인하는 것이 좋습니다. 엄밀히 말하면 그것은 효과가 있어야하며, 그것이 문제가 될 수도 있습니다. 솔직히 일이 제대로 작동하지 않을 때 나는 간단한 디버깅을하고 또한 이것을 우리와 공유 할 것을 제안합니다. 그래서 우리는 통찰력을 가지며 더 잘 도와 줄 수 있습니다. 따라서 NSLog를 사용하여 메서드가 호출되고 outputVolume 값이 무엇인지 확인할 수 있다면 확인할 수 있습니다.