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

機能の割り当て

DeviceFunction を、対応する DeviceOperation に割り当てます。

前提条件

  • デバイスが接続済みで、使用可能な状態であること。
  • デバイスが DevicePhysicalOperationsAPI に対応していること。
  • 対象操作が physicalOperationsMapping に存在すること。

API Reference

フレームワーク

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. 成功後に再取得:適用済み設定を表示するときは割り当てを再取得します。

注意事項

  • 1 回の呼び出しで、1 つの操作に 1 つの機能を割り当てます。
  • SDK には KeyMapping モデルや customizeKeyMapping メソッドは定義されていません。