Перейти к основному содержимому

Обычная запись

Запросите запуск или остановку обычной записи звука на подключённом устройстве.

Предварительные условия

  • Устройство подключено и готово к работе.
  • Устройство поддерживает DeviceAudioRecordingAPI.
  • На устройстве достаточно места для записи.

Справочник API

Фреймворк

AIBuds.xcframework

Импорт

Swift
import AIBuds

Протокол

Запросы определены протоколом DeviceAudioRecordingAPI.

Swift
/// The protocol for device API that supports audio recording.
protocol DeviceAudioRecordingAPI: DeviceAPI {
    /// Requests the device to start an audio 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 requestStartAudioRecording(_ completion: AIBudsStatusCodeCompletionHandler?)

    /// Requests the device to stop the current audio 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 requestStopAudioRecording(_ completion: AIBudsStatusCodeCompletionHandler?)
}

Методы экземпляра

МетодНазначение
requestStartAudioRecordingЗапросить запуск записи на устройстве.
requestStopAudioRecordingЗапросить остановку записи на устройстве.

Значения завершения

ИмяТипОписание
successBool / BOOLУспешно ли выполнен запрос.
statusCodeNSNumber?Код состояния устройства или nil, если операция не удалась.
errorNSError?Сведения об ошибке или nil при успехе.

Методы не возвращают путь к файлу записи. Результатом является состояние команды устройства.

Примеры использования

Swift
import AIBuds

guard let device = device as? DeviceAudioRecordingAPI else {
    print("Device does not support audio recording")
    return
}

device.requestStartAudioRecording { success, statusCode, error in
    guard success else {
        print("Start failed: \(error?.localizedDescription ?? "Unknown error")")
        return
    }
    print("Recording started, status: \(statusCode?.stringValue ?? "Unavailable")")
}

// Call this from the UI action that stops the active recording.
device.requestStopAudioRecording { success, statusCode, error in
    guard success else {
        print("Stop failed: \(error?.localizedDescription ?? "Unknown error")")
        return
    }
    print("Recording stopped, status: \(statusCode?.stringValue ?? "Unavailable")")
}

Обработка ошибок

Используйте success как основной результат. Сохраняйте statusCode для обработки особенностей устройства и показывайте error, если он есть; открытый протокол не описывает значения отдельных кодов состояния.