你好,有一堆相關的問題,但我會說,他們都沒有給出明確的答案如何捕捉與音量按鈕的照片。iOS。用音量按鈕捕捉照片
目前我將觀察者添加到AVAudioSession
實例,但它不適用於最大和最小音量值,並且似乎顯示相機彈出的音量狀態陰影。
private func setupButtonsListener(){
do {
let audioSession = AVAudioSession.sharedInstance()
try audioSession.setActive(true)
audioSession.addObserver(self, forKeyPath: "outputVolume", options: NSKeyValueObservingOptions.new, context: nil)
} catch {
print("Error")
}
}
然後我在功能處理事件:
override func observeValue(forKeyPath keyPath: String?, of object: Any?, change: [NSKeyValueChangeKey : Any]?, context: UnsafeMutableRawPointer?) {
if keyPath == "outputVolume" {
capturePhoto() // Same function which I use for capturing photo for screen button.
} else {
super.observeValue(forKeyPath: keyPath, of: object, change: change, context: context)
}
}
您建議我將任何解決方案: 1.工作,即使最大/最小體積值達到。 2.不會顯示在屏幕上彈出的音量值。
編輯:基於@ jayesh-kanzariya答案我添加了如何在斯威夫特使用JPSVolumeButtonHandler
:
- 添加
pod 'JPSVolumeButtonHandler'
到您的吊艙文件。 - 在項目的根執行
pod install
- 配置橋接文件爲您的項目,並添加有:
#import <JPSVolumeButtonHandler/JPSVolumeButtonHandler.h>
在你的ViewController添加以下代碼:
import JPSVolumeButtonHandler class YourViewController { var volumeHandler: JPSVolumeButtonHandler? override func viewDidLoad() { super.viewDidLoad() self.volumeHandler = JPSVolumeButtonHandler(up: {self.capturePhoto()}, downBlock: {self.capturePhoto()}) ... } }
完成!