【问题标题】:Override volume up in swift, iOS 10 to take a picture快速覆盖音量,iOS 10 拍照
【发布时间】:2018-06-23 10:08:47
【问题描述】:

我想使用音量增大/音量减小在我的应用程序中拍摄照片(编码在 Swift 3.2 中),就像 iOS 内置的相机应用程序一样。 有没有一种简单的方法可以做到这一点?如果它只是代码(不涉及故事板)会很棒
谢谢!

【问题讨论】:

标签: ios swift camera volume


【解决方案1】:

目前没有直接可用的 API。但以下解决方法适用于您的情况。

  • 收听AVAudioSession keypath outputVolume,当有新值时,您可以拍摄照片。

import AVFoundation

var audioSession = AVAudioSession()
try audioSession.setActive(true)
audioSession.addObserver(self, forKeyPath: "outputVolume", options: NSKeyValueObservingOptions.new, context: nil)


func observeValueForKeyPath(keyPath: String, ofObject object: AnyObject, change: [NSObject : AnyObject], context: UnsafeMutablePointer<Void>) {
    if keyPath == "outputVolume"{
        // capture photo here.
    }
}

【讨论】:

  • 仅供参考。对于 Swift 5,正确的函数签名是:override func observeValue(forKeyPath keyPath: String?, of object: Any?, change: [NSKeyValueChangeKey : Any]?, context: UnsafeMutableRawPointer?)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-03-23
  • 2023-03-26
相关资源
最近更新 更多