Skip to content

Core Camera Record Video

Mr.P edited this page Aug 29, 2026 · 2 revisions

Record Video

Request the connected device to start or stop video recording.

Prerequisites

  • The device is connected, has available storage, and conforms to DeviceCameraAPI.

API Reference

Protocol

Swift

/// The protocol for device API that supports camera.
protocol DeviceCameraAPI: DeviceAPI {
    /// Requests to start video recording.
    /// - 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 requestVideoRecording(_ completion: AIBudsStatusCodeCompletionHandler?)

    /// Requests to stop the current video recording 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 requestStopVideoRecording(_ completion: AIBudsStatusCodeCompletionHandler?)
}

Objective-C

/// The protocol for device API that supports camera.
@protocol AIBudsDeviceCameraAPI <AIBudsDeviceAPI>
/// Requests to start video recording.
/// - 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)requestVideoRecordingWithCompletion:(AIBudsStatusCodeCompletionHandler _Nullable)completion;

/// Requests to stop the current video recording 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)requestStopVideoRecordingWithCompletion:
    (AIBudsStatusCodeCompletionHandler _Nullable)completion;
@end
Method Purpose
requestVideoRecording Start video recording.
requestStopVideoRecording Stop video recording.

Usage Examples

Swift

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

device.requestVideoRecording { success, statusCode, error in
    guard success else {
        print(error?.localizedDescription ?? "Video recording failed to start")
        return
    }
    print("Video recording started: \(statusCode?.stringValue ?? "Unavailable")")
}

device.requestStopVideoRecording { success, _, error in
    if !success { print(error?.localizedDescription ?? "Video recording failed to stop") }
}

Objective-C

id<AIBudsDeviceCameraAPI> device = (id<AIBudsDeviceCameraAPI>)self.device;
if ([device conformsToProtocol:@protocol(AIBudsDeviceCameraAPI)]) {
    [device requestVideoRecordingWithCompletion:^(
                BOOL success, NSNumber *_Nullable statusCode, NSError *_Nullable error) {
        if (!success)
            NSLog(@"Start failed: %@", error.localizedDescription);
    }];

    [device requestStopVideoRecordingWithCompletion:^(
                BOOL success, NSNumber *_Nullable statusCode, NSError *_Nullable error) {
        if (!success)
            NSLog(@"Stop failed: %@", error.localizedDescription);
    }];
}

The callbacks report device command status and do not return a video path or resolution. The current public API does not provide per-request resolution selection.

AIBuds SDK iOS Wiki

Clone this wiki locally