Swift 4でデバイスのフラッシュモードをどのように設定しますか?

チューバッカコーキー

デバイスのフラッシュをオンにしようとする関数を呼び出しています。

private func flashOn(device:AVCaptureDevice)
{
    print("flashOn called");
    do {

        try device.lockForConfiguration()
        // line below returns warning 'flashMode' was deprecated in iOS 10.0: Use AVCapturePhotoSettings.flashMode instead.
        device.flashMode = AVCaptureDevice.FlashMode.auto
        device.unlockForConfiguration()

    } catch {

        // handle error
        print("flash on error");
    }

}

device.flashModeをAVCaptureDevice.FlashMode.autoに設定すると、「iOS10.0では「flashMode」は非推奨になりました。代わりにAVCapturePhotoSettings.flashModeを使用してください。」という警告が表示されます。これは単なる警告ですが、アプリのテスト時にフラッシュが有効にならないため、その行を次のように変更します。

device.flashMode = AVCaptureDevice.FlashMode.auto

だから私はそれが示唆するように、これに線を設定しました:

AVCapturePhotoSettings.flashMode = AVCaptureDevice.FlashMode.auto

そして、「インスタンスメンバー 'flashMode'はタイプ 'AVCapturePhotoSettings'では使用できません」というエラーが表示されます。

そのため、Swift4.0を使用してXcodeバージョン9でフラッシュを設定する方法がわかりません。Stack Overflowで見つけたすべての答えは、以前のバージョンのものです。

Crunkz

私は同じ問題に直面しています。残念ながら、iOS10と11では多くの便利なメソッドが非推奨になりました。これを解決する方法は次のとおりです。

AVCapturePhotoSettingsオブジェクトは一意であり、再利用できないため、次のメソッドを使用するたびに新しい設定を取得する必要があります。

/// the current flash mode
private var flashMode: AVCaptureDevice.FlashMode = .auto

/// Get settings
///
/// - Parameters:
///   - camera: the camera
///   - flashMode: the current flash mode
/// - Returns: AVCapturePhotoSettings
private func getSettings(camera: AVCaptureDevice, flashMode: AVCaptureDevice.FlashMode) -> AVCapturePhotoSettings {
    let settings = AVCapturePhotoSettings()

    if camera.hasFlash {
        settings.flashMode = flashMode
    }
    return settings
}

ご覧のとおり、lockConfigurationは必要ありません。

次に、写真をキャプチャするときに使用します。

 @IBAction func captureButtonPressed(_ sender: UIButton) {
    let settings = getSettings(camera: camera, flashMode: flashMode)
    photoOutput.capturePhoto(with: settings, delegate: self)
}

それが役立つことを願っています。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

NSDataをSwiftのデータに変換しましたが、バイトを[UInt]にキャストしようとするとクラッシュします

分類Dev

Swift 3のすべてのデバイスでフリップアニメーションのように表示するようにテーブルビューを作成するにはどうすればよいですか?

分類Dev

Swiftの状態の属性付きタイトルカラーをどのように設定しますか

分類Dev

Swiftを使用してハーフバナービューでUITableviewの最初のインデックスセルショーを作成するにはどうすればよいですか?

分類Dev

タブバーコントローラーのデフォルトタブをSwiftで設定するにはどうすればよいですか?

分類Dev

ジオロケーションを自動的に設定し、swift でバックグラウンドでジオフェンスを作成するにはどうすればよいですか?

分類Dev

Swift 4を使用してXcodeで複数のビューコントローラーを使用してカスタムモデルのインスタンスを作成するにはどうすればよいですか?

分類Dev

swift 3でlayerClassをどのようにオーバーライドしますか?

分類Dev

Swift 4でJSONデータのポリモーフィックデコードを実装するにはどうすればよいですか?

分類Dev

コレクションビューセルを「0」ではなく「1」のインデックスで開始するように設定する方法-Swift

分類Dev

テキストフィールドのレイアウトマージンをSwiftで設定するにはどうすればよいですか?

分類Dev

Swift 4でテキストフィールドのパディングをどのように作成しますか?

分類Dev

Swift でアプリのバックグラウンド更新をどのように実装しますか?

分類Dev

Xcode内からすべてのSwift標準ライブラリソースコードまたはモジュール定義にアクセスするにはどうすればよいですか?

分類Dev

Swift、XCodeのコレクションビューにカスタム水平スクロールを設定するにはどうすればよいですか?

分類Dev

Swift 4 Xcode 10を使用して、Cocoaのストーリーボードからプログラムで初期コントローラーを設定するにはどうすればよいですか?

分類Dev

Swiftでナビゲーションバーのタイトルを設定するにはどうすればよいですか?

