0

UISlider をボリューム ロッカーと同期させようとしています。スライダーを使用してシステム/着信音の音量を変更することに成功しましたが、ロッカーが動くときにスライダーを動かす必要があります。現在のボリューム値を取得する方法に関する提案はありますか? 以下のコードを使用して、音量の変化を監視しています。

- (void)volumeChanged:(NSNotification *)notification{

       AVSystemController* avc = SharedAVSystemController;
       //   my sliders name is customVolume, and this is how I 
       //   am trying to get the volume:
       customVolume.value = [avc getVolume:(float *) forCategory:(id)];

}

また、「着信音」以外の AVSystemController カテゴリは何ですか?

4

2 に答える 2

2

システム ボリュームをすべて単独で処理する SDK で使用可能なクラスMPVolumeViewがあります。のサブクラスではUISliderないため、外観を変更することはできません (まあ、自分ですべてをハッキングするのは難しいでしょう) が、おそらく問題にはなりません。(編集:クラスダンプを見ると、ビューには通常のビューが含まれているUISliderため、予想よりも簡単かもしれません)

必要なすべてを処理できるかどうか、およびコンテキストに適合するかどうかはわかりませんが、それを見て試してみることもできます.

于 2009-12-28T22:57:51.787 に答える
0

UISliderこれにより、ボリューム ロッカーが更新されます。

- (void)volumeChanged:(NSNotification *)notification
{
    AVSystemController *avs = [ notification object ];
    NSString *audioDeviceName;
    [ avs getActiveCategoryVolume:&_volume andName:&audioDeviceName ];
}
于 2009-12-28T23:13:10.307 に答える