2017-05-04 36 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の値が何であるかを調べることができます。

関連する問題