2009-12-28 51 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