You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在AVCam示例代码中集成AVCaptureEventInteraction实现音量键拍照?

在AVCam示例中添加iOS 17.2的AVCaptureEventInteraction实现音量键拍照

iOS 17.2新增的AVCaptureEventInteraction API支持通过音量键触发相机拍照,以下是在AVCam示例代码中添加该交互的具体步骤:

实现步骤

  1. 定位到AVCam中负责相机预览的视图控制器(如AVCamCameraViewController),在视图初始化或相机会话配置完成后添加交互逻辑。
  2. 创建AVCaptureEventInteraction实例,在回调中判断音量键事件并触发拍照操作。
  3. 将交互实例绑定到相机预览视图上,确保能响应系统事件。

完整代码示例

override func viewDidLoad() {
    super.viewDidLoad()
    // 保留原有初始化代码...
    
    if #available(iOS 17.2, *) {
        let captureInteraction = AVCaptureEventInteraction { [weak self] event in
            // 过滤出音量上下键触发的事件
            guard event.type == .volumeDown || event.type == .volumeUp else { return }
            // 调用AVCam内置的拍照方法
            self?.capturePhoto()
        }
        // 将交互添加到相机预览视图(AVCam示例中通常为previewView)
        previewView.addInteraction(captureInteraction)
    }
}

注意事项

  • 确保previewView是当前显示相机画面的视图,AVCam示例中默认存在该视图对象。
  • 回调中使用[weak self]避免循环引用,防止内存泄漏。
  • 由于当前API暂无详细官方文档,建议测试静音模式、物理按键长按等场景下的触发行为,确保符合预期。

内容的提问来源于stack exchange,提问作者Gizmodo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.04 01:34:58