跳到主要内容

最大录音时长

读取或设置已连接设备允许的最大音频录音时长。SDK 以分钟表示该值。

前置条件

  • 设备已连接且就绪。
  • 设备符合 DeviceAudioRecordingAPI
  • 显示现有值前,确认 maxAudioRecordDuration 不为 nil

API 参考

框架

AIBuds.xcframework

导入

Swift
import AIBuds

协议

Swift
/// The protocol for device API that supports audio recording.
protocol DeviceAudioRecordingAPI: DeviceAPI {
    /// Maximum audio recording duration (in minutes) allowed by the device.
    var maxAudioRecordDuration: NSNumber? { get }

    /// Sets the maximum audio recording duration (in minutes) allowed by the device.
    /// - Parameters:
    ///   - duration: The desired maximum recording duration in minutes.
    ///   - completion: A closure that is called when the operation completes.
    ///     - success: `true` if the operation was successful; otherwise `false`.
    ///     - error: An `NSError` object that describes the error that occurred, or `nil` if the operation was successful.
    func setMaxAudioRecordDuration(
        _ duration: Int,
        completion: AIBudsCompletionHandler?
    )
}

属性与实例方法

符号用途
maxAudioRecordDuration当前最大时长,单位为分钟;不可用时为 nil
setMaxAudioRecordDuration设置最大时长,单位为分钟。

当前 SDK Demo 使用 1...120 分钟滑块。公开 SDK 尚未说明统一的合法范围,因此应将该限制视为当前 Demo 约定。

使用示例

Swift
import AIBuds

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

if let minutes = device.maxAudioRecordDuration?.intValue {
    print("Current maximum: \(minutes) minutes")
}

// 30 minutes follows the range used by the current SDK Demo.
device.setMaxAudioRecordDuration(30) { success, error in
    if !success {
        print(error?.localizedDescription ?? "Failed to update the duration")
    }
}

错误处理

更新失败时,从 maxAudioRecordDuration 恢复显示值。SDK 当前未公布支持的时长范围,因此应隔离 Demo 范围,并在公开设备能力可用后替换。