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
DeviceCameraAPIprotokolüne uyar.
API Referansı
Protokol
- Swift
- Objective-C
/// 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?)
}/// The protocol for device API that supports camera.
@protocol AIBudsDeviceCameraAPI <AIBudsDeviceAPI>
/// 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.
- (void)requestPhotoTakingWithCaptureMode:(enum AIBudsCaptureMode)mode
completion:(AIBudsStatusCodeCompletionHandler _Nullable)completion;
/// 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.
- (void)requestStopPhotoTakingWithCompletion:
(AIBudsStatusCodeCompletionHandler _Nullable)completion;
@end| Yöntem | Amaç |
|---|---|
requestPhotoTaking | .camera veya .ai modunda fotoğraf çekimini başlatır. |
requestStopPhotoTaking | Etkin 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
- Objective-C
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") }
}id<AIBudsDeviceCameraAPI> device = (id<AIBudsDeviceCameraAPI>)self.device;
if ([device conformsToProtocol:@protocol(AIBudsDeviceCameraAPI)]) {
[device requestPhotoTakingWithCaptureMode:AIBudsCaptureModeCamera
completion:^(BOOL success,
NSNumber *_Nullable statusCode,
NSError *_Nullable error) {
if (!success)
NSLog(@"Photo request failed: %@",
error.localizedDescription);
}];
[device requestStopPhotoTakingWithCompletion:^(
BOOL success, NSNumber *_Nullable statusCode, NSError *_Nullable error) {
if (!success)
NSLog(@"Stop failed: %@", error.localizedDescription);
}];
}