跳到主要内容

功能分配

DeviceFunction 分配给受支持的 DeviceOperation

前置条件

API 参考

框架

AIBuds.xcframework

导入

Swift
import AIBuds

协议

Swift
/// The protocol for device physical operations API.
protocol DevicePhysicalOperationsAPI: DeviceAPI {
    /// Assign a device function to a specific operation.
    ///
    /// - Parameters:
    ///   - function: The ``DeviceFunction`` to be assigned.
    ///   - operation: The ``DeviceOperation`` that will trigger the function.
    ///   - completion: An optional callback invoked when the assignment completes.
    ///     - success: `true` if the assignment succeeded; `false` otherwise.
    ///     - error: An error object explaining the failure, or `nil` on success.
    func assignFunction(
        _ function: DeviceFunction,
        forPhysicalOperation operation: DeviceOperation,
        completion: AIBudsCompletionHandler?
    )
}

实例方法

将一个功能分配给指定的按键或触控操作。

Swift
/// Assign a device function to a specific operation.
///
/// - Parameters:
///   - function: The ``DeviceFunction`` to be assigned.
///   - operation: The ``DeviceOperation`` that will trigger the function.
///   - completion: An optional callback invoked when the assignment completes.
///     - success: `true` if the assignment succeeded; `false` otherwise.
///     - error: An error object explaining the failure, or `nil` on success.
func assignFunction(
    _ function: DeviceFunction,
    forPhysicalOperation operation: DeviceOperation,
    completion: AIBudsCompletionHandler?
)

参数

参数类型说明
functionDeviceFunction要分配的功能。
operationDeviceOperation触发该功能的按键或触控操作。
completionAIBudsCompletionHandler?可选的完成回调。

回调参数:

名称类型说明
successBool / BOOL分配是否成功。
errorNSError?失败详情;成功时为 nil

返回值

该方法不直接返回值。

使用示例

Swift
import AIBuds

guard let device = device as? DevicePhysicalOperationsAPI else {
    print("Device does not support physical-operation mapping")
    return
}

device.assignFunction(
    .playPause,
    forPhysicalOperation: .rightDoubleClick
) { success, error in
    guard success else {
        print("Assignment failed: \(error?.localizedDescription ?? "Unknown error")")
        return
    }
    print("Function assigned")
}

错误处理

检查 success,并通过 error 获取失败详情。完成回调报告成功前,不要更新本地映射。

最佳实践

  1. 以设备发布的映射为准:只提供 physicalOperationsMapping 报告的操作。
  2. 使用 SDK 枚举:传入 DeviceOperationDeviceFunction,不要使用任意整数。
  3. 成功后刷新:展示已应用配置时重新读取映射。

注意事项

  • 每次调用只能为一个操作分配一个功能
  • SDK 没有定义 KeyMapping 模型或 customizeKeyMapping 方法