分類Dev

swiftを使用して動的テーブルビューでUISwitchのインデックスパスを取得するにはどうすればよいですか?

分類Dev

Swift-具象サブクラスの拡張メソッドをオーバーライドするにはどうすればよいですか?

分類Dev

Swiftの別のクラスにUITextFieldのデリゲートを設定するにはどうすればよいですか?

分類Dev

Swift 4でバックグラウンドが他の要素をブロックしないようにするにはどうすればよいですか?

分類Dev

デバイスがSwift4のiPhoneXであるかどうかをどのように検出できますか?

分類Dev

バックグラウンドメソッドはデバイスでの実行を停止し、シミュレーターswift 4 xcode9でのみ機能します

分類Dev

このJavaインターフェースをSwiftでどのように複製しますか?

分類Dev

プライベートに設定されたグローバル変数は、swift でどのように理解されますか?

分類Dev

Swift 3 UITextFieldの境界線の色をどのように設定しますか?

分類Dev

Swift 3 UITextFieldの境界線の色をどのように設定しますか?

分類Dev

Swiftポートレートデバイスの向きの中で、ビューをランドスケープに変換するにはどうすればよいですか?可能です?

分類Dev

Swift はどのように文字列をハッシュしますか?

Related 関連記事

  1. 1

    NSDataをSwiftのデータに変換しましたが、バイトを[UInt]にキャストしようとするとクラッシュします

  2. 2

    Swift 3のすべてのデバイスでフリップアニメーションのように表示するようにテーブルビューを作成するにはどうすればよいですか?

  3. 3

    Swiftの状態の属性付きタイトルカラーをどのように設定しますか

  4. 4

    Swiftを使用してハーフバナービューでUITableviewの最初のインデックスセルショーを作成するにはどうすればよいですか?

  5. 5

    タブバーコントローラーのデフォルトタブをSwiftで設定するにはどうすればよいですか?

  6. 6

    ジオロケーションを自動的に設定し、swift でバックグラウンドでジオフェンスを作成するにはどうすればよいですか?

  7. 7

    Swift 4を使用してXcodeで複数のビューコントローラーを使用してカスタムモデルのインスタンスを作成するにはどうすればよいですか?

  8. 8

    swift 3でlayerClassをどのようにオーバーライドしますか?

  9. 9

    Swift 4でJSONデータのポリモーフィックデコードを実装するにはどうすればよいですか?

  10. 10

    コレクションビューセルを「0」ではなく「1」のインデックスで開始するように設定する方法-Swift

  11. 11

    テキストフィールドのレイアウトマージンをSwiftで設定するにはどうすればよいですか?

  12. 12

    Swift 4でテキストフィールドのパディングをどのように作成しますか?

  13. 13

    Swift でアプリのバックグラウンド更新をどのように実装しますか?

  14. 14

    Xcode内からすべてのSwift標準ライブラリソースコードまたはモジュール定義にアクセスするにはどうすればよいですか?

  15. 15

    Swift、XCodeのコレクションビューにカスタム水平スクロールを設定するにはどうすればよいですか?

  16. 16

    Swift 4 Xcode 10を使用して、Cocoaのストーリーボードからプログラムで初期コントローラーを設定するにはどうすればよいですか?

  17. 17

    Swiftでナビゲーションバーのタイトルを設定するにはどうすればよいですか?

  18. 18

    swiftを使用して動的テーブルビューでUISwitchのインデックスパスを取得するにはどうすればよいですか?

  19. 19

    Swift-具象サブクラスの拡張メソッドをオーバーライドするにはどうすればよいですか?

  20. 20

    Swiftの別のクラスにUITextFieldのデリゲートを設定するにはどうすればよいですか?

  21. 21

    Swift 4でバックグラウンドが他の要素をブロックしないようにするにはどうすればよいですか?

  22. 22

    デバイスがSwift4のiPhoneXであるかどうかをどのように検出できますか?

  23. 23

    バックグラウンドメソッドはデバイスでの実行を停止し、シミュレーターswift 4 xcode9でのみ機能します

  24. 24

    このJavaインターフェースをSwiftでどのように複製しますか?

  25. 25

    プライベートに設定されたグローバル変数は、swift でどのように理解されますか?

  26. 26

    Swift 3 UITextFieldの境界線の色をどのように設定しますか?

  27. 27

    Swift 3 UITextFieldの境界線の色をどのように設定しますか?

  28. 28

    Swiftポートレートデバイスの向きの中で、ビューをランドスケープに変換するにはどうすればよいですか?可能です?

  29. 29

    Swift はどのように文字列をハッシュしますか?

ホットタグ

アーカイブ