Swift AVFoundationを使って無音カメラを実装する

1 min read読了の目安(約1100字

Swift AVFoundationを用いて無音カメラを実装する

こんにちは、Ryosuke Kamimuraです。

今回はAVFoundationを用いて無音カメラを実装してみたいと思います。

以下のバージョンで動作確認しています。

Xcode  12.4
iOS  14

実装

AVFoundationを用いて写真を撮影することができるクラスを書いた後に、以下をコードでDelegateを継承します。

AVCapturePhotoCaptureDelegateメソッドが呼び出された時に、willCapturePhotoForでシステムサウンドを処理することができるとのことでした。

AVFoundation.swift
extension PhotoCapture: AVCapturePhotoCaptureDelegate {
  func photoOutput(_ output: AVCapturePhotoOutput, willCapturePhotoFor resolvedSettings: AVCaptureResolvedPhotoSettings) {
    AudioServicesDisposeSystemSoundID(1108)
  }
}

このようなデリゲートを含んだExtensionを記述すると、システム音を破棄することができます。

以上です。最後まで読んでいただきありがとうございました。

間違いなどありましたら、コメントいただければ幸いです。

参考

https://stackoverflow.com/questions/4401232/avfoundation-how-to-turn-off-the-shutter-sound-when-capturestillimageasynchrono

https://gist.github.com/trilliwon/2d39f95f8fe0d5a943421290322111ad

https://developer.apple.com/documentation/avfoundation/avcapturephotocapturedelegate

Github URL: https://github.com/RyosukeKamimura

Twitter URL: https://twitter.com/Ryosuke_Kamimur