Ana içeriğe geç

Fotoğraf Çekme

Bir CaptureMode değeriyle cihazın fotoğraf çekme oturumunu başlatın ve gerektiğinde durdurun.

Ön Koşullar

  • Cihaz bağlıdır, yeterli depolama alanı vardır ve DeviceCameraAPI protokolüne uyar.

API Referansı

Protokol

Swift
/// The protocol for device API that supports camera.
protocol DeviceCameraAPI: DeviceAPI {
    /// Requests to take a photo with the specified capture mode.
    /// - Parameters:
    ///   - mode: The capture mode for photo taking.
    ///   - completion: A closure that is called when the operation completes.
    ///     - success: `true` if the operation was successful; otherwise `false`.
    ///     - statusCode: The status code returned by the device. `nil` if the operation failed.
    ///     - error: An `NSError` object that describes the error that occurred, or `nil` if the operation was successful.
    func requestPhotoTaking(
        withCaptureMode mode: CaptureMode,
        completion: AIBudsStatusCodeCompletionHandler?
    )

    /// Requests to stop the current photo taking session.
    /// - Parameters:
    ///   - completion: A closure that is called when the operation completes.
    ///     - success: `true` if the operation was successful; otherwise `false`.
    ///     - statusCode: The status code returned by the device. `nil` if the operation failed.
    ///     - error: An `NSError` object that describes the error that occurred, or `nil` if the operation was successful.
    func requestStopPhotoTaking(_ completion: AIBudsStatusCodeCompletionHandler?)
}
YöntemAmaç
requestPhotoTaking.camera veya .ai modunda fotoğraf çekimini başlatır.
requestStopPhotoTakingEtkin fotoğraf çekme oturumunu durdurur.

Callback'ler success, isteğe bağlı cihaz statusCode değeri ve isteğe bağlı NSError döndürür. Fotoğraf dosyası yolu döndürmez.

Kullanım Örnekleri

Swift
guard let device = device as? DeviceCameraAPI else { return }

device.requestPhotoTaking(withCaptureMode: .camera) { success, statusCode, error in
    guard success else {
        print(error?.localizedDescription ?? "Photo request failed")
        return
    }
    print("Photo taking started: \(statusCode?.stringValue ?? "Unavailable")")
}

device.requestStopPhotoTaking { success, _, error in
    if !success { print(error?.localizedDescription ?? "Stop failed") }
}