【问题标题】:Sync Volume rocker with a UISlider使用 UISlider 同步音量摇杆
【发布时间】:2009-12-28 22:25:07
【问题描述】:

我正在尝试让 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 类别?

【问题讨论】:

  • 您是如何获得 AVSystemController(或其他任何东西)来控制系统/铃声音量的?我现在正在研究如何自己做这件事。 how-to-disable-system-sounds

标签: iphone volume uislider


【解决方案1】:

SDK 中有一个类可以自己处理系统卷,MPVolumeView。它不是UISlider 的子类,因此您无法更改它的外观(好吧,您自己很难将它全部破解)但这可能不是问题。 (编辑:查看class dumps,该视图包含一个普通的UISlider 视图,因此可能比我预期的要容易)

我不确定它是否能满足您的所有需求以及它是否适合您的环境,但您也可以查看并尝试一下。

【讨论】:

  • 我刚刚回答了我自己的问题,第二,我不会使用 MPVolumeView,因为我有兴趣改变系统音量,而不仅仅是媒体音量;P 我
  • 苹果没有,这总是问题所在。我使用了很多私有方法,只是为了让我的应用程序只有 look Apple-ish。我只需要覆盖私有方法,否则它看起来不像其他 iPhone 应用程序(以 Maps.app 表警报视图为例),我希望 Apple 能理解。祝你好运!
  • 好吧,我真的希望他们开始允许更多的私有方法,似乎每一个新的 SDK,他们都在让更多的框架私有!很快,所有框架都将私有化,并且不会再有 Apple 开发者计划!!!
【解决方案2】:

这将使用音量摇杆更新UISlider

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-27
    • 2022-01-23
    相关资源
    最近更新 更多