こんにちは、関連する質問はたくさんありますが、ボリュームボタンで写真を撮る方法を明確に示す人はいません。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")
}
}
それから私は、関数の中でイベントを処理: 1.仕事でも最大値/最小音量値に達し:
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)
}
}
はあなたが私にする任意のソリューションをお勧めでした。 2.ボリューム値のポップアップが画面に表示されません。
EDIT:
@ jayesh-kanzariya答え私はスウィフトにJPSVolumeButtonHandlerを使用する方法の追加に基づく:
- あなたのポッドファイルに
pod 'JPSVolumeButtonHandler'
を追加します。プロジェクトのルートで - プロジェクトとそこに追加するファイルを橋渡し
pod install
- 設定を実行:完了
import JPSVolumeButtonHandler class YourViewController { var volumeHandler: JPSVolumeButtonHandler? override func viewDidLoad() { super.viewDidLoad() self.volumeHandler = JPSVolumeButtonHandler(up: {self.capturePhoto()}, downBlock: {self.capturePhoto()}) ... } }
:あなたは#import <JPSVolumeButtonHandler/JPSVolumeButtonHandler.h>
すると、次のコードを追加しますのViewController!