IOS 6 中的音量检测

Posted

技术标签:

【中文标题】IOS 6 中的音量检测【英文标题】:Volume Detection In IOS 6 【发布时间】:2013-01-28 12:59:26 【问题描述】:

我正在创建一个应用程序,当应用程序处于后台并且用户更改 iPhone 应用程序中的音量时,应该会知道它。 有什么想法或线索吗?

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions


    //self.window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]] autorelease];

    // Override point for customization after application launch.

    AudiosessionInitialize(NULL, NULL, NULL, NULL);

    AudioSessionSetActive(true);

    [[NSNotificationCenter defaultCenter]
     addObserver:self
     selector:@selector(volumeChanged:)
     name:@"AVSystemController_SystemVolumeDidChangeNotification"
     object:nil];

    self.window.backgroundColor = [UIColor whiteColor];

    [self.window makeKeyAndVisible];

    LoginVC *login=[[LoginVC alloc]initWithNibName:@"LoginVC" bundle:nil];

    self.navigate=[[UINavigationController alloc]initWithRootViewController:login];

    [self.window addSubview:navigate.view];

    [login release];

    [self.window makeKeyAndVisible];

    return YES;




- (void)volumeChanged:(NSNotification *)notification


    float volume =
    [[[notification userInfo]
      objectForKey:@"AVSystemController_AudioVolumeNotificationParameter"]
     floatValue];


    NSLog(@"chfi");



  // Do stuff with volume

我已经使用了这段代码,但它没有被调用。

【问题讨论】:

做不到。您能更一般地解释一下您要做什么吗?可能有替代解决方案。 感谢您的回复。我只是想在应用处于后台时检测硬件音量检测。 你为什么要这样做?可能有不同的方法可以达到相同的效果。 我错了。看起来有可能。试试这个:***.com/questions/3651252/… 这是应用程序中的一个过程,当应用程序在后台并且用户更改 Iphone 的音量时,我必须向服务器发送消息,这就是原因。 【参考方案1】:

你可以设置一个监听器。当音量改变时,回调方法将被调用。

【讨论】:

据我所知,没有办法直接做,所以我听一个音量变化通知。 当应用程序在后台和IOS 6.0中时你是否实现了这个 ***.com/questions/9660445/…>

以上是关于IOS 6 中的音量检测的主要内容,如果未能解决你的问题,请参考以下文章

检测音量按钮的长按和短按 - iOS

如何在iOS上获得音量级别和音量更改通知?

音量未更改时检测硬件音量按钮按下

iOS 5/6:首次使用 CoreAudio 后音量变小

如何在 iOS 6 中获取压缩视频的原始音量

为啥音量不跟随我的 iOS 应用程序中的硬件控制?