メインコンテンツまでスキップ

通常録音

接続中のデバイスに、通常の音声録音セッションの開始または停止を要求します。

前提条件

  • デバイスが接続済みで、操作可能な状態であること。
  • デバイスが 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 がある場合は内容を提示してください。公開プロトコルでは、個々のステータスコードの意味は定義されていません。