次の方法で共有


ボタンをカスタマイズする

カスタム アクションを実装したり、現在のボタン レイアウトを変更したりするには、ネイティブ UI ライブラリの API を操作します。 この API には、カスタム ボタン構成の定義、アクションの指定、ボタン バーの現在のアクションの管理が含まれています。 この API には、カスタム アクションを追加したり、既存のボタンを削除したりするためのメソッドが用意されており、これらはすべて、単純な関数呼び出しを介してアクセスできます。

この機能により、高度なカスタマイズが可能になり、ユーザー インターフェイスを統一され、アプリケーションの全体的な設計と一貫したものに保つことができます。

前提条件

機能を設定する

ボタンを削除する

CallCompositeCallScreenControlBarOptions を使用すると、カメラ、マイク、オーディオ コントロールなどの特定のボタンを削除することで、ボタンを柔軟にカスタマイズできます。 この API を使用すると、具体的なアプリケーション要件とユーザー エクスペリエンス設計に合わせてユーザー インターフェイスを調整できます。 CallCompositeButtonViewDatavisible または enabledfalse に設定して、ボタンを非表示または無効にします。

UI ライブラリでボタンを削除したときのエクスペリエンスを示すスクリーンショット。

val controlBarOptions = CallCompositeCallScreenControlBarOptions()

val cameraButton = CallCompositeButtonViewData()
    .setVisible(false)

controlBarOptions.setCameraButton(cameraButton)

val callScreenOptions = CallCompositeCallScreenOptions()
    .setControlBarOptions(controlBarOptions)

val localOptions = CallCompositeLocalOptions()
    .setCallScreenOptions(callScreenOptions)

val callComposite = CallCompositeBuilder()
    .build()

callComposite.launch(context, locator, localOptions)

ボタンは、通話複合を起動した後に更新できます。

cameraButton.setVisible(true)

カスタム アクションを追加する

Call composite は Fluent UI アイコンを使用しています。 アイコンは、Fluent UI GitHub リポジトリから直接ダウンロードして、必要に応じてプロジェクトに組み込むことができます。 このアプローチは、すべてのユーザー インターフェイス要素にわたる視覚的な一貫性を保証して、全体的なユーザー エクスペリエンスを向上させます。

UI ライブラリに新しいボタンを追加したときのエクスペリエンスを示すスクリーンショット。


// Custom header button
val headerCustomButton =
    CallCompositeCustomButtonViewData(
        "headerCustomButton",
        R.drawable.my_header_button_icon,
        "My header button",
        fun(it: CallCompositeCustomButtonClickEvent) {
            // process my button onClick
        }
    )

val headerOptions = CallCompositeCallScreenHeaderViewData()
    .setCustomButtons(listOf(headerCustomButton))

// Custom control bar button
val controlBarOptions = CallCompositeCallScreenControlBarOptions()

controlBarOptions.setCustomButtons(
    listOf(
        CallCompositeCustomButtonViewData(
            "customButtonId",
            R.drawable.my_button_image,
            "My button",
            fun(it: CallCompositeCustomButtonClickEvent) {
                // Process my button onClick
            },
        )
    )
)

val callScreenOptions = CallCompositeCallScreenOptions()
    .setHeaderViewData(headerOptions)
    .setControlBarOptions(controlBarOptions)

val localOptions = CallCompositeLocalOptions()
    .setCallScreenOptions(callScreenOptions)

val callComposite = CallCompositeBuilder()
    .build()

callComposite.launch(context, locator, localOptions)

Call composite が指定されたボタンと同様に、カスタム ボタンは起動後に更新できます。

customButton.setVisible(true)

ボタンの削除または無効化

CallScreenControlBarOptions を使用すると、カメラ、マイク、オーディオ コントロールなどの特定のボタンを削除することで、ボタンを柔軟にカスタマイズできます。 この API を使用すると、具体的なアプリケーション要件とユーザー エクスペリエンス設計に合わせてユーザー インターフェイスを調整できます。 ButtonViewDatavisible または enabledfalse に設定して、ボタンを非表示または無効にします。

UI ライブラリでボタンを削除したときのエクスペリエンスを示すスクリーンショット。

let cameraButton = ButtonViewData(visible: false)

let callScreenControlBarOptions = CallScreenControlBarOptions(
    cameraButton: cameraButton
)

let callScreenOptions = CallScreenOptions(controlBarOptions: callScreenControlBarOptions)
let localOptions = LocalOptions(callScreenOptions: callScreenOptions)

let callComposite = CallComposite(credential: credential)
callComposite.launch(locator: .roomCall(roomId: "..."), localOptions: localOptions)

ボタンは、通話複合を起動した後に更新できます。

cameraButton.visible = true

カスタム アクションを追加する

Call composite は Fluent UI アイコンを使用しています。 アイコンは、Fluent UI GitHub リポジトリから直接ダウンロードして、必要に応じてプロジェクトに組み込むことができます。 このアプローチは、すべてのユーザー インターフェイス要素にわたる視覚的な一貫性を保証して、全体的なユーザー エクスペリエンスを向上させます。

UI ライブラリに新しいボタンを追加したときのエクスペリエンスを示すスクリーンショット。

// Custom header button
let headerCustomButton = CustomButtonViewData(image: UIImage(named: "...")!,
                                              title: "My header button") {_ in
    // Process my button onClick
}
let callScreenHeaderViewData = CallScreenHeaderViewData(
    customButtons: [headerCustomButton]
)

// Custom control bar button
let customButton = CustomButtonViewData(image: UIImage(named: "...")!,
                                        title: "My button") {_ in
    // Process my button onClick
}

let callScreenControlBarOptions = CallScreenControlBarOptions(
    customButtons: [customButton]
)

let callScreenOptions = CallScreenOptions(
    controlBarOptions: callScreenControlBarOptions, headerViewData: callScreenHeaderViewData)

let localOptions = LocalOptions(callScreenOptions: callScreenOptions)

let callComposite = CallComposite(credential: credential)
callComposite.launch(locator: .roomCall(roomId: "..."), localOptions: localOptions)

Call composite が指定されたボタンと同様に、カスタム ボタンは起動後に更新できます。

customButton.enabled = true

次のステップ