2009-12-28 63 views
0

我正在嘗試使UISlider與音量搖桿同步。我已成功使用滑塊更改系統/鈴聲音量,但搖桿移動時需要滑塊移動。有關如何獲得當前音量值的任何建議?我使用下面的代碼monnitor體積變化:同步音量搖桿與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類別以外的「鈴聲」?

+0

你是怎麼得到的AVSystemController(或其他東西)來控制系統/鈴聲音量?我現在正在研究如何自己做這件事。 [如何禁用系統聲音](http://stackoverflow.com/questions/6284402/how-to-disable-ios-system-sounds/) – Sam 2011-06-09 16:59:08

回答

0

這將更新UISlider與音量鍵:

- (void)volumeChanged:(NSNotification *)notification 
{ 
    AVSystemController *avs = [ notification object ]; 
    NSString *audioDeviceName; 
    [ avs getActiveCategoryVolume:&_volume andName:&audioDeviceName ]; 
} 
2

SDK中有一個類可以自己處理系統卷,MPVolumeView。它不是UISlider的子類,因此你不能改變它的外觀(好吧,它將很難自己拼湊在一起),但這可能不是問題。 (編輯:看着class dumps,視圖包含正常UISlider視圖,它可能會比我預想的更容易)

我不知道它是否可以滿足您需要的一切,如果它會適合你的背景,但你也可以看看它並嘗試它。

+0

我剛剛回答我自己的問題,第二,我不會去要使用MPVolumeView,因爲我有興趣處理系統卷,而不僅僅是媒體卷; PI <3私有框架! – WrightsCS 2009-12-28 23:14:56

+0

蘋果不,這永遠是問題所在。我已經使用了很多私有方法,只是爲了讓我的應用程序只看到Apple-ish。我只需要覆蓋私有方法,或者它看起來不像其他iPhone應用程序(以Maps.app表格alert視圖爲例),我希望Apple能夠理解。祝你好運! – Joost 2009-12-28 23:20:08

+0

好吧,我真的希望他們會開始允許更多的私有方法,看起來每個新的SDK都會讓更多的框架變得私有化!很快,所有的框架都將是私有的,並且不會再有Apple開發者計劃! – WrightsCS 2009-12-28 23:22:31