我想在我的应用程序中调出相机,让用户按下手机上的硬件音量按钮拍照。
这可能吗?我可以在用户更改音量时触发功能,然后我可以在此功能中以编程方式触发相机吗?
非常感谢链接或代码段。
答案 0 :(得分:8)
我是Frank Krueger和wkw的评论。从用户体验的角度来看,这听起来是一个非常糟糕的主意。无论如何你想尝试一下,你可以试试这个:
MPMusicPlayerController *musicPlayer = [MPMusicPlayerController iPodMusicPlayer];
[musicPlayer beginGeneratingPlaybackNotifications];
只要音量发生变化,系统就会生成MPMusicPlayerControllerVolumeDidChangeNotification
。您可以使用-[NSNotificationCenter addObserver:selector:name:object:]
注册自己作为通知的观察者。但是,这并不直接与音量控制按钮相关联。例如,用户也可以插入或移除耳机,操作系统根据此配置的最后设置调整音量。)
此外,我认为音量通知仅适用于音乐音量的更改,而不适用于系统/铃声音量。所以它只会在播放音乐时发布。但我不确定这一点。
答案 1 :(得分:0)
要获得音量变化通知,您可以定义回调函数:
void listenerCallback (void *inUserData,
AudioSessionPropertyID inPropertyID,
UInt32 inPropertyValueSize,
const void *inPropertyValue)
然后注册:
AudioSessionAddPropertyListener(kAudioSessionProperty_CurrentHardwareOutputVolume,
propertyListenerCallback,
userData);
这当然假定您在此之前初始化应用程序的AudioSession。
但是,使用音量按钮除了与音量相关的任何内容之外,您的应用程序都会在快速通道上被拒绝。
答案 2 :(得分:0)
有趣的是,在Apple实施之前,这是一个如此糟糕的主意。安德鲁是否因为在他们面前提出这个想法而获得Apple的任何赔偿?