私のアプリケーションに現在のシステムボリュームを表示するインターフェイス要素があります。ボリュームの変更時には時にアプリで、ユーザーはモニター環境と、次を使用して設定することができます。システムデバイスの出力ボリュームが正しくありません
[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(古い値)に設定されていることがわかります。
これを修正するにはどうすればよいですか?