アプリケーションでピクチャインピクチャを有効にする
ユーザーが通話中に、全画面表示 UI を使用すると、アプリでユーザーがマルチタスクを実行することを禁止できます。 アプリでユーザーのマルチタスクを有効にするには、次の 2 つの方法があります。
- ユーザーが [戻る] ボタンを選択し、前の画面に戻ることをできるようにします。 通話中、ユーザーに通話 UI は表示されません。
- ピクチャインピクチャを有効にします。
この記事では、Azure Communication Services UI ライブラリでピクチャインピクチャを有効にする方法を示します。 ピクチャインピクチャ機能はシステムによって提供され、CPU 負荷、RAM の空き、バッテリ状態など、デバイスでの機能サポートの対象となります。
前提条件
- アクティブなサブスクリプションが含まれる Azure アカウント。 無料でアカウントを作成できます。
- デプロイ済みの Communication Services リソース。 Communication Services リソースを作成します。
- 通話クライアントを有効にするためのユーザー アクセス トークン。 ユーザー アクセス トークンを取得します。
- 省略可能: UI ライブラリ の複合の概要に関するクイックスタートの完了。
機能をオンにする
詳細については、オープンソースの Android UI ライブラリ とサンプル アプリケーション コードを参照してください。
ピクチャインピクチャのセットアップ
マルチタスクとピクチャインピクチャを有効にするには、CallCompositeBuilder.multitasking
を使用して、enableMultitasking
および enableSystemPictureInPictureWhenMultitasking
コンストラクター パラメーターを指定した CallCompositeMultitaskingOptions
を設定します。
val callComposite: CallComposite =
CallCompositeBuilder()
.multitasking(CallCompositeMultitaskingOptions(true, true))
.build()
[戻る] ボタンは、enableMultitasking
が true
に設定されている場合に表示されます。
ユーザーが [戻る] ボタンをタップすると、[呼び出し元 UI] が非表示になり、構成されている場合は、ピクチャインピクチャ ビューが表示されます。
CallComposite
に対してマルチタスクがオンである場合、呼び出しアクティビティは専用タスクで開始されます。 タスク履歴には、アプリのアクティビティ用と Communication Services 通話アクティビティ用の 2 つの画面が表示されます。
プログラムでマルチタスクを入力し、ピクチャインピクチャが構成されている場合はピクチャインピクチャを表示するには、sendToBackground
メソッドを呼び出します。
ユーザーをプログラムで呼び出し元アクティビティに戻すには、 bringToForeground
関数を使用します。
詳細については、オープンソースの iOS UI ライブラリ とサンプル アプリケーション コードを参照してください。
ピクチャインピクチャのセットアップ
マルチタスクとピクチャインピクチャを有効にするには、CallCompositeOptions
コンストラクター パラメーター enableMultitasking
および enableSystemPiPWhenMultitasking
を使用します。
Note
デプロイ ターゲットが iOS 16 より前のアプリでは、ピクチャインピクチャ モードでカメラを使用するために com.apple.developer.avfoundation multitasking-camera-access
エンタイトルメントが必要です。
let callCompositeOptions = CallCompositeOptions(
enableMultitasking: true,
enableSystemPictureInPictureWhenMultitasking: true)
let callComposite = CallComposite(withOptions: callCompositeOptions)
[戻る] ボタンは、enableMultitasking
が true
に設定されている場合に表示されます。
ユーザーが [戻る] ボタンをタップすると、[呼び出し元 UI] が非表示になり、ピクチャインピクチャが構成されている場合は、ピクチャインピクチャ ビューが表示されます。
プログラムでマルチタスクを開始または終了するには、isHidden
プロパティを使用します。
// Close calling UI and display PiP
callComposite.isHidden = true
// Displaye calling UI and close PiP
callComposite.isHidden = false