我想用以下原生相机实现相同的行为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)
但是,它有两个问题:
是否可以AVSystemController_SystemVolumeDidChangeNotification在使用私有API时(在App Store审核过程中)考虑收听NSNotification?
在我的应用程序中,我需要显示和更新当前的音量级别.在按下硬件音量按钮后和MPVolumeView滑块中的音量更改后,应更新音量指示器.
我搜索了解决方案如何获得硬件按钮按下的通知或事件,并找到了许多解决方案.
例如, 按iPhone检测音量键.
和
我喜欢听NSNotificationCenter的解决方案,似乎最简单明了的解决方案是听AVSystemController_SystemVolumeDidChangeNotification(并且工作正常)
但是我确实想知道一件重要的事情.
此通知名称未出现在任何Apple官方文档中,并且有关于此通知用法是否将被视为"使用私有API"的讨论.
据我所知,使用私有API与调用私有方法相关联.这就是为什么使用这个通知密钥不能被视为私有API使用(因为实际上我们使用通知名称作为NSString).
也许有人肯定知道这一点,或者有使用AVSystemController_SystemVolumeDidChangeNotification和app的经验被提交/拒绝?
非常感谢任何信息!
avfoundation iphone-privateapi appstore-approval nsnotificationcenter ios