Kotlin
PiP モードの変更を管理する
1.PiP モードが変更されたら UI を更新する
オーバーライド onPictureInPictureModeChanged を使用してPiP状態を追跡し、フローティングウィンドウのローカルプレビューを非表示にします(加入者ビデオは残ります):
コピー
override fun onPictureInPictureModeChanged(
isInPictureInPictureMode: Boolean,
newConfig: Configuration,
) {
super.onPictureInPictureModeChanged(isInPictureInPictureMode, newConfig)
isInPipMode = isInPictureInPictureMode
if (isInPictureInPictureMode) {
publisherViewContainer.visibility = View.GONE
publisher?.view?.visibility = View.GONE
} else {
publisherViewContainer.visibility = View.VISIBLE
publisher?.view?.visibility = View.VISIBLE
if (publisher?.view is GLSurfaceView) {
(publisher?.view as GLSurfaceView).setZOrderOnTop(true)
}
}
}
暴露 isInPipMode をコンポーズする。 mutableStateOf)ので、PiPボタンは自動的に隠れます。
2.PiPでセッションを維持する
を行う。 違う コール session.onPause() または、ユーザーがフルスクリーンアクティビティから離れると、通話が一時停止することがあります:
コピー
override fun onPause() {
super.onPause()
if (!isInPictureInPictureMode) {
session?.onPause()
}
}
override fun onResume() {
super.onResume()
if (!isInPictureInPictureMode) {
session?.onResume()
}
}
3.onStopでビューをクリーンアップする
アクティビティが停止したら、パブリッシャーと購読者のビューを削除します:
コピー
override fun onStop() {
super.onStop()
subscriber?.let { subscriberViewContainer.removeView(it.view) }
publisher?.let { publisherViewContainer.removeView(it.view) }
}
ピクチャー・イン・ピクチャー
Vonage Video SDKを使用してアプリにPicture in Picture機能を追加する方法をご紹介します。
対応機種:
手順
1
はじめに2
はじめに3
新規プロジェクトの作成4
Android SDKの追加5
認証の設定6
アクセス許可の申請7
アクティビティでピクチャー・イン・ピクチャーを有効にする8
動画視聴用のコンテナを提供する9
ピクチャー・イン・ピクチャーの起動10
PiP モードの変更を管理する11
アプリの実行12
結論