相关疑难解决方法(0)

程序访问iPhone音量按钮

有没有办法订阅音量按钮按事件?

iphone objective-c

23
推荐指数
2
解决办法
2万
查看次数

如何为iPhone实现音量键快门?

我想用以下原生相机实现相同的行为iOS5:

  • 按音量+按钮拍照

归档它的理想方式是什么?有没有办法捕捉音量键按下事件?

谷歌搜索和搜索了几个小时后,我找到了一个解决方案:使用NSNotificationCenter:

...
    [[NSNotificationCenter defaultCenter]
         addObserver:self
         selector:@selector(volumeChanged:)
         name:@"AVSystemController_SystemVolumeDidChangeNotification"
         object:nil];
...
- (void)volumeChanged:(NSNotification *)notification{
    [self takePhoto];   
}
Run Code Online (Sandbox Code Playgroud)

但是,它有两个问题:

  • 每次按音量键时都会出现"当前系统音量"的半透明叠加,这不是我想要的.
  • 对于本机相机,当您按下音量键作为快门时,系统音量不会改变,但是,使用上述方法,系统音量将会改变.

iphone events volume ios

20
推荐指数
2
解决办法
1万
查看次数

iOS检测系统音量级别更改.私有API与否?AVSystemController_SystemVolumeDidChangeNotification

是否可以AVSystemController_SystemVolumeDidChangeNotification在使用私有API时(在App Store审核过程中)考虑收听NSNotification?

在我的应用程序中,我需要显示和更新当前的音量级别.在按下硬件音量按钮后和MPVolumeView滑块中的音量更改后,应更新音量指示器.

我搜索了解决方案如何获得硬件按钮按下的通知或事件,并找到了许多解决方案.

例如, 按iPhone检测音量键.

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

我喜欢听NSNotificationCenter的解决方案,似乎最简单明了的解决方案是听AVSystemController_SystemVolumeDidChangeNotification(并且工作正常)

但是我确实想知道一件重要的事情.

此通知名称未出现在任何Apple官方文档中,并且有关于此通知用法是否将被视为"使用私有API"的讨论.

据我所知,使用私有API与调用私有方法相关联.这就是为什么使用这个通知密钥不能被视为私有API使用(因为实际上我们使用通知名称作为NSString).

也许有人肯定知道这一点,或者有使用AVSystemController_SystemVolumeDidChangeNotification和app的经验被提交/拒绝?

非常感谢任何信息!

avfoundation iphone-privateapi appstore-approval nsnotificationcenter ios

9
推荐指数
1
解决办法
6807
查看次